From 89daf03ef8a62e70d329feecfc3b97d4840fa9df Mon Sep 17 00:00:00 2001 From: Raul Pimienta Date: Wed, 28 Aug 2019 18:06:50 -0700 Subject: [PATCH] Cancelacion IE desbloqueo de prepolizas NC de remision con Generacion de NC de Cargo --- App_Code/Modelos.vb | 47 ++++++++++++++++++++++----- Bancos/IE.aspx.vb | 72 +++++++++++++++++++++++++++-------------- Ventas/Clientes.aspx.vb | 10 +++--- 3 files changed, 92 insertions(+), 37 deletions(-) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 2f8659c84..ea286a715 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -1761,7 +1761,7 @@ Namespace Modelos CvePlantilaPoliza = 4 ElseIf ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then CvePlantilaPoliza = 7 - ElseIf ObjFactura.TipoDocto = "Rem" Then + ElseIf ObjFactura.TipoDocto.Contiene("Rem", "RNC") Then CvePlantilaPoliza = 4 End If @@ -1818,7 +1818,7 @@ Namespace Modelos Select Case ConceptoContable Case 1 'Cliente - If Not ObjFactura.TipoDocto.Contiene("Egs", "Rem") Then + If Not ObjFactura.TipoDocto.Contiene("Egs", "Rem", "RNC") Then importeMovimiento = ((ObjFactura.Total - ObjFactura.TotalOtrosConceptos) * ValorMultiplicador) importeMX = (importeMovimiento * tipoCambio * Multiplicador) FechaMovimiento = ObjFactura.FechaPago @@ -1888,6 +1888,37 @@ Namespace Modelos importeMovimiento = 0 ObjFactura.SeGuardoPrePoliza = True End If + Case 277 'Remisión del cliente + + If ObjFactura.TipoDocto = "RNC" Then + importeMovimiento = ((ObjFactura.Total - TotalOtrosConceptos) * ValorMultiplicador) + importeMX = importeMovimiento * tipoCambio * Multiplicador + FechaMovimiento = ObjFactura.FechaPago + CveSubProyectoContabilizar = CveSubProyectoVenta + If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}" + + If tipoCambio = 1 Then + IdCtaContable = ObjFactura.Cliente.IdCtaContClientes + CveCuenta = ObjFactura.Cliente.CveCuentaClientes + Else + IdCtaContable = ObjFactura.Cliente.IdCtaContMonedaExtranjera + CveCuenta = ObjFactura.Cliente.CveCuentaMonedaExtranjera + End If + IdCtaContableCliente = IdCtaContable + CveCuentaCliente = CveCuenta + + If ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 277, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 278, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then + ErrorPrepoliza = True + End If + Else + ErrorPrepoliza = True + End If + + importeMovimiento = 0 + ObjFactura.SeGuardoPrePoliza = True + End If + Case 12 'Nota de Credito If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then @@ -2287,7 +2318,7 @@ Namespace Modelos importeMovimiento = 0 Case 4 'Venta Clasificacion - If Not ObjFactura.TipoDocto.Contiene("Rem", "Ant", "Egs", "Dev") Then + If Not ObjFactura.TipoDocto.Contiene("Rem", "Ant", "Egs", "Dev", "RNC") Then Dim ConceptoContableAplicar = 4 Dim CveVentaAplicar = ObjFactura.CveVenta @@ -2442,7 +2473,7 @@ Namespace Modelos importeMovimiento = 0 Case 103 'Descuento - If Not ObjFactura.TipoDocto.Contiene("Rem") AndAlso ObjFactura.CveTipoAmortizacionAnticipo = -1 Then + If Not ObjFactura.TipoDocto.Contiene("Rem", "RNC") AndAlso ObjFactura.CveTipoAmortizacionAnticipo = -1 Then importeMovimiento = (ObjFactura.Descuento * ValorMultiplicador) importeMX = Math.Round(importeMovimiento, 2) * tipoCambio * Multiplicador @@ -2480,7 +2511,7 @@ Namespace Modelos End If Case 8 'Ret IVA por Trasladar - If Not ObjFactura.TipoDocto.Contiene("Rem") Then + If Not ObjFactura.TipoDocto.Contiene("Rem", "RNC") Then importeMovimiento = (ObjFactura.RetIVA * ValorMultiplicador) importeMX = Math.Round(importeMovimiento, 2) * tipoCambio * Multiplicador FechaMovimiento = ObjFactura.FechaPago @@ -2511,7 +2542,7 @@ Namespace Modelos End If Case 9 'Ret ISR por Trasladar - If Not ObjFactura.TipoDocto.Contiene("Rem") Then + If Not ObjFactura.TipoDocto.Contiene("Rem", "RNC") Then importeMovimiento = (ObjFactura.RetISR * ValorMultiplicador) importeMX = importeMovimiento * tipoCambio * Multiplicador FechaMovimiento = ObjFactura.FechaPago @@ -2541,7 +2572,7 @@ Namespace Modelos End If End If Case 13 'Iva por Trasladar - If Not ObjFactura.TipoDocto.Contiene("Rem") Then + If Not ObjFactura.TipoDocto.Contiene("Rem", "RNC") Then importeMovimiento = (ObjFactura.IVA * ValorMultiplicador) importeMX = Math.Round(importeMovimiento * tipoCambio * Multiplicador, 2) FechaMovimiento = ObjFactura.FechaPago @@ -2554,7 +2585,7 @@ Namespace Modelos Case 38 'IEPS por Trasladar - If Not ObjFactura.TipoDocto.Contiene("Rem") Then + If Not ObjFactura.TipoDocto.Contiene("Rem", "RNC") Then importeMovimiento = (ObjFactura.IEPS * ValorMultiplicador) importeMX = Math.Round(importeMovimiento * tipoCambio * Multiplicador, 2) FechaMovimiento = ObjFactura.Fecha diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb index 873ea911d..2b0b310cb 100644 --- a/Bancos/IE.aspx.vb +++ b/Bancos/IE.aspx.vb @@ -1207,10 +1207,10 @@ Partial Class Bancos_IE If UsuarioActual.Empresa.UsaAC OrElse UsuarioActual.Empresa.Funcionalidad(200) = "1" Then - If IDCtaBeneficiario = 0 And UsuarioActual.Empresa.UsaContabilidad Then + If IDCtaBeneficiario = 0 AndAlso UsuarioActual.Empresa.Funcionalidad(200) = "1" Then Alert("El Beneficiario no tiene cuenta contable vinculada. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) BtnGuardar.Enabled = False - ElseIf CveCuentaBeneficiario = 0 And UsuarioActual.Empresa.UsaContabilidadSIG Then + ElseIf CveCuentaBeneficiario = 0 AndAlso UsuarioActual.Empresa.UsaContabilidadSIG Then Alert("El Beneficiario no tiene cuenta contable vinculada en SIG. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) BtnGuardar.Enabled = False Else @@ -1260,7 +1260,7 @@ Partial Class Bancos_IE End If If UsuarioActual.Empresa.UsaAC OrElse UsuarioActual.Empresa.Funcionalidad(200) = "1" Then - If IDCtaBeneficiario = 0 AndAlso UsuarioActual.Empresa.UsaContabilidad Then + If IDCtaBeneficiario = 0 AndAlso UsuarioActual.Empresa.Funcionalidad(200).ToString = "1" Then Alert("El Beneficiario no tiene cuenta contable vinculada. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) BtnGuardar.Enabled = False ElseIf CveCuentaBeneficiario = 0 AndAlso UsuarioActual.Empresa.UsaContabilidadSIG Then @@ -1320,7 +1320,7 @@ Partial Class Bancos_IE CveCuentaBeneficiario = ObjPersonal.CveCuentaPersonal If UsuarioActual.Empresa.UsaAC OrElse UsuarioActual.Empresa.Funcionalidad(200) = "1" Then - If IDCtaBeneficiario = 0 AndAlso UsuarioActual.Empresa.UsaContabilidad Then + If IDCtaBeneficiario = 0 AndAlso UsuarioActual.Empresa.Funcionalidad(200).ToString = "1" Then Alert("El Beneficiario no tiene cuenta contable vinculada. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) BtnGuardar.Enabled = False ElseIf CveCuentaBeneficiario = 0 AndAlso UsuarioActual.Empresa.UsaContabilidadSIG Then @@ -1419,7 +1419,7 @@ Partial Class Bancos_IE DivTarjeta.Visible = False End If - If Not IDCtaContable > 0 AndAlso UsuarioActual.Empresa.UsaContabilidad Then + If Not IDCtaContable > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(200).ToString = "1" Then Alert("La Cuenta Bancaria no tiene asignada una cuenta contable", TipoMensaje.MsgAdvertencia) End If @@ -3768,10 +3768,10 @@ Partial Class Bancos_IE End If Dim Banc As New ClsBancos - Banc.IniciaTransacSQL() + Dim ObjConta As New ClsContabilidad(Banc.IniciaTransacSQL()) Dim ObjAC As ClsContPAQi = Nothing - If UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad Then + If UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.Funcionalidad(200).ToString = "1" Then ObjAC = New ClsContPAQi(UsuarioActual.Empresa) ObjAC.IniciaTransacSQL() End If @@ -3782,7 +3782,7 @@ Partial Class Bancos_IE Dim IdPolizaNueva = -1 Dim FolioPolizaNueva = -1 - If (IDPoliza > 0 AndAlso (UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad)) Then + If (IDPoliza > 0 AndAlso (UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.Funcionalidad(200).ToString = "1")) Then If ObjAC Is Nothing Then ErrorCancelar = True @@ -3831,20 +3831,38 @@ Partial Class Bancos_IE Else - 'LIMPIA POLIZA PONIENDO IMPORTE EN CEROS - For Each dr As DataRow In dt.Rows - If Not ObjAC.UpdateMovimiento(dr("Id").ToString.ToEntero, dr("IdCuenta").ToString.ToEntero, dr("TipoMovto").ToString = "1", 0, dr("Referencia").ToString, dr("Concepto").ToString, dr("IdSegNeg").ToString.ToEntero, dr("Fecha").ToString.ToDate) Then - ErrorCancelar = True - MensajeError = "Error al actualizar Movimientos con importe 0" - Exit For - End If - Next + 'SE COMENTO PARA PODER DESBLOQUEAR LA PREPOLIZA Y CREAR UNA NUEVA POLIZA + ''LIMPIA POLIZA PONIENDO IMPORTE EN CEROS + 'For Each dr As DataRow In dt.Rows + ' If Not ObjAC.UpdateMovimiento(dr("Id").ToString.ToEntero, dr("IdCuenta").ToString.ToEntero, dr("TipoMovto").ToString = "1", 0, dr("Referencia").ToString, dr("Concepto").ToString, dr("IdSegNeg").ToString.ToEntero, dr("Fecha").ToString.ToDate) Then + ' ErrorCancelar = True + ' MensajeError = "Error al actualizar Movimientos con importe 0" + ' Exit For + ' End If + 'Next - 'AJUSTA POLIZA - If Not ErrorCancelar Then - If Not ObjAC.AjustaPoliza(IDPoliza) Then + ''AJUSTA POLIZA + 'If Not ErrorCancelar Then + ' If Not ObjAC.AjustaPoliza(IDPoliza) Then + ' ErrorCancelar = True + ' MensajeError = "Error al ajustar poliza negativa" + ' End If + 'End If + + If ObjAC.RemovePoliza(IDPoliza) Then + If Not ObjConta.DesvincularPrePolizaContabilizada(IDPoliza, UsuarioActual.CveEmpresa) Then ErrorCancelar = True - MensajeError = "Error al ajustar poliza negativa" + MensajeError = "Error al desvincular poliza." + End If + Else + ErrorCancelar = True + MensajeError = "Error al eliminar poliza." + End If + + If Not ErrorCancelar Then + If Not ObjConta.UpdatePrePolizasDetalleBloquear(CvePrePoliza, False) Then + ErrorCancelar = True + MensajeError = "Error al desbloquear prepoliza." End If End If @@ -3856,6 +3874,11 @@ Partial Class Bancos_IE End If End If + If Not ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then + ErrorCancelar = True + MensajeError = "Error al contabilizar poliza" + End If + End If End If @@ -3955,6 +3978,7 @@ Partial Class Bancos_IE If ObjAC IsNot Nothing Then ObjAC.Dispose() Banc.Dispose() + ObjConta.Dispose() End Sub Protected Sub BtnDevueltoIE_Click(sender As Object, e As EventArgs) @@ -3981,7 +4005,7 @@ Partial Class Bancos_IE Dim ObjConta As New ClsContabilidad(Banc.IniciaTransacSQL) Dim ObjAC As ClsContPAQi = Nothing - If UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad Then + If UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.Funcionalidad(200).ToString = "1" Then ObjAC = New ClsContPAQi(UsuarioActual.Empresa) ObjAC.IniciaTransacSQL() End If @@ -3991,7 +4015,7 @@ Partial Class Bancos_IE Dim IdPolizaNueva = -1 Dim FolioPolizaNueva = -1 - If (IDPoliza > 0 AndAlso (UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad)) Then + If (IDPoliza > 0 AndAlso (UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.Funcionalidad(200).ToString = "1")) Then If ObjAC Is Nothing Then ErrorCancelar = True @@ -4311,7 +4335,7 @@ Partial Class Bancos_IE Dim ErrorCompra = False 'Elimina la poliza - If (UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad) AndAlso IDPoliza > 0 Then + If (UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.Funcionalidad(200).ToString = "1") AndAlso IDPoliza > 0 Then If Not ObjAC.RemovePoliza(IDPoliza) Then ErrorCompra = True End If @@ -4698,7 +4722,7 @@ Partial Class Bancos_IE End If End If - If (UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad) AndAlso IDPoliza > 0 Then + If (UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.Funcionalidad(200).ToString = "1") AndAlso IDPoliza > 0 Then ObjAC = New ClsContPAQi(UsuarioActual.Empresa) ObjAC.IniciaTransacSQL() If Not ObjAC.RemovePoliza(IDPoliza) Then diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index 34f83d72e..b2349edd5 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -8473,7 +8473,7 @@ Partial Class Clientes End Sub - Function FolioNotaCredito() As Boolean + Function FolioNotaCredito(Tipo As Integer) As Boolean FolioNotaAcumulador = 0 SerieNotaAcumulador = "" @@ -8485,7 +8485,7 @@ Partial Class Clientes If DTSucursales.Rows.Count > 0 Then - If ObjFolios.GetFolios("Egs", UsuarioActual.CveEmpresa) Then + If ObjFolios.GetFolios(If(Tipo = 1, "RNC", "Egs"), UsuarioActual.CveEmpresa) Then Dim DT As DataTable If UsuarioActual.CveSubProyecto > 0 Then @@ -8862,7 +8862,7 @@ Partial Class Clientes Dim Folio As Integer = 0 Dim Serie As String = "" - If FolioNotaCredito() Then + If FolioNotaCredito(Tipo) Then Folio = FolioNotaAcumulador Serie = SerieNotaAcumulador End If @@ -8879,7 +8879,7 @@ Partial Class Clientes ObjFactura.CveMoneda = 1 ObjFactura.Moneda = "Pesos" ObjFactura.MonedaSAT = "MXN" - ObjFactura.TipoDocto = "Egs" + ObjFactura.TipoDocto = If(Tipo = 1, "RNC", "Egs") ObjFactura.Folio = Folio @@ -9013,7 +9013,7 @@ Partial Class Clientes End If - If ObjFactura.TipoDocto = "Egs" Then + If ObjFactura.TipoDocto.Contiene("Egs", "RNC") Then ObjFactura.CveTipoRelacion = -1 End If