Correcion de remisiones en refacturacion, y habilitar la autocontabilidad
This commit is contained in:
@@ -1816,10 +1816,10 @@ Namespace Modelos
|
|||||||
End Sub
|
End Sub
|
||||||
Private Function ProcesoPrepolizas(ObjFactura As Factura, ByRef ObjConta As ClsContabilidad, CveIE As Integer, TmpDTDetalle As DataTable, ByRef objContPaqi As ClsContPAQi,
|
Private Function ProcesoPrepolizas(ObjFactura As Factura, ByRef ObjConta As ClsContabilidad, CveIE As Integer, TmpDTDetalle As DataTable, ByRef objContPaqi As ClsContPAQi,
|
||||||
Optional ValorMultiplicador As Integer = 1, ByRef Optional ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing,
|
Optional ValorMultiplicador As Integer = 1, ByRef Optional ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing,
|
||||||
Optional ByRef DtRemisionesRelacionadas As DataTable = Nothing, Optional SeCancelaRemisionProceso As Boolean = False, Optional CancelarRemisiones As Boolean = False, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing) As Boolean
|
Optional ByRef DtRemisionesRelacionadas As DataTable = Nothing, Optional SeCancelaRemisionProceso As Boolean = False, Optional CancelarRemisiones As Boolean = False, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing,
|
||||||
|
Optional CveEstatusRefacturacion As Integer = 0) As Boolean
|
||||||
Dim ErrorPrepoliza As Boolean = False
|
Dim ErrorPrepoliza As Boolean = False
|
||||||
Try
|
Try
|
||||||
|
|
||||||
Dim DT As DataTable
|
Dim DT As DataTable
|
||||||
Dim CvePlantilaPoliza As Integer
|
Dim CvePlantilaPoliza As Integer
|
||||||
Dim PorcentajeAmortizacion As Decimal = 0
|
Dim PorcentajeAmortizacion As Decimal = 0
|
||||||
@@ -2426,10 +2426,6 @@ Namespace Modelos
|
|||||||
ErrorPrepoliza = True
|
ErrorPrepoliza = True
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=row2.DataKey("CveVentaNC").ToString.ToEntero, ImporteMX:=importeMovimiento * tipoCambio, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, CveSubProyecto:=CveSubProyectoContabilizar) Then
|
|
||||||
' ErrorPrepoliza = True
|
|
||||||
'End If
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
@@ -2488,8 +2484,6 @@ Namespace Modelos
|
|||||||
CveVentaAmortizacionAplicar = ObjFactura.CveVenta
|
CveVentaAmortizacionAplicar = ObjFactura.CveVenta
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' If UsuarioActual.CveEmpresa = 119 Then
|
|
||||||
|
|
||||||
'código fijo en base el porcentaje iva, que se afecten las clasificaciones
|
'código fijo en base el porcentaje iva, que se afecten las clasificaciones
|
||||||
For i = 0 To TmpDTDetalle.Rows.Count - 1
|
For i = 0 To TmpDTDetalle.Rows.Count - 1
|
||||||
|
|
||||||
@@ -2505,8 +2499,6 @@ Namespace Modelos
|
|||||||
|
|
||||||
Next
|
Next
|
||||||
|
|
||||||
' End If
|
|
||||||
|
|
||||||
DT = TmpDTDetalle.FiltraParametros($"CvePS <> {ObjFactura.CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto"})
|
DT = TmpDTDetalle.FiltraParametros($"CvePS <> {ObjFactura.CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto"})
|
||||||
|
|
||||||
If DT.Rows.Count > 0 Then
|
If DT.Rows.Count > 0 Then
|
||||||
@@ -2893,26 +2885,31 @@ Namespace Modelos
|
|||||||
'Si es Facturacion de una remision cancelamos, traspasamos saldos y agregamos evento a la bitacora
|
'Si es Facturacion de una remision cancelamos, traspasamos saldos y agregamos evento a la bitacora
|
||||||
If (DtRemisionesRelacionadas IsNot Nothing AndAlso DtRemisionesRelacionadas.Rows.Count > 0) OrElse ObjFactura.RemisionesLista.Count > 0 Then
|
If (DtRemisionesRelacionadas IsNot Nothing AndAlso DtRemisionesRelacionadas.Rows.Count > 0) OrElse ObjFactura.RemisionesLista.Count > 0 Then
|
||||||
|
|
||||||
If ObjFactura.RemisionesLista.Count > 0 Then
|
If Not ObjFactura.TipoDocto.Contiene("Ing", "Ant") Then
|
||||||
For Each CveRemision As Integer In RemisionesLista
|
ErrorPrepoliza = True
|
||||||
If Not ObjConta.TraspasarSaldosRemision(CveRemision, ObjFactura.CvePrePoliza, ObjFactura.CveVenta) Then
|
ErrorList.Add("No se pueden facturar las remisiones, con ese tipo de comprobante seleccionado")
|
||||||
ErrorPrepoliza = True
|
Else
|
||||||
End If
|
If ObjFactura.RemisionesLista.Count > 0 Then
|
||||||
|
For Each CveRemision As Integer In RemisionesLista
|
||||||
|
If Not ObjConta.TraspasarSaldosRemision(CveRemision, ObjFactura.CvePrePoliza, ObjFactura.CveVenta) Then
|
||||||
|
ErrorPrepoliza = True
|
||||||
|
End If
|
||||||
|
|
||||||
'Factura
|
'Factura
|
||||||
If Not ObjEventos.AddEventoBitacora($"Sustituye a: <a href='/Ventas/Ventas.aspx?CveVenta={CveRemision}' target='_blank' class='Texto'>Folio Factura</a>", "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=ObjFactura.CveVenta) Then
|
If Not ObjEventos.AddEventoBitacora($"Sustituye a: <a href='/Ventas/Ventas.aspx?CveVenta={CveRemision}' target='_blank' class='Texto'>Folio Factura</a>", "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=ObjFactura.CveVenta) Then
|
||||||
ErrorPrepoliza = True
|
ErrorPrepoliza = True
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'Remision
|
'Remision
|
||||||
If Not ObjEventos.AddEventoBitacora($"Refacturacion en: <a href='/Ventas/Ventas.aspx?CveVenta={ObjFactura.CveVenta}' target='_blank' class='Texto'>{ObjFactura.Folio}</a>", "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveRemision) Then
|
If Not ObjEventos.AddEventoBitacora($"Refacturacion en: <a href='/Ventas/Ventas.aspx?CveVenta={ObjFactura.CveVenta}' target='_blank' class='Texto'>{ObjFactura.Folio}</a>", "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveRemision) Then
|
||||||
ErrorPrepoliza = True
|
ErrorPrepoliza = True
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If ErrorPrepoliza Then
|
If ErrorPrepoliza Then
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -2923,7 +2920,8 @@ Namespace Modelos
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
'REGRESA SALDO A LAS REMISIONES QUE SE FACTURARON EN EL INGRESO QUE SE ESTA CANCELANDO
|
'REGRESA SALDO A LAS REMISIONES QUE SE FACTURARON EN EL INGRESO QUE SE ESTA CANCELANDO
|
||||||
If ObjFactura.TipoDocto = "Ing" And ValorMultiplicador = -1 AndAlso NuevaFactura <> 1 AndAlso Not SeCancelaRemisionProceso AndAlso DtRemisionesRelacionadas IsNot Nothing Then ' se debe de excluir cuando es refacturación
|
'SE DEBE DE EXCLUIR CUANDO ES REFACTURACIÓN
|
||||||
|
If ObjFactura.TipoDocto = "Ing" And ValorMultiplicador = -1 AndAlso CveEstatusRefacturacion = 0 AndAlso Not SeCancelaRemisionProceso AndAlso DtRemisionesRelacionadas IsNot Nothing Then ' se debe de excluir cuando es refacturación
|
||||||
For Each Dr As DataRow In DtRemisionesRelacionadas.Rows
|
For Each Dr As DataRow In DtRemisionesRelacionadas.Rows
|
||||||
|
|
||||||
Dim DebeCancelar As Boolean = CancelarRemisiones AndAlso ListaRemisionesCancelar.Any(Function(CveRemision) CveRemision = Dr("CveVenta").ToString.ToEntero())
|
Dim DebeCancelar As Boolean = CancelarRemisiones AndAlso ListaRemisionesCancelar.Any(Function(CveRemision) CveRemision = Dr("CveVenta").ToString.ToEntero())
|
||||||
@@ -2943,22 +2941,39 @@ Namespace Modelos
|
|||||||
If ObjConta.ValidacionPrePolizaCuadre(ObjFactura.CvePrePoliza, 2) Then
|
If ObjConta.ValidacionPrePolizaCuadre(ObjFactura.CvePrePoliza, 2) Then
|
||||||
If ObjConta.ValorPolizaDescuadre > 0 Then
|
If ObjConta.ValorPolizaDescuadre > 0 Then
|
||||||
If ObjConta.ValorPolizaDescuadre = 2 Then
|
If ObjConta.ValorPolizaDescuadre = 2 Then
|
||||||
|
ErrorList.Add(ObjConta.MensajePolizaDescuadre)
|
||||||
ErrorPrepoliza = True
|
ErrorPrepoliza = True
|
||||||
Alert(ObjConta.MensajePolizaDescuadre, TipoMensaje.MsgError)
|
|
||||||
GuardaLogAD($"Ventas/Ventas-ProcesoPrePolizas | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{ObjFactura.CvePrePoliza}", "LogPrePolizas")
|
GuardaLogAD($"Ventas/Ventas-ProcesoPrePolizas | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{ObjFactura.CvePrePoliza}", "LogPrePolizas")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'Simplificacion de PrePolizas
|
'Simplificacion de PrePolizas
|
||||||
If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then
|
If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then
|
||||||
If Not ObjConta.PrePolizaSimplificacion(ObjFactura.CvePrePoliza, UsuarioActual.CveEmpresa) Then
|
If Not ObjConta.PrePolizaSimplificacion(ObjFactura.CvePrePoliza, UsuarioActual.CveEmpresa) Then
|
||||||
Alert("No se pudo simplificar los movimientos", TipoMensaje.MsgError)
|
ErrorList.Add("No se pudo simplificar los movimientos")
|
||||||
|
ErrorPrepoliza = True
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'ContPAQ El movimiento 1 es el de Venta
|
||||||
|
Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1"
|
||||||
|
|
||||||
|
If UsuarioActual.CveEmpresa = 119 AndAlso ObjFactura.TipoDocto.Contiene("Ant", "Rem", "RNC", "Cot", "Ped", "Pd2", "PA", "NC") Then
|
||||||
|
AutoConta = False
|
||||||
|
End If
|
||||||
|
|
||||||
|
If AutoConta Then
|
||||||
|
If idCuentaContabilizacion > 0 Then
|
||||||
|
If Not ObjConta.ContabilizarPrePoliza(ObjFactura.CvePrePoliza, ObjFactura.CveUsuario, UsuarioActual.Empresa, ObjConta:=objContPaqi) Then
|
||||||
|
ErrorList.Add("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico")
|
||||||
|
'ErrorPrepoliza = True
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
ErrorList.Add(String.Format("Falta asignación de las siguientes cuentas contables: {0}", CuentasContablesInvalidas))
|
||||||
|
'ErrorPrepoliza = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
GuardaLog(ex.ToString())
|
GuardaLog(ex.ToString())
|
||||||
@@ -3787,6 +3802,7 @@ Namespace Modelos
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
Dim CveEstatusRefacturacion As Integer = If(ObjFactura.CveEstatusRefacturacion <= 0, 0, ObjFactura.CveEstatusRefacturacion)
|
Dim CveEstatusRefacturacion As Integer = If(ObjFactura.CveEstatusRefacturacion <= 0, 0, ObjFactura.CveEstatusRefacturacion)
|
||||||
|
|
||||||
Dim CancelacionFecha As Date
|
Dim CancelacionFecha As Date
|
||||||
Dim FolioFiscal As String = ObjFactura.FolioFiscal
|
Dim FolioFiscal As String = ObjFactura.FolioFiscal
|
||||||
Dim CancelacionAcuse As String = ""
|
Dim CancelacionAcuse As String = ""
|
||||||
@@ -3925,6 +3941,15 @@ Namespace Modelos
|
|||||||
|
|
||||||
Retorno.CveEstatus = CveEstatus
|
Retorno.CveEstatus = CveEstatus
|
||||||
|
|
||||||
|
'0 Sin Refacturacion, 1 Refacturacion en Proceso, 3. Refacturación en proceso sin aceptación
|
||||||
|
If EsRefacturacion AndAlso CveEstatusRefacturacion = 0 Then
|
||||||
|
If CveEstatus = 5 Then
|
||||||
|
CveEstatusRefacturacion = 3 ' refacturación en proceso sin autorización de cancelación
|
||||||
|
Else
|
||||||
|
CveEstatusRefacturacion = 1 ' refacturación en proceso con autorización de cancelación
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
Dim ObjVentas As New ClsVentas() : ObjVentas.IniciaTransacSQL()
|
Dim ObjVentas As New ClsVentas() : ObjVentas.IniciaTransacSQL()
|
||||||
Dim ObjConta As New ClsContabilidad(ObjVentas.IniciaTransacSQL())
|
Dim ObjConta As New ClsContabilidad(ObjVentas.IniciaTransacSQL())
|
||||||
Dim ObjBancos As New ClsBancos(ObjVentas.IniciaTransacSQL())
|
Dim ObjBancos As New ClsBancos(ObjVentas.IniciaTransacSQL())
|
||||||
@@ -3932,11 +3957,11 @@ Namespace Modelos
|
|||||||
Dim ObjContrato As New ClsContratos(ObjVentas.IniciaTransacSQL())
|
Dim ObjContrato As New ClsContratos(ObjVentas.IniciaTransacSQL())
|
||||||
Dim ObjEventos As New ClsOIEventos(ObjVentas.IniciaTransacSQL())
|
Dim ObjEventos As New ClsOIEventos(ObjVentas.IniciaTransacSQL())
|
||||||
Dim ObjAC As ClsContPAQi = Nothing
|
Dim ObjAC As ClsContPAQi = Nothing
|
||||||
If UsuarioActual.Empresa.UsaAC Then
|
|
||||||
|
If UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.Funcionalidad(200) = "1" Then
|
||||||
ObjAC = New ClsContPAQi(UsuarioActual.Empresa) : ObjAC.IniciaTransacSQL()
|
ObjAC = New ClsContPAQi(UsuarioActual.Empresa) : ObjAC.IniciaTransacSQL()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
Try
|
Try
|
||||||
If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then
|
If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then
|
||||||
CvePlantillaPoliza = 7
|
CvePlantillaPoliza = 7
|
||||||
@@ -3965,8 +3990,8 @@ Namespace Modelos
|
|||||||
|
|
||||||
'CANCELA PREPOLIZA
|
'CANCELA PREPOLIZA
|
||||||
If Not ErrorCancelar Then
|
If Not ErrorCancelar Then
|
||||||
ErrorCancelar = ProcesoPrepolizas(ObjFactura, ObjConta, -1, ObjFactura.DtDetalle, ObjAC, -1, ObjBancos, ObjVentas, ObjEventos, DtRemisionesRelacionadas:=DtRemisionesRelacionadas,
|
ErrorCancelar = ProcesoPrepolizas(ObjFactura, ObjConta, -1, ObjFactura.DtDetalle, ObjAC, -1, ObjBancos, ObjVentas, ObjEventos, DtRemisionesRelacionadas:=DtRemisionesRelacionadas, SeCancelaRemisionProceso:=SeCancelaRemisionProceso,
|
||||||
SeCancelaRemisionProceso:=SeCancelaRemisionProceso, CancelarRemisiones:=CancelarRemisiones, ListaRemisionesCancelar:=ListaRemisionesCancelar)
|
CancelarRemisiones:=CancelarRemisiones, ListaRemisionesCancelar:=ListaRemisionesCancelar, CveEstatusRefacturacion:=CveEstatusRefacturacion)
|
||||||
MensajeError = "Ocurrió un error al generar la prepoliza de cancelación."
|
MensajeError = "Ocurrió un error al generar la prepoliza de cancelación."
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -4095,15 +4120,14 @@ Namespace Modelos
|
|||||||
|
|
||||||
Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1"
|
Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1"
|
||||||
|
|
||||||
If UsuarioActual.CveEmpresa = 119 AndAlso ObjFactura.TipoDocto = "Ant" Then
|
If UsuarioActual.CveEmpresa = 119 AndAlso ObjFactura.TipoDocto.Contiene("Ant", "Rem", "RNC", "Cot", "Ped", "Pd2", "PA", "NC") Then
|
||||||
AutoConta = False
|
AutoConta = False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If AutoConta And Not ErrorCancelar Then
|
If AutoConta And Not ErrorCancelar Then
|
||||||
Dim ObjContPaq = New ClsContPAQi(UsuarioActual.Empresa)
|
|
||||||
|
|
||||||
If IdCtaContable > 0 Then
|
If IdCtaContable > 0 Then
|
||||||
If Not ObjConta.ContabilizarPrePoliza(CvePrePolizaDev, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContPaq) Then
|
If Not ObjConta.ContabilizarPrePoliza(CvePrePolizaDev, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjAC) Then
|
||||||
ErrorCancelar = True
|
ErrorCancelar = True
|
||||||
MensajeError = "Ocurrió un error al contabilizar la prepoliza."
|
MensajeError = "Ocurrió un error al contabilizar la prepoliza."
|
||||||
End If
|
End If
|
||||||
@@ -4111,7 +4135,6 @@ Namespace Modelos
|
|||||||
Alert(String.Format("No se puede contabilizar ya que falta asignación de las cuentas contables"), TipoMensaje.MsgAdvertencia)
|
Alert(String.Format("No se puede contabilizar ya que falta asignación de las cuentas contables"), TipoMensaje.MsgAdvertencia)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
ObjContPaq.Dispose()
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Else
|
Else
|
||||||
@@ -4241,17 +4264,16 @@ Namespace Modelos
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Else
|
End If
|
||||||
'MARCA LA VENTA PARA REALIZAR LA DEVOLUCION POSTERIORMENTE
|
|
||||||
If Not ErrorCancelar Then
|
'MARCA LA VENTA PARA REALIZAR LA DEVOLUCION POSTERIORMENTE
|
||||||
If RealizarDevolucionAlmacen AndAlso CveAlmacenDevolucion > 0 Then
|
If Not ErrorCancelar Then
|
||||||
If Not ObjVentas.UpdateVentaRealizarDevolucion(CveVenta, RealizarDevolucionAlmacen, CveAlmacenDevolucion) Then
|
If RealizarDevolucionAlmacen AndAlso CveAlmacenDevolucion > 0 Then
|
||||||
ErrorCancelar = True
|
If Not ObjVentas.UpdateVentaRealizarDevolucion(CveVenta, RealizarDevolucionAlmacen, CveAlmacenDevolucion) Then
|
||||||
MensajeError = "Ocurrió un error al marcar la venta para devolución"
|
ErrorCancelar = True
|
||||||
End If
|
MensajeError = "Ocurrió un error al marcar la venta para devolución"
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'ACTUALIZA ESTATUS
|
'ACTUALIZA ESTATUS
|
||||||
@@ -4262,14 +4284,6 @@ Namespace Modelos
|
|||||||
Case "Com"
|
Case "Com"
|
||||||
CveEstatus = 9
|
CveEstatus = 9
|
||||||
End Select
|
End Select
|
||||||
'0 Sin Refacturacion, 1 Refacturacion en Proceso, 3. Refacturación en proceso sin aceptación
|
|
||||||
If EsRefacturacion Then
|
|
||||||
If CveEstatus = 5 Then
|
|
||||||
CveEstatusRefacturacion = 3 ' refacturación en proceso sin autorización de cancelación
|
|
||||||
Else
|
|
||||||
CveEstatusRefacturacion = 1 ' refacturación en proceso con autorización de cancelación
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
|
|
||||||
If CveEstatus.Contiene(4, 5) Then
|
If CveEstatus.Contiene(4, 5) Then
|
||||||
If Not ObjVentas.UpdateCancelaVenta(CveVenta, CancelacionFecha, CancelacionAcuse, UsuarioActual.CveEmpresa, CvePACCancelacion) Then
|
If Not ObjVentas.UpdateCancelaVenta(CveVenta, CancelacionFecha, CancelacionAcuse, UsuarioActual.CveEmpresa, CvePACCancelacion) Then
|
||||||
|
|||||||
Reference in New Issue
Block a user