diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb
index b28b1630c..0a37fc57f 100644
--- a/App_Code/ClsContabilidad.vb
+++ b/App_Code/ClsContabilidad.vb
@@ -1539,6 +1539,26 @@ Public Class ClsContabilidad
Return Retorno
End Function
+ Public Function DesAplicarPago(CvePrePoliza As Integer, CveConcepto As Integer, CveVenta As Integer, CveVentaAmortizacion As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_Conta_DesAplicarMovimiento")
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CvePrePoliza", SqlDbType.Int).Value = CvePrePoliza
+ .Add("@CveConceptoContable", SqlDbType.Int).Value = CveConcepto
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
+ .Add("@CveVentaAmortizacion", SqlDbType.Int).Value = CveVentaAmortizacion
+ End With
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+
+ OnError("Ocurrió un error al desaplicar pago.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
+
+ End Try
+ Return Retorno
+ End Function
+
Public Function GetEncabezadoPrePoliza(CvePrePoliza As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb
index 4f709540a..f8f0acc7a 100644
--- a/App_Code/ClsPaginas.vb
+++ b/App_Code/ClsPaginas.vb
@@ -9388,15 +9388,19 @@ Public Class ClsPaginas
Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False)
Dim tFecha As Date = Pago.Fecha
- Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha)
- If UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso UltimaFluctuacion IsNot Nothing Then
- If UltimaFluctuacion.FechaFluctuacion <= tFecha Then
- 'FechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion
- TCValuacion = UltimaFluctuacion.TCFluctuacion
+ If CompraActual.CveMoneda <> 1 OrElse Pago.CveMonedaPago <> 1 Then
+ Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha)
+
+ If UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso UltimaFluctuacion IsNot Nothing Then
+ If UltimaFluctuacion.FechaFluctuacion <= tFecha Then
+ 'FechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion
+ TCValuacion = UltimaFluctuacion.TCFluctuacion
+ End If
End If
End If
+
If CompraActual.CveMoneda = 1 And Pago.CveMonedaPago <> 1 Then 'factura pesos, pago en dolares
tImportePago = ((Pago.ImportePago * TCValuacion / Pago.TCPago).RoundSQL * Pago.TCPago).RoundSQL
ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago <> 1 Then 'factura dolares, pago en dolares
@@ -9425,7 +9429,7 @@ Public Class ClsPaginas
ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL
If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento
- Dim Ret As CompraRetenciones = CompraActual.ConceptoPrePolizaIVA
+ Dim Ret As ConceptosRetenciones = CompraActual.ConceptoPrePolizaIVA
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True
'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe
@@ -9451,7 +9455,7 @@ Public Class ClsPaginas
ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL
If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento
- Dim Ret As CompraRetenciones = CompraActual.ConceptoPrePolizaRetIVA
+ Dim Ret As ConceptosRetenciones = CompraActual.ConceptoPrePolizaRetIVA
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True
'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe
@@ -9467,7 +9471,7 @@ Public Class ClsPaginas
ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL
If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento
- Dim Ret As CompraRetenciones = CompraActual.ConceptoPrePolizaRetISR
+ Dim Ret As ConceptosRetenciones = CompraActual.ConceptoPrePolizaRetISR
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True
'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe
@@ -9483,7 +9487,7 @@ Public Class ClsPaginas
ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL
If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento
- Dim Ret As New CompraRetenciones
+ Dim Ret As New ConceptosRetenciones
If UsuarioActual.Empresa.TipoContabilidad = 2 Then
If ObjConta.GetRetCuenta(26, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero
@@ -9590,9 +9594,9 @@ Public Class ClsPaginas
Public Property IdCtaContableProv As Integer
Public Property IdCtaContableProvComplementaria As Integer
- Public ReadOnly Property ConceptoPrePolizaIVA As CompraRetenciones
+ Public ReadOnly Property ConceptoPrePolizaIVA As ConceptosRetenciones
Get
- Dim Ret As New CompraRetenciones
+ Dim Ret As New ConceptosRetenciones
If EsImportacion Then
Ret.CveConceptoAcreditable = 288
Ret.CveConceptoxAcreditar = 287
@@ -9618,9 +9622,9 @@ Public Class ClsPaginas
End Get
End Property
- Public ReadOnly Property ConceptoPrePolizaRetIVA As CompraRetenciones
+ Public ReadOnly Property ConceptoPrePolizaRetIVA As ConceptosRetenciones
Get
- Dim Ret As New CompraRetenciones
+ Dim Ret As New ConceptosRetenciones
Dim Funcionalidad As Integer
If CveConceptoRetIVA = 1 Then
Funcionalidad = 308
@@ -9670,9 +9674,9 @@ Public Class ClsPaginas
Return Ret
End Get
End Property
- Public ReadOnly Property ConceptoPrePolizaRetISR As CompraRetenciones
+ Public ReadOnly Property ConceptoPrePolizaRetISR As ConceptosRetenciones
Get
- Dim Ret As New CompraRetenciones
+ Dim Ret As New ConceptosRetenciones
Dim Funcionalidad As Integer
If CveConceptoRetISR = 1 Then
Funcionalidad = 316
@@ -9714,7 +9718,7 @@ Public Class ClsPaginas
End Class
- Public Class CompraRetenciones
+ Public Class ConceptosRetenciones
Public Property CveConceptoxAcreditar As Integer
Public Property CveConceptoAcreditable As Integer
Public Property IdCtaContablexAcreditar As Integer
@@ -9727,5 +9731,290 @@ Public Class ClsPaginas
#End Region
+
+
+#Region "P A G O D E V E N T A S "
+
+
+ Public Function AplicaPrePolizaPagoVenta(VentaActual As Venta, Pago As VentaPago, CvePrePoliza As Integer, ByRef ObjConta As ClsContabilidad) As Boolean
+ Dim ErrorMovtos As Boolean = False
+ Dim PorcentajePago As Decimal = Pago.ImportePago / VentaActual.Total
+ Dim ImporteMovimiento As Decimal = 0
+ Dim ImporteMN As Decimal = 0
+ Dim ImporteME As Decimal = 0
+ Dim TCValuacion As Decimal
+ Dim TCValuacionVenta As Decimal = VentaActual.TC
+ Dim TCValuacionPago As Decimal = Pago.TCPago
+ Dim tFechaUltimaFluctuacion As Date
+ Dim tImportePago, tImporteVenta As Decimal
+ Dim CveConceptoContableComplementaria As Integer = 207
+
+ Pago.CveConceptoPago = If(Pago.CveConceptoPago = -1, 2, Pago.CveConceptoPago) 'si viene en parametro lo toma com primera opcion, sino el 2
+
+ If VentaActual.CveMoneda <> 1 Then Pago.CveConceptoPago = 292
+
+ Dim Concepto As String = String.Format("{0} F:{1}", VentaActual.ClienteNombre, VentaActual.SerieFolio)
+ Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False)
+
+ Dim tFecha As Date = Pago.Fecha
+ Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha)
+
+ If UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso UltimaFluctuacion IsNot Nothing Then
+ If UltimaFluctuacion.FechaFluctuacion <= tFecha Then
+ tFechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion
+ TCValuacion = UltimaFluctuacion.TCFluctuacion
+ End If
+ If VentaActual.Fecha < tFechaUltimaFluctuacion Then TCValuacionVenta = TCValuacion
+ If Pago.FechaDocumentoRelacionado < tFechaUltimaFluctuacion Then TCValuacionPago = TCValuacion
+
+ End If
+
+ If VentaActual.CveMoneda = 1 And Pago.CveMonedaPago <> 1 Then 'factura pesos, pago en dolares
+ tImportePago = ((Pago.ImportePago * TCValuacionVenta / Pago.TCPago).RoundSQL * Pago.TCPago).RoundSQL
+ ElseIf VentaActual.CveMoneda <> 1 And Pago.CveMonedaPago <> 1 Then 'factura dolares, pago en dolares
+ tImporteVenta = (Pago.ImportePago * TCValuacionVenta).RoundSQL
+ tImportePago = (Pago.ImportePago * TCValuacionPago).RoundSQL
+ ElseIf VentaActual.CveMoneda <> 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos
+ tImporteVenta = (Pago.ImportePago * TCValuacionVenta).RoundSQL
+ tImportePago = (Pago.ImportePago * TCValuacionPago).RoundSQL
+ End If
+ If VentaActual.CveMoneda > 1 Then ImporteME = Pago.ImportePagoVenta
+
+ 'movimiento de pago cliente
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePagoVenta, Pago.ImportePagoVenta, Pago.CveConceptoPago, VentaActual.SerieFolio, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveVentaAmortizacion:=Pago.CveVentaAmortizacion, TipoCambio:=TCValuacion, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True
+
+ 'movimiento de pago cliente Complementaria
+ If Not ErrorMovtos AndAlso VentaActual.CveMoneda > 1 Then
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePagoVenta, (ImporteME * TCValuacion - ImporteME).RoundSQL, CveConceptoContableComplementaria, VentaActual.SerieFolio, Concepto, VentaActual.IdCtaContableClienteComplementaria, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveVentaAmortizacion:=Pago.CveVentaAmortizacion, TipoCambio:=TCValuacion, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True
+
+ End If
+
+ If Pago.AplicaTraslado Then
+
+ 'si tiene iva y su proporcion
+ If Not ErrorMovtos AndAlso VentaActual.IVA <> 0 Then
+ ImporteMovimiento = (PorcentajePago * VentaActual.IVA).RoundSQL
+ ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL
+ If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 13, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, PorcentajeImpuesto:=VentaActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True
+
+ 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe
+ If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * TCValuacionPago).RoundSQL
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 61, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, PorcentajeImpuesto:=VentaActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True
+
+ End If
+
+ End If
+
+ 'si tiene RET IVA y su proporcion
+ If Not ErrorMovtos AndAlso VentaActual.RetIVA > 0 Then
+ ImporteMovimiento = (PorcentajePago * VentaActual.RetIVA).RoundSQL
+ ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL
+ If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 8, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True
+
+ 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe
+ If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * TCValuacionPago).RoundSQL
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 62, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True
+
+ End If
+
+ 'si tiene Ret ISR y su proporcion
+ If Not ErrorMovtos AndAlso VentaActual.RetISR > 0 Then
+ ImporteMovimiento = (PorcentajePago * VentaActual.RetISR).RoundSQL
+ ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL
+ If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 9, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True
+
+ 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe
+ If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * TCValuacionPago).RoundSQL
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 63, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True
+
+ End If
+
+ 'si tiene IEPS y su proporcion
+ If Not ErrorMovtos AndAlso VentaActual.IEPS > 0 Then
+ ImporteMovimiento = (PorcentajePago * VentaActual.IEPS).RoundSQL
+ ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL
+ If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento
+
+ Dim Ret As New ConceptosRetenciones
+ If UsuarioActual.Empresa.TipoContabilidad = 2 Then
+ If ObjConta.GetRetCuenta(38, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero
+
+ If ObjConta.GetRetCuenta(39, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero
+
+ End If
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 38, VentaActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True
+
+ 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe
+ If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * Pago.TCPago).RoundSQL
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 39, VentaActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True
+
+ End If
+
+ If Pago.TipoPago = "A" AndAlso Not ErrorMovtos Then 'A N T I C I P O
+ Dim Ret As New ConceptosRetenciones
+ If Pago.CveMonedaPago > 1 Then
+ 'Agregamos la Extranjera
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 11, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipo, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True
+
+ ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 207, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoComplementaria, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True
+ Else
+ 'Agregamos Nacional
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 11, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoExtranjera, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago) Then ErrorMovtos = True
+
+ End If
+
+ End If
+
+ If Pago.TipoPago = "NC" AndAlso Not ErrorMovtos Then ' N O T A D E C R E D I T O
+ Dim Ret As New ConceptosRetenciones
+ If Pago.CveMonedaPago > 1 Then
+ 'Agregamos la Extranjera
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 91, Pago.Referencia, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True
+
+ ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 203, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteComplementaria, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True
+ Else
+ 'Agregamos Nacional
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 91, Pago.Referencia, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True
+
+ End If
+
+ End If
+
+ If Pago.TipoPago = "I" AndAlso Not ErrorMovtos Then 'I N G R E S O S X C O M P R O B A R
+
+ Dim Ret As New ConceptosRetenciones
+ If UsuarioActual.Empresa.TipoContabilidad = 2 Then
+ If ObjConta.GetRetCuenta(66, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero
+
+ If Pago.CveMonedaPago > 1 AndAlso ObjConta.GetRetCuenta(207, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero
+
+ End If
+
+ If Pago.CveMonedaPago > 1 Then
+ 'Agregamos la Extranjera
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 66, Pago.Referencia, Concepto, Ret.IdCtaContableAcreditable, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True
+
+ ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 207, Pago.Referencia, Concepto, Ret.IdCtaContablexAcreditar, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True
+ Else
+ 'Agregamos Nacional
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 66, Pago.Referencia, Concepto, Ret.IdCtaContableAcreditable, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True
+
+ End If
+
+ End If
+
+ 'si tiene otros gastos/ingresos
+ ImporteMovimiento = Pago.OtroGastoIngreso
+ If Not ErrorMovtos AndAlso ImporteMovimiento <> 0 Then
+ Dim tOtCveCon As Integer = 211
+ Dim tOtTipoMovto As Boolean = False
+ If ImporteMovimiento < 0 Then
+ tOtTipoMovto = True : tOtCveCon = 78
+ ImporteMovimiento = Math.Abs(ImporteMovimiento)
+ End If
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tOtTipoMovto, ImporteMovimiento, ImporteMovimiento, tOtCveCon, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveSubProyecto:=VentaActual.CveSubProyecto, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True
+
+ End If
+
+ If Not ErrorMovtos AndAlso VentaActual.TC <> Pago.TCPago Then
+ Dim ConceptoContable, IdCtaContable As Integer
+ Dim TipoMovimiento As Boolean
+ Dim Diferencia As Decimal = 0
+
+ If tImporteVenta <> tImportePago Then
+ If tImporteVenta > tImportePago Then
+ ConceptoContable = 64 : IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria
+ TipoMovimiento = True
+ Else
+ ConceptoContable = 65 : IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria
+ TipoMovimiento = False
+ End If
+ Diferencia = (tImporteVenta - tImportePago).Abs.RoundSQL
+
+ End If
+
+ If FuncionalidadFluctuacionImpuestos Then
+ Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, Pago.TCPago, VentaActual.TC)
+ Diferencia = (Pago.ImportePago * VentaActual.TC) - (Pago.ImportePago * Pago.TCPago) 'Añadimos la diferencia de perdida en la venta
+ Diferencia -= ((VentaActual.IVA * PorcentajePago) * VentaActual.TC) - ((VentaActual.IVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IVA
+ Diferencia += ((VentaActual.RetIVA * PorcentajePago) * VentaActual.TC) - ((VentaActual.RetIVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetIVA
+ Diferencia += ((VentaActual.RetISR * PorcentajePago) * VentaActual.TC) - ((VentaActual.RetISR * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetISR
+ Diferencia -= ((VentaActual.IEPS * PorcentajePago) * VentaActual.TC) - ((VentaActual.IEPS * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IEPS
+ Diferencia = Diferencia.Abs.RoundSQL
+ End If
+
+ If Diferencia <> 0 Then
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Diferencia, Diferencia, ConceptoContable, Concepto, Concepto, IdCtaContable, CveVenta:=VentaActual.CveVenta, CveSubProyecto:=VentaActual.CveSubProyecto, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE) Then
+ ErrorMovtos = True
+ End If
+ End If
+ End If
+
+ Return ErrorMovtos
+ End Function
+
+
+ Public Class VentaPago
+ Public Property TipoPago As String = "B" ' B - Bancos, A - Anticipos, I - IxC, NC - Nota de crédito
+ Public FechaDocumentoRelacionado As Date
+ Public Fecha As Date
+ Public Property CveIE As Integer = -1
+ Public Property CvePersonal As Integer = -1
+ Public Property ImportePagoVenta As Decimal = 0
+ Public Property ImportePago As Decimal = 0
+ Public Property CveMonedaPago As Integer = 1
+ Public Property TCPago As Decimal = 1
+ Public Property CveVentaAmortizacion As Integer = 0
+ Public Property OtroGastoIngreso As Decimal = 0
+ Public Property CveConceptoPago As Integer = -1 'no definido de inicio
+ Public Property CveCreditoDetalle As Integer = -1
+ Public Property AplicaTraslado As Boolean = True
+ Public Property Referencia As String
+
+ End Class
+
+ Public Class Venta
+ Public Property CveVenta As Integer = -1
+ Public Property CveCliente As Integer
+ Public Property CveMoneda As Integer
+ Public Property Fecha As Date
+ Public Property SerieFolio As String = ""
+ Public Property ClienteNombre As String = ""
+ Public Property TC As Decimal = 1
+ Public Property Total As Decimal
+ Public Property IVA As Decimal
+ Public Property IEPS As Decimal
+ Public Property RetIVA As Decimal
+ Public Property RetISR As Decimal
+ Public Property PorcentajeIVA As Decimal
+ Public Property CveSubProyecto As Integer
+ Public Property UsuarioActual As Usuario
+ Public Property IdCtaContableCliente As Integer
+ Public Property IdCtaContableClienteComplementaria As Integer
+ Public Property IdCtaContableClienteAnticipo As Integer
+ Public Property IdCtaContableClienteAnticipoExtranjera As Integer
+ Public Property IdCtaContableClienteAnticipoComplementaria As Integer
+
+ End Class
+
+#End Region
+
+
End Class
diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb
index 4c511f2c9..60e52e7ed 100644
--- a/Bancos/IE.aspx.vb
+++ b/Bancos/IE.aspx.vb
@@ -3359,11 +3359,11 @@ Partial Class Bancos_IE
IdCtaIVADevolucionIMPUESTOS = IdCtaIVAXAcreditarDevDinC
- If ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, -IVADev, ReferenciaAplicar, 14, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev) Then
+ If ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, -IVADev, ReferenciaAplicar, 14, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev, PorcentajeImpuesto:=PorcentajeCompraDevDinC) Then
IdCtaIVADevolucionIMPUESTOS = IdCtaIVAAcreditableDevDinC
- If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, -IVADev, ReferenciaAplicar, 19, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev) Then
+ If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, -IVADev, ReferenciaAplicar, 19, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev, PorcentajeImpuesto:=PorcentajeCompraDevDinC) Then
MsgError = "Ocurrió un error al registrar el asiento de impuestos de devolución"
ErrorDevolucionImpuestos = True
End If
@@ -3547,23 +3547,19 @@ Partial Class Bancos_IE
PorcentajeCompraDevDinC = ObjCompras.DtResultados.Rows(0)("PorcentajeIVA").ToString.ToDecimal
Dim DTCuentas As DataTable = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeCompraDevDinC)
- Dim CveCuentaIVAxAcreditarDevDinC = 0
- Dim CveCuentaIVAAcreditableDevDinC = 0
Dim IdCtaIVAXAcreditarDevDinC As Integer
Dim IdCtaIVAAcreditableDevDinC As Integer
- If DTCuentas IsNot Nothing AndAlso DTCuentas.Rows.Count > 0 Then
- IdCtaIVAXAcreditarDevDinC = DTCuentas.Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero
- IdCtaIVAAcreditableDevDinC = DTCuentas.Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero
- Else
- MsgError = "Sin Registros de porcentaje impuesto"
- End If
+ 'If DTCuentas IsNot Nothing AndAlso DTCuentas.Rows.Count > 0 Then
+ ' IdCtaIVAXAcreditarDevDinC = DTCuentas.Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero
+ ' IdCtaIVAAcreditableDevDinC = DTCuentas.Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero
+ 'Else
+ ' MsgError = "Sin Registros de porcentaje impuesto"
+ 'End If
Dim IVADevMN As Decimal = 0
Dim IEPSDevMN As Decimal = 0
-
-
Dim PorcentajeDevolucion As Decimal = ((TxtImporte.Text.ToDecimal * 100D / TotalCompraDev) / 100).RoundSQL(2)
IVADev = Math.Round(IVADev * PorcentajeDevolucion, 2)
@@ -3587,11 +3583,11 @@ Partial Class Bancos_IE
IdCtaIVADevolucionIMPUESTOS = IdCtaIVAXAcreditarDevDinC
- If ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, -IVADev, ReferenciaAplicar, 14, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev) Then
+ If ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, -IVADev, ReferenciaAplicar, 14, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev, PorcentajeImpuesto:=PorcentajeCompraDevDinC) Then
IdCtaIVADevolucionIMPUESTOS = IdCtaIVAAcreditableDevDinC
- If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, -IVADev, ReferenciaAplicar, 19, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev) Then
+ If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, -IVADev, ReferenciaAplicar, 19, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev, PorcentajeImpuesto:=PorcentajeCompraDevDinC) Then
MsgError = "Ocurrió un error al registrar el asiento de impuestos de devolución"
ErrorDevolucionImpuestos = True
End If
diff --git a/Bin/GoCfdi.dll b/Bin/GoCfdi.dll
index 0148216cc..ee10c6e4d 100644
Binary files a/Bin/GoCfdi.dll and b/Bin/GoCfdi.dll differ
diff --git a/Compras/ReembolsosComprobaciones.aspx b/Compras/ReembolsosComprobaciones.aspx
index 772a28732..6b1e0781a 100644
--- a/Compras/ReembolsosComprobaciones.aspx
+++ b/Compras/ReembolsosComprobaciones.aspx
@@ -294,7 +294,7 @@
+ DataKeyNames="CveCompra,FechaCompra,CveProveedor,CveMoneda,Proveedor,SerieFolio,SubTotal,IVA,RetIVA,RetISR,IEPS,Total,TipoCambio,IdCtaContProveedores,IdCtaContAcreedor,CvePrePoliza,IdPoliza,CveRetIVAConcepto,CveRetISRConcepto,IVAPorcentaje,IVADeducible,IVANoDeducible,CveTipoConcepto,CveSubProyecto,IVAPorPagar">
diff --git a/Compras/ReembolsosComprobaciones.aspx.vb b/Compras/ReembolsosComprobaciones.aspx.vb
index 43a31ced1..64faacc41 100644
--- a/Compras/ReembolsosComprobaciones.aspx.vb
+++ b/Compras/ReembolsosComprobaciones.aspx.vb
@@ -739,18 +739,18 @@ Partial Class Compras_ReembolsosComprobaciones
Pago.OtroGastoIngreso = gvr.FCTextBox("TxtComision").Text.ToDecimal
End If
- If MsgError = "" AndAlso Not ChkReembolsarSinBancos.Checked AndAlso (Not HdnCheque.Value.ToEntero > 0 Or Not UsuarioActual.CveEmpresa.Contiene(119, 158)) Then
-
- 'Si es caja chica metemos el concepto 30, si es funcionario metemos 29
- ImporteMovto += Pago.OtroGastoIngreso ' si ajuste, sedebe de aplicar en su contraparte
- If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, True, ImporteMovto, Referencia, If(CveCajaChica > 0, 30, 29), ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(CveCajaChica > 0, IdCuentaBancaria, IdCtaPersonal), -1, CveIE:=CveIEPago, CveIEDevolucion:=If(CveCajaChica > 0, If(DDlCheques.SelectedValue.ToEntero = -1, CveIECajaChica, DDlCheques.SelectedValue.ToEntero), -1), CvePersonal:=CvePersonal, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, ImporteMovto), ImporteMX:=ImporteMovto * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, Contabilizable:=If(CveCajaChica > 0 Or CvePersonal > 0, Not UsaSimplificacionCajaChica, True)) Then
- MsgError = "Detalle"
+ If MsgError = "" Then
+ If Not ChkReembolsarSinBancos.Checked AndAlso (Not HdnCheque.Value.ToEntero > 0 Or Not UsuarioActual.CveEmpresa.Contiene(119, 158)) Then
+ 'Si es caja chica metemos el concepto 30, si es funcionario metemos 29
+ ImporteMovto += Pago.OtroGastoIngreso ' si ajuste, sedebe de aplicar en su contraparte
+ If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, True, ImporteMovto, Referencia, If(CveCajaChica > 0, 30, 29), ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(CveCajaChica > 0, IdCuentaBancaria, IdCtaPersonal), -1, CveIE:=CveIEPago, CveIEDevolucion:=If(CveCajaChica > 0, If(DDlCheques.SelectedValue.ToEntero = -1, CveIECajaChica, DDlCheques.SelectedValue.ToEntero), -1), CvePersonal:=CvePersonal, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, ImporteMovto), ImporteMX:=ImporteMovto * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, Contabilizable:=If(CveCajaChica > 0 Or CvePersonal > 0, Not UsaSimplificacionCajaChica, True)) Then
+ MsgError = "Detalle"
+ End If
+ Else
+ If AplicaPrePolizaPago(CompraActual, Pago, CvePrePolizaPago, ObjMov) Then
+ MsgError = "Detalle"
+ End If
End If
-
- If AplicaPrePolizaPago(CompraActual, Pago, CvePrePolizaPago, ObjMov) Then
- MsgError = "Detalle"
- End If
-
End If
Dim SaldoExcedente As Decimal = gvr.FCTextBox("TxtSaldoExcedente").Text.ToDecimal
diff --git a/Compras/eFacturas.aspx b/Compras/eFacturas.aspx
index ec13217d4..670f7fa0d 100644
--- a/Compras/eFacturas.aspx
+++ b/Compras/eFacturas.aspx
@@ -30,6 +30,9 @@
.table table-striped table-hover dataTable no-footer {
margin-top: 0px !important;
}
+ .ajax__tab_xp .ajax__tab_body {
+ font-size: 12px !important;
+ }
diff --git a/Compras/eFacturas.aspx.vb b/Compras/eFacturas.aspx.vb
index 6fc2bdb8f..295d0a10a 100644
--- a/Compras/eFacturas.aspx.vb
+++ b/Compras/eFacturas.aspx.vb
@@ -778,6 +778,7 @@ Partial Class Compras_eFacturas
CargaGvBitacora()
CargaDatos()
+ MostrarSolcitudesSAT()
End If
removeasincevent()
End Sub
@@ -2976,6 +2977,18 @@ Partial Class Compras_eFacturas
End If
End Sub
+ Private Sub MostrarSolcitudesSAT()
+ LnkShowSolicitudes.Visible = False
+
+ If UsuarioActual.Empresa.ArchivoPfx.Trim.Length > 0 Then
+ Dim ArchivoCertificado As String = $"{UsuarioActual.Empresa.Ruta}Certificados\{UsuarioActual.Empresa.ArchivoPfx}"
+ If File.Exists(ArchivoCertificado) Then
+ LnkShowSolicitudes.Visible = True
+ End If
+ End If
+
+ End Sub
+
#End Region
diff --git a/Contabilidad/PopUpAuxiliar.aspx b/Contabilidad/PopUpAuxiliar.aspx
index 50fe4092b..0a5826bef 100644
--- a/Contabilidad/PopUpAuxiliar.aspx
+++ b/Contabilidad/PopUpAuxiliar.aspx
@@ -148,6 +148,7 @@
+
diff --git a/Contabilidad/PopUpAuxiliar.aspx.vb b/Contabilidad/PopUpAuxiliar.aspx.vb
index 6f0951149..b324091bd 100644
--- a/Contabilidad/PopUpAuxiliar.aspx.vb
+++ b/Contabilidad/PopUpAuxiliar.aspx.vb
@@ -164,9 +164,6 @@ Partial Class PopUpAuxiliar
Protected Sub GVAuxiliar_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVAuxiliar.RowDataBound
-
-
-
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.RowIndex = 0 Then
e.Row.BackColor = Drawing.Color.LightGray
@@ -213,6 +210,17 @@ Partial Class PopUpAuxiliar
e.Row.FCLiteral("LtlConcepto").Text = String.Format("{0}{1}", Liga, e.Row.DBCampo("ConceptoContable"))
End If
+ If e.Row.DBCampo("CveConceptoContable").Contiene("91", "251") Then 'desaplicar NC
+
+ e.Row.FCLinkButton("LnkDesAplicar").Visible = True
+ e.Row.FCLinkButton("imgD").Visible = False
+ If e.Row.DBCampo("CveConceptoContable").Contiene("251") Then
+ e.Row.FCLinkButton("LnkDesAplicar").CommandArgument = String.Format("{0}|{1}|{2}", e.Row.DBCampo("CvePrePoliza"), e.Row.DBCampo("CveVenta"), e.Row.DBCampo("CveVentaAmortizacion"))
+ Else
+ e.Row.FCLinkButton("LnkDesAplicar").CommandArgument = String.Format("{0}|{1}|{2}", e.Row.DBCampo("CvePrePoliza"), e.Row.DBCampo("CveVentaAmortizacion"), e.Row.DBCampo("CveVenta"))
+ End If
+ End If
+
If e.Row.DBCampo("TipoReferencia").ToEntero = 1 Then
e.Row.FCHyperLink("HplReferencia").NavigateUrl = $"/Bancos/IE.aspx?CveIE={e.Row.DBCampo("CveReferencia").ToEntero}"
'If e.Row.DBCampo("CveReferencia").ToEntero > 0 Then
@@ -418,7 +426,6 @@ Partial Class PopUpAuxiliar
Alert(Str.ToString)
Else
ObjContabilidad.RollBack()
-
End If
ObjContabilidad.Dispose()
@@ -439,6 +446,43 @@ Partial Class PopUpAuxiliar
RegistraScript(" $('#DivCancelar').modal('show'); ")
End Sub
+ Private Sub GVAuxiliar_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GVAuxiliar.RowCommand
+ If e.CommandName = "DesAplicar" Then
+
+ Dim CvePrePoliza, CveVenta, CveVentaAmortizacion As Integer
+ Dim TieneError = False
+
+ Dim St As String() = e.CommandArgument.ToString.Split("|"c)
+ If St.Length > 0 Then
+ CvePrePoliza = St(0).ToEntero
+ CveVenta = St(1).ToEntero
+ CveVentaAmortizacion = St(2).ToEntero
+ End If
+
+ If CvePrePoliza > 0 Then
+ Dim Conta As New ClsContabilidad()
+ Conta.IniciaTransacSQL()
+
+ If Not Conta.UpdatePrePolizasDetalleBloquear(CvePrePoliza, False) Then
+ TieneError = True
+ End If
+
+ If Not TieneError AndAlso Not Conta.DesAplicarPago(CvePrePoliza, 251, CveVenta, CveVentaAmortizacion) Then
+ TieneError = True
+ End If
+
+ If Not TieneError Then
+ Conta.Commit()
+ Alert("Pago Desaplicado.", TipoMensaje.ToastInformacion)
+ Else
+ Conta.RollBack()
+ Alert("Pago no fue desaplicado.", TipoMensaje.ToastError)
+ End If
+ End If
+
+ End If
+
+ End Sub
End Class
diff --git a/CxC/RepCxCDetalle.aspx.vb b/CxC/RepCxCDetalle.aspx.vb
index e6a841ce5..3e189178f 100644
--- a/CxC/RepCxCDetalle.aspx.vb
+++ b/CxC/RepCxCDetalle.aspx.vb
@@ -426,8 +426,13 @@ Partial Class RepCxCDetalle
If UsuarioActual.CveEmpresa.Contiene(72, 80, 146, 119) Then ChkAnticipos.Visible = True
End Sub
- Private Function CargaDatos() As DataTable
- Dim dt As DataTable = Nothing
+ Private Function CargaDatos() As DataSet
+
+ Dim DSRespuesta As New DataSet
+
+ Dim DTaDAtos As New DataTable
+ Dim DTCartera As New DataTable
+
Dim ObjMovtos As New ClsMovimientos()
Dim FechaI, FechaF, FechaVI, FechaVF As String
@@ -452,10 +457,20 @@ Partial Class RepCxCDetalle
CveClienteClasificacion:=DdlClienteClasificacion.SelectedValue.ToEntero, LimiteCredito:=LimiteCredito, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero,
CveMoneda:=CveMoneda, EstatusCliente:=DdlEstatusCliente.SelectedValue.ToEntero, AplicaAnticiposPagados:=If(ChkAnticipos.Checked, 1, 0)) Then
- GvDatos.DataSource = ObjMovtos.DSResultados.Tables(0)
- dt = ObjMovtos.DSResultados.Tables(0)
+ GvDatos.DataSource = ObjMovtos.DSResultados.Tables(0)
+
+ 'DTaDAtos = ObjMovtos.DSResultados.Tables(0)
+ 'DTaDAtos.TableName = "DTaDAtos"
+ DSRespuesta.Tables.Add(ObjMovtos.DSResultados.Tables(0).Copy)
+
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
+
GvCartera.DataSource = ObjMovtos.DSResultados.Tables(1)
+
+ 'DTCartera = ObjMovtos.DSResultados.Tables(1)
+ 'DTCartera.TableName = "DTCartera"
+ DSRespuesta.Tables.Add(ObjMovtos.DSResultados.Tables(1).Copy)
+
End If
@@ -475,7 +490,7 @@ Partial Class RepCxCDetalle
UPDatos.Update()
UpCartera.Update()
- Return dt
+ Return DSRespuesta
End Function
@@ -949,11 +964,36 @@ Partial Class RepCxCDetalle
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
+
+
+ Dim lrds As New List(Of ReportDataSource)
+
+ Dim DSDatos As DataSet = CargaDatos()
+
+ Dim rds As New ReportDataSource With {.Name = "DataSet1", .Value = DSDatos.Tables(0)}
+ lrds.Add(rds)
+
+
+ If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
+ Dim rdsCartera As New ReportDataSource With {.Name = "DSCartera", .Value = DSDatos.Tables(1)}
+ lrds.Add(rdsCartera)
+ Else
+ Dim DTCartera As New DataTable
+ DTCartera.Columns.Add("Rango")
+ DTCartera.Columns.Add("Saldo", GetType(Decimal))
+ DTCartera.Columns.Add("Porcentaje", GetType(Decimal))
+ DTCartera.Columns.Add("Objetivo", GetType(Decimal))
+ Dim rdsCartera As New ReportDataSource With {.Name = "DSCartera", .Value = DTCartera}
+ lrds.Add(rdsCartera)
+ End If
+
+
+
Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/RepCxCDetalle.rdlc", UsuarioActual.Empresa.Ruta))
If Archivo.Exists Then
- ImprimirPDF(String.Format("{0}Formatos/RepCxCDetalle.rdlc", UsuarioActual.Empresa.Ruta), CargaDatos, params, "ReporteCxCDetalle", TipoImpresion)
+ ImprimirPDF(String.Format("{0}Formatos/RepCxCDetalle.rdlc", UsuarioActual.Empresa.Ruta), lrds, params, "ReporteCxCDetalle", TipoImpresion)
Else
- ImprimirPDF("Empresas/Grales/Formatos/RepCxCDetalle.rdlc", CargaDatos, params, "ReporteCxCDetalle", TipoImpresion)
+ ImprimirPDF("Empresas/Grales/Formatos/RepCxCDetalle.rdlc", lrds, params, "ReporteCxCDetalle", TipoImpresion)
End If
diff --git a/Empresas/Grales/Formatos/RepCxCDetalle.rdlc b/Empresas/Grales/Formatos/RepCxCDetalle.rdlc
index 4aeb0b169..4f7fbd6a6 100644
--- a/Empresas/Grales/Formatos/RepCxCDetalle.rdlc
+++ b/Empresas/Grales/Formatos/RepCxCDetalle.rdlc
@@ -1202,8 +1202,435 @@
+
+
+
+
+ 2.5cm
+
+
+ 2.5cm
+
+
+ 2.5cm
+
+
+ 2.5cm
+
+
+
+
+ 0.49417cm
+
+
+
+
+ true
+ true
+
+
+
+
+ Rango Días
+
+
+
+
+
+
+ Textbox15
+
+
+
+ Black
+
+ 1pt
+
+
+ Black
+
+ 1pt
+
+
+ Black
+
+ 1pt
+
+
+ Black
+
+ 1pt
+
+ Silver
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Importe
+
+
+
+
+
+
+ Textbox19
+
+
+
+ Black
+
+ 1pt
+
+
+ Black
+
+ 1pt
+
+
+ Black
+
+ 1pt
+
+
+ Black
+
+ 1pt
+
+ Silver
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ %
+
+
+
+
+
+
+ Textbox23
+
+
+
+ Black
+
+ 1pt
+
+
+ Black
+
+ 1pt
+
+
+ Black
+
+ 1pt
+
+
+ Black
+
+ 1pt
+
+ Silver
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+ true
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Objetivo
+
+
+
+
+
+
+ Textbox26
+
+
+
+ Black
+
+ 1pt
+
+
+ Black
+
+ 1pt
+
+
+ Black
+
+ 1pt
+
+
+ Black
+
+ 1pt
+
+ Silver
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ 0.2825cm
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Rango.Value
+
+
+
+
+
+
+ Rango
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Saldo.Value
+
+
+
+
+
+
+ Saldo1
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Porcentaje.Value
+
+
+
+
+
+
+ Porcentaje
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Objetivo.Value
+
+
+
+
+
+
+ Objetivo
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ After
+
+
+
+
+
+
+ DSCartera
+ 1.6429cm
+ 0.77667cm
+ 10cm
+ 1
+
+ =IIF(CountRows()>0,false,true)
+
+
+
+
+
- 0.78933in
+ 0.99425in