-- 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
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 = "",
Optional ObjConta As ClsContPAQi = Nothing, Optional pIDPoliza As Integer = -1) As Boolean
@@ -1096,36 +1117,30 @@ Public Class ClsContabilidad
Dim Retorno As Boolean = False
'No modificar esta seccion bajo ninguna circunstancia -- Empresa.CvePlataforma = 3 Or
'*****************************************************
If (CveUsuario.Contiene(100, 1425) And Empresa.CveEmpresa = 1) Then
Retorno = ContabilizarPrePolizaSIG(CvePrePoliza, CveUsuario, Empresa, Fecha, Concepto)
Return Retorno
End If
'*****************************************************
If Empresa.TipoContabilizacion = 1 Then
If Empresa.UsaArmonizacion Then
DataAdapter("PA_Conta_ContabilizaPrepoliza")
With SqlAdapter.SelectCommand.Parameters
.Add("@CvePrePoliza", SqlDbType.Int).Value = CvePrePoliza
.Add("@CvePoliza", SqlDbType.Int).Direction = ParameterDirection.Output
End With
ContabilizaDesContabilizaPrePoliza(CvePrePoliza, True, Empresa.CveEmpresa)
Try
SqlAdapter.Fill(Data)
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
'DataAdapter("PA_Conta_ContabilizaPrepoliza")
'With SqlAdapter.SelectCommand.Parameters
' .Add("@CvePrePoliza", SqlDbType.Int).Value = CvePrePoliza
' .Add("@CvePoliza", SqlDbType.Int).Direction = ParameterDirection.Output
'End With
'Try
' SqlAdapter.Fill(Data)
' 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
If CvePrePoliza <= 0 Then Return False
Dim OcurrioError As Boolean = False
Dim ContaCompartida As Boolean = False
If ObjConta Is Nothing Then
@@ -1135,9 +1150,6 @@ Public Class ClsContabilidad
ContaCompartida = True
End If
Dim tIdPoliza As Integer
Dim CveTipoPoliza, FolioFijo, CvePlantillaPoliza As Integer
Dim Cargos As Decimal
@@ -1152,23 +1164,8 @@ Public Class ClsContabilidad
Dim ContabilizarCausacion 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
'If Empresa.Funcionalidad(522).ToString = "1" AndAlso ObjConta.GetCuentas(-1, "-1", -1) Then
' DatosCuentas = ObjConta.DtResultados
'End If
If GetEncabezadoPrePoliza(CvePrePoliza, Empresa.CveEmpresa) Then
CveTipoPoliza = Data.Rows(0)("CveTipoPoliza").ToString.ToEntero
Cargos = Data.Rows(0)("Cargos").ToString.ToDecimal
@@ -1255,30 +1252,6 @@ Public Class ClsContabilidad
Exit For
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
If Not ObjConta.AddMovimiento(tIdPoliza, dr("IdCtaContable").ToString.ToEntero, tipoMovimiento,
@@ -1288,29 +1261,6 @@ Public Class ClsContabilidad
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
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 Not ContaCompartida Then ObjConta.RollBack()
Else
@@ -1539,215 +1406,6 @@ Public Class ClsContabilidad
Return Retorno
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