-- metodo de contabilizacion

This commit is contained in:
rrene
2020-05-18 12:40:06 -07:00
parent 09bf8eb2da
commit ea2fdb41fe

View File

@@ -1089,6 +1089,27 @@ Public Class ClsContabilidad
End Function End Function
Public Function ContabilizaDesContabilizaPrePoliza(CvePrePoliza As Integer, Contabilizar As Boolean, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Conta_PrePolizasContabilizarDescontabilizar")
With SqlAdapter.SelectCommand.Parameters
.Add("@CvePrePoliza", SqlDbType.Int).Value = CvePrePoliza
.Add("@Contabilizar", SqlDbType.Bit).Value = Contabilizar
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
If ex.Message.Contains("50015;") Then
OnError("No se puede actualizar una póliza en un ejercicio Cerrado", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
Else
OnError("Ocurrió un error al bloquear o desbloquear las prepolizas detalle.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End If
End Try
Return Retorno
End Function
Public Function ContabilizarPrePoliza(CvePrePoliza As Integer, CveUsuario As Integer, Empresa As Empresa, Optional Fecha As Date = MinFecha, Optional Concepto As String = "", Public Function ContabilizarPrePoliza(CvePrePoliza As Integer, CveUsuario As Integer, Empresa As Empresa, Optional Fecha As Date = MinFecha, Optional Concepto As String = "",
Optional ObjConta As ClsContPAQi = Nothing, Optional pIDPoliza As Integer = -1) As Boolean Optional ObjConta As ClsContPAQi = Nothing, Optional pIDPoliza As Integer = -1) As Boolean
@@ -1096,36 +1117,30 @@ Public Class ClsContabilidad
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
'No modificar esta seccion bajo ninguna circunstancia -- Empresa.CvePlataforma = 3 Or If Empresa.TipoContabilizacion = 1 Then
'*****************************************************
If (CveUsuario.Contiene(100, 1425) And Empresa.CveEmpresa = 1) Then
Retorno = ContabilizarPrePolizaSIG(CvePrePoliza, CveUsuario, Empresa, Fecha, Concepto)
Return Retorno
End If
'*****************************************************
If Empresa.UsaArmonizacion Then ContabilizaDesContabilizaPrePoliza(CvePrePoliza, True, Empresa.CveEmpresa)
DataAdapter("PA_Conta_ContabilizaPrepoliza")
With SqlAdapter.SelectCommand.Parameters
.Add("@CvePrePoliza", SqlDbType.Int).Value = CvePrePoliza
.Add("@CvePoliza", SqlDbType.Int).Direction = ParameterDirection.Output
End With
Try 'DataAdapter("PA_Conta_ContabilizaPrepoliza")
SqlAdapter.Fill(Data) 'With SqlAdapter.SelectCommand.Parameters
ContaIdPoliza = SqlAdapter.SelectCommand.Parameters("@CvePoliza").Value.ToString.ToEntero ' .Add("@CvePrePoliza", SqlDbType.Int).Value = CvePrePoliza
If ContaIdPoliza <> 0 Then ' .Add("@CvePoliza", SqlDbType.Int).Direction = ParameterDirection.Output
Retorno = True 'End With
End If
Catch ex As Exception 'Try
OnError("Ocurrió un error al obtener Movimientos Prepolizas.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) ' SqlAdapter.Fill(Data)
End Try ' ContaIdPoliza = SqlAdapter.SelectCommand.Parameters("@CvePoliza").Value.ToString.ToEntero
' If ContaIdPoliza <> 0 Then
' Retorno = True
' End If
'Catch ex As Exception
' OnError("Ocurrió un error al obtener Movimientos Prepolizas.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
'End Try
Else Else
If CvePrePoliza <= 0 Then Return False If CvePrePoliza <= 0 Then Return False
Dim OcurrioError As Boolean = False Dim OcurrioError As Boolean = False
Dim ContaCompartida As Boolean = False Dim ContaCompartida As Boolean = False
If ObjConta Is Nothing Then If ObjConta Is Nothing Then
@@ -1135,9 +1150,6 @@ Public Class ClsContabilidad
ContaCompartida = True ContaCompartida = True
End If End If
Dim tIdPoliza As Integer Dim tIdPoliza As Integer
Dim CveTipoPoliza, FolioFijo, CvePlantillaPoliza As Integer Dim CveTipoPoliza, FolioFijo, CvePlantillaPoliza As Integer
Dim Cargos As Decimal Dim Cargos As Decimal
@@ -1152,23 +1164,8 @@ Public Class ClsContabilidad
Dim ContabilizarCausacion As Boolean Dim ContabilizarCausacion As Boolean
Dim ContabilizarDIOT As Boolean Dim ContabilizarDIOT As Boolean
'Dim Periodo As Integer = -1
'Dim Ejercicio As Integer = -1
'Dim GuidPoliza As String = "-1"
' Dim FolioFiscal As String = ""
' Dim DatosCuentas As New DataTable
' Dim CveMoneda As Integer = 0
' Dim Total As Decimal = 0
Try Try
'If Empresa.Funcionalidad(522).ToString = "1" AndAlso ObjConta.GetCuentas(-1, "-1", -1) Then
' DatosCuentas = ObjConta.DtResultados
'End If
If GetEncabezadoPrePoliza(CvePrePoliza, Empresa.CveEmpresa) Then If GetEncabezadoPrePoliza(CvePrePoliza, Empresa.CveEmpresa) Then
CveTipoPoliza = Data.Rows(0)("CveTipoPoliza").ToString.ToEntero CveTipoPoliza = Data.Rows(0)("CveTipoPoliza").ToString.ToEntero
Cargos = Data.Rows(0)("Cargos").ToString.ToDecimal Cargos = Data.Rows(0)("Cargos").ToString.ToDecimal
@@ -1255,30 +1252,6 @@ Public Class ClsContabilidad
Exit For Exit For
End If End If
'If Empresa.Funcionalidad(522).ToString = "1" Then
' GuidPoliza = ObjConta.DtResultados.Rows(0)("Guid").ToString
' Periodo = Data.Rows(0)("Fecha").ToString.ToDate.Month
' Ejercicio = Data.Rows(0)("Fecha").ToString.ToDate.Year
' Dim CodigoCuenta As String = ""
' If DatosCuentas.Rows.Count > 0 Then
' If DatosCuentas.FiltraParametros($"Id = {dr("IdCtaContable").ToString}").Rows.Count > 0 Then 'Filtra primero valorCambiar
' CodigoCuenta = DatosCuentas.FiltraParametros($"Id = {dr("IdCtaContable").ToString}").Rows(0)("Codigo").ToString
' If Not ObjConta.AddASocCFDIs(False, TipoPol, GuidPoliza, FolioFiscal, 0, CodigoCuenta, Empresa.BDContPAQi, -1, -1, ContaFolio) Then
' OcurrioError = True
' Exit For
' End If
' Else
' OcurrioError = True
' Exit For
' End If
' Else
' OcurrioError = True
' Exit For
' End If
'End If
Else Else
If Not ObjConta.AddMovimiento(tIdPoliza, dr("IdCtaContable").ToString.ToEntero, tipoMovimiento, If Not ObjConta.AddMovimiento(tIdPoliza, dr("IdCtaContable").ToString.ToEntero, tipoMovimiento,
@@ -1288,29 +1261,6 @@ Public Class ClsContabilidad
End If End If
'If Empresa.Funcionalidad(522).ToString = "1" Then
' GuidPoliza = ObjConta.DtResultados.Rows(0)("Guid").ToString
' Periodo = Data.Rows(0)("Fecha").ToString.ToDate.Month
' Ejercicio = Data.Rows(0)("Fecha").ToString.ToDate.Year
' Dim CodigoCuenta As String = ""
' If DatosCuentas.Rows.Count > 0 Then
' If DatosCuentas.FiltraParametros($"Codigo = {dr("IdCtaContable").ToString}").Rows.Count > 0 Then
' CodigoCuenta = DatosCuentas.FiltraParametros($"Codigo = {dr("IdCtaContable").ToString}").Rows(0)("Codigo").ToString
' If Not ObjConta.AddASocCFDIs(False, TipoPol, GuidPoliza, FolioFiscal, 0, CodigoCuenta, Empresa.BDContPAQi, -1, -1, ContaFolio) Then
' OcurrioError = True
' Exit For
' End If
' Else
' OcurrioError = True
' Exit For
' End If
' Else
' OcurrioError = True
' Exit For
' End If
'End If
End If End If
Else Else
@@ -1425,89 +1375,6 @@ Public Class ClsContabilidad
'If Empresa.Funcionalidad(522).ToString = "1" And Empresa.UsaContabilidad Then
' Dim CodigoPersona As String = ""
' Dim Bnefciciario As String = ""
' If ObjConta.GetPersona(RFC) Then
' CodigoPersona = ObjConta.DtResultados.FiltroPrimeroValor("CodigoPersona")
' Bnefciciario = ObjConta.DtResultados.FiltroPrimeroValor("Nombre")
' Else
' OcurrioError = True
' Mensaje.Append("Se presento un error al obtener los datos de la persona. ")
' End If
' If TipoPol = 1 Then 'Ingreso
' Dim IdDocumento As Integer = 0
' ' Dim UsuarioSistema As String = ""
' Dim IdCuentaCheques As Integer = 1
' Dim NatBancaria As Integer = 2
' Dim Naturaleza As Integer = 1
' Dim IdIngreso As Integer
' If ObjConta.AddIngreso(1, 34, 42, Ejercicio, Periodo, Fecha, Ejercicio, Periodo, CodigoPersona, Bnefciciario, IdCuentaCheques, NatBancaria, Naturaleza, CveMoneda, 2, 1, Total, "", 0, 0, "", 0,
' 0, Ejercicio, Periodo, TipoPol, ContaFolio.ToEntero, 0, 0, tIdPoliza, 11, 0, 0, 0, 0, UsuarioSistema, UsuarioSistema, 0, System.Guid.NewGuid().ToString().ToUpper, "", 0, MetodoPagoSAT) Then 'Actualizar Documento IdDocumento despues de Insertarlo
' If ObjConta.DtResultados.Rows.Count > 0 Then
' IdIngreso = ObjConta.DtResultados.Rows(0)("IdIngreso").ToString.ToEntero
' If Not ObjConta.AddDocumentoBancario(1, 0, 0, IdIngreso, 0, 0, Fecha, Fecha, 0, 0, IdCuentaCheques) Then
' OcurrioError = True
' Mensaje.Append("Se presento un error al guardar el el documento. ")
' End If
' Else
' OcurrioError = True
' Mensaje.Append("Se presento un error al guardar el Ingreso. ")
' End If
' Else
' OcurrioError = True
' Mensaje.Append("Se presento un error al guardar el Ingreso. ")
' End If
' ElseIf TipoPol = 2 Then 'Egreso
' Dim IdDocumento As Integer = 0
' ' Dim UsuarioSistema As String = ""
' Dim BancoDestino As String = ""
' Dim CuentaDestino As String = ""
' Dim IdCuentaCheques As Integer = 1
' Dim NatBancaria As Integer = 0
' Dim Naturaleza As Integer = 2
' Dim IdEgreso As Integer
' If ObjConta.AddEgreso(1, 36, 45, Ejercicio, Periodo, Fecha, Ejercicio, Periodo, CodigoPersona, Bnefciciario, IdCuentaCheques, NatBancaria, Naturaleza, CveMoneda, 2, 1, Total, "", 0, "", 0, 0, Ejercicio,
' Periodo, TipoPol, NumPoliza, 0, 0, ContaIdPoliza, tIdPoliza, IdDocumento, Ejercicio, Periodo, 0, 0, 0, 0, 0, 0, UsuarioSistema, UsuarioSistema, 0, System.Guid.NewGuid().ToString().ToUpper,
' CuentaDestino, BancoDestino, MetodoPagoSAT) Then
' If ObjConta.DtResultados.Rows.Count > 0 Then
' IdEgreso = ObjConta.DtResultados.Rows(0)("IdEgreso").ToString.ToEntero
' If Not ObjConta.AddDocumentoBancario(1, 0, IdEgreso, 0, 0, 0, Fecha, Fecha, 0, 0, IdCuentaCheques) Then
' OcurrioError = True
' Mensaje.Append("Se presento un error al guardar el el documento. ")
' End If
' Else
' OcurrioError = True
' Mensaje.Append("Se presento un error al guardar el Egreso. ")
' End If
' Else
' OcurrioError = True
' Mensaje.Append("Se presento un error al guardar el Egreso")
' End If 'Actualizar Documento IdDocumento despues de Insertarlo
' End If
'End If
If OcurrioError Then If OcurrioError Then
If Not ContaCompartida Then ObjConta.RollBack() If Not ContaCompartida Then ObjConta.RollBack()
Else Else
@@ -1539,215 +1406,6 @@ Public Class ClsContabilidad
Return Retorno Return Retorno
End Function End Function
'No modificar este metodo bajo ninguna circunstancia
Public Function ContabilizarPrePolizaSIG(CvePrePoliza As Integer, CveUsuario As Integer, Empresa As Empresa, Optional Fecha As Date = MinFecha, Optional Concepto As String = "") As Boolean
If CvePrePoliza <= 0 Then Return False
Dim Retorno As Boolean = False
Dim OcurrioError As Boolean = False
Dim tCvePoliza As Integer
Dim CveTipoPoliza, FolioFijo As Integer
Dim Cargos As Decimal
Dim Abonos As Decimal
Dim NumPoliza As String = ""
Dim CodigoNumeroPoliza As String = ""
Dim TipoPoliza As String
Dim ContaFolio As String = ""
Dim ContabilizarCausacion As Boolean
Dim ContabilizarDIOT As Boolean
Dim ObjConta As New ClsContabilidad
ObjConta.IniciaTransacSQL()
Try
If GetEncabezadoPrePoliza(CvePrePoliza, Empresa.CveEmpresa) Then
CveTipoPoliza = Data.Rows(0)("CveTipoPoliza").ToString.ToEntero
Cargos = Data.Rows(0)("Cargos").ToString.ToDecimal
Abonos = Data.Rows(0)("Abonos").ToString.ToDecimal
FolioFijo = Data.Rows(0)("FolioFijo").ToString.ToEntero
TipoPoliza = Data.Rows(0)("TipoPoliza").ToString
CodigoNumeroPoliza = Data.Rows(0)("CodigoNumeroPoliza").ToString
'tiene prioridad el concepto en parametro
If Concepto = "" Then Concepto = Data.Rows(0)("Concepto").ToString
If Fecha = MinFecha Then Fecha = Data.Rows(0)("Fecha").ToString.ToDate
If FolioFijo > 0 Then
CodigoNumeroPoliza = "CHQ"
Else
GetNumeroPoliza(CveTipoPoliza, TipoPoliza, Fecha, Empresa.CveEmpresa)
FolioFijo = Data.Rows(0)("NumPoliza").ToString.ToEntero
End If
tCvePoliza = ObjConta.AddPoliza(CveTipoPoliza, FolioFijo, Fecha, Concepto, CveUsuario, Empresa.CveEmpresa, CvePrePoliza)
If tCvePoliza > 0 AndAlso GetContabilizacionDiarioDetalle(CvePrePoliza) Then
Dim tipoMovimiento As Boolean = False
Dim CveConceptoContable As Integer
Dim SigReferencia As String = ""
For Each dr As DataRow In Data.Rows
CveConceptoContable = dr("CveConceptoContable").ToString().ToEntero
Select Case CveConceptoContable
Case 6, 5, 17, 14, 19, 15, 16
SigReferencia = dr("CveCompra").ToString.ContaReferencia(TipoContaReferencia.Compra)
Case 2, 4, 1, 13, 61, 62, 63, 8, 9
SigReferencia = dr("CveVenta").ToString.ContaReferencia(TipoContaReferencia.Venta)
Case 30
SigReferencia = dr("CveIE").ToString.ContaReferencia(TipoContaReferencia.Banco)
End Select
Select Case CveConceptoContable
Case 19 ' IVA Acreditable
ContabilizarDIOT = True
Case 61 ' IVA Trasladado
ContabilizarCausacion = True
Case 30 ' Bancos
If dr("Abono").ToString.ToDecimal > 0 Then ContabilizarDIOT = True
If dr("Cargo").ToString.ToDecimal > 0 Then ContabilizarCausacion = True
End Select
tipoMovimiento = (dr("TipoMovto").ToString = "True")
'Si las cuentas contables estan en 0 no se debe contabilizar
If dr("CveCuenta").ToString.ToEntero > 0 Then
'Si ImporteMN es mayor que 0 entonces la compra es en dolares y debemos ingresar la cantidad en pesos
If dr("ImporteMN").ToString.ToDecimal <> 0 Then
If Not ObjConta.AddPolizaDetalle(tCvePoliza, dr("CveCuenta").ToString.ToEntero, "", dr("CveSubProyecto").ToString.ToEntero, tipoMovimiento,
dr("ImporteMN").ToString.ToDecimal, dr("Referencia").ToString, dr("Concepto").ToString, Fecha, ImporteMonedaExtranjera:=dr("ImporteME").ToString.ToDecimal, CvePrePolizaDetalle:=dr("CvePrePolizaDetalle").ToString.ToEntero) Then
OcurrioError = True
Exit For
End If
Else
If Not ObjConta.AddPolizaDetalle(tCvePoliza, dr("CveCuenta").ToString.ToEntero, "", dr("CveSubProyecto").ToString.ToEntero, tipoMovimiento,
dr("Importe").ToString.ToDecimal, dr("Referencia").ToString, dr("Concepto").ToString, Fecha, ImporteMonedaExtranjera:=dr("ImporteME").ToString.ToDecimal, CvePrePolizaDetalle:=dr("CvePrePolizaDetalle").ToString.ToEntero) Then
OcurrioError = True
Exit For
End If
End If
Else
OcurrioError = True
Mensaje.Append(String.Format("<br> La cuenta contable {0} es invalida", dr("ConceptoContable")))
Exit For
End If
Next
'Obtenemos los valores de la causacion y los agregamos
'If Not OcurrioError AndAlso ContabilizarCausacion Then
' If GetCausacionesValores(CvePrePoliza) AndAlso Data.Rows.Count > 0 Then
' Dim dr As DataRow = Data(0)
' If Not ObjConta.AddCausacionesIVA(tIdPoliza,
' dr("TotalTasa16").ToString.ToDecimal,
' dr("BaseTasa16").ToString.ToDecimal,
' dr("IvaTasa16").ToString.ToDecimal,
' 0,
' dr("ISRRetenido").ToString.ToDecimal,
' dr("IVARetenido").ToString.ToDecimal, False) Then
' OcurrioError = True
' End If
' End If
'End If
'Obtenemos los valores del DIOT y los agregamos
'If Not OcurrioError AndAlso ContabilizarDIOT Then
' If GetDIOTValores(CvePrePoliza) AndAlso Data.Rows.Count > 0 Then
' Dim IdProveedor As Integer
' Dim RFC, RazonSocial As String
' RFC = Data(0)("RFC").ToString
' RazonSocial = Data(0)("RazonSocial").ToString
' IdCtaContProveedores = Data(0)("IdCtaContProveedores").ToString.ToEntero
' If IdCtaContProveedores > 0 Then
' 'busco la clave del proveedor en la contabilidad por su cuenta contable
' If ObjConta.GetProveedores(IdCuentaContable:=IdCtaContProveedores) Then
' If ObjConta.DtResultados.Rows.Count > 0 Then
' Dim dr As DataRow = ObjConta.DtResultados.Rows(0) : IdProveedor = dr("Id").ToString.ToEntero
' End If
' End If
' Else
' 'busco la clave del proveedor en la contabilidad por su cuenta contable
' If ObjConta.GetProveedores(RFC:=RFC) Then
' If ObjConta.DtResultados.Rows.Count > 0 Then
' Dim dr As DataRow = ObjConta.DtResultados.Rows(0) : IdProveedor = dr("Id").ToString.ToEntero
' End If
' Else
' 'registro el proveedor generico
' Select Case Empresa.CveEmpresa
' Case 66 : IdProveedor = 12726
' Case Else : IdProveedor = 1
' End Select
' End If
' End If
' If IdProveedor <= 0 Then
' IdProveedor = ObjConta.AddProveedor(IdCtaContProveedores, RFC, RazonSocial, "")
' If IdProveedor <= 0 Then
' OcurrioError = True
' End If
' End If
' For Each dr As DataRow In Data.Rows
' If dr("Total").ToString.ToDecimal <> 0.00 Then
' If Not ObjConta.AddDevolucionesIVA(tIdPoliza, dr("CuentaBancos").ToString.ToEntero,
' IdProveedor,
' 16,
' dr("SubTotal").ToString.ToDecimal,
' dr("IvaAcreditable").ToString.ToDecimal,
' dr("IVARetenido").ToString.ToDecimal,
' dr("ISRRetenido").ToString.ToDecimal,
' Fecha,
' ContaFolio,
' dr("Serie").ToString.ToString,
' dr("Folio").ToString.StrToNum, "") Then
' OcurrioError = True
' Mensaje.Append("La Poliza o la Cuenta no son válidas")
' End If
' End If
' Next
' End If
'End If
If Not OcurrioError Then
Mensaje.Append(String.Format("<a href='/PyME/Contabilidad/RegPoliza.aspx?CvePoliza={0}' class='Texto' target='_blank'>{1}</a><br/>", tCvePoliza, FolioFijo))
ObjConta.Commit()
Retorno = True
_ContaIdPoliza = tCvePoliza
End If
End If
Else
OcurrioError = True
End If
Catch ex As Exception
ObjConta.RollBack()
OnError("Ocurrió un error al intentar contabilizar la PrePoliza", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
Retorno = False
End Try
ObjConta.Dispose()
Return Retorno
End Function
Public Function GetCuentaDobleConta(IdCtaContable As Integer, CveEmpresa As Integer) As Boolean Public Function GetCuentaDobleConta(IdCtaContable As Integer, CveEmpresa As Integer) As Boolean