diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 215aada2b..0f744635e 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -6,6 +6,7 @@ Imports System.IO Imports System.Net.Http Imports System.Xml Imports CrystalDecisions.CrystalReports.Engine +Imports CrystalDecisions.ReportSource Imports CrystalDecisions.Shared Imports Extensiones Imports iText.Kernel.Pdf @@ -7667,7 +7668,6 @@ Public Class ClsPaginas #Region "P A G O D E C O M P R A S " Public Function AplicaPrePolizaPagoCompra(CompraActual As Compra, Pago As CompraPago, CvePrePoliza As Integer, ByRef ObjConta As ClsContabilidad) As Boolean Dim ErrorMovtos As Boolean = False - Dim PorcentajePago As Decimal = Pago.ImportePago / CompraActual.Total Dim ImporteMovimiento As Decimal = 0 Dim ImporteMN As Decimal = 0 Dim ImporteME As Decimal = 0 @@ -7677,6 +7677,14 @@ Public Class ClsPaginas Dim tFechaUltimaFluctuacion As Date Dim tImportePago As Decimal Dim tImporteCompra As Decimal = Pago.ImportePago + Dim PorcentajePago As Decimal = Pago.ImportePago / CompraActual.Total + 'VALIDACIONES A CONSIDERAR + If CompraActual.CveMoneda = Pago.CveMonedaPago Then + Pago.TCCambioMoneda = 1 ' si la moneda es igual, el importe debe ser 1 + ElseIf CompraActual.CveMoneda <> Pago.CveMonedaPago AndAlso Pago.TCCambioMoneda = 1 Then + ErrorMovtos = True + Return ErrorMovtos + End If Dim ConPreP As ConceptosTipoSaldo = ObtenerCveConceptoPrePoliza(1, CompraActual.CveMoneda, True, CompraActual.CveTipoConceptoProveedor) 'cuando el Pago viene por NC, se utiliza un concepto @@ -7701,25 +7709,32 @@ Public Class ClsPaginas If CompraActual.CveMoneda = 1 And Pago.CveMonedaPago <> 1 Then 'factura pesos, pago en dolares tImportePago = ((Pago.ImportePago * TCValuacionCompra / Pago.TCPago).RoundSQL * Pago.TCPago).RoundSQL tImporteCompra = (Pago.ImportePago * TCValuacionCompra).RoundSQL + PorcentajePago = Pago.ImportePago * Pago.TCCambioMoneda / CompraActual.Total + ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos + tImporteCompra = (Pago.ImportePagoCompra * TCValuacionCompra).RoundSQL + tImportePago = (Pago.ImportePago).RoundSQL + PorcentajePago = Pago.ImportePago * Pago.TCCambioMoneda / CompraActual.Total ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago <> 1 Then 'factura dolares, pago en dolares tImporteCompra = (Pago.ImportePago * TCValuacionCompra).RoundSQL tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL - ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos - tImporteCompra = (Pago.ImportePago * TCValuacionCompra).RoundSQL - tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL + PorcentajePago = Pago.ImportePago / CompraActual.Total + ElseIf CompraActual.CveMoneda = 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos + tImporteCompra = Pago.ImportePago + tImportePago = Pago.ImportePago + PorcentajePago = Pago.ImportePago / CompraActual.Total End If - Dim ImportePagoMN As Decimal = Pago.ImportePago + Dim ImportePagoMN As Decimal = Pago.ImportePagoCompra Dim UsaComplementaria As Boolean = True - If CompraActual.CveMoneda > 1 Then ImporteME = Pago.ImportePago + If CompraActual.CveMoneda > 1 Then ImporteME = Pago.ImportePagoCompra If UsuarioActual.CveEmpresa.Contiene(13, 83) Then 'caso excepcional de complementarias UsaComplementaria = False - ImportePagoMN = (Pago.ImportePago * TCValuacionCompra).RoundSQL + ImportePagoMN = (Pago.ImportePagoCompra * TCValuacionCompra).RoundSQL End If 'movimiento de pago proveedor - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImportePagoMN, ConPreP.CveConcepto, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=TCValuacionCompra, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto, CveVenta:=Pago.CveVentaRelacionada) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePagoCompra, ImportePagoMN, ConPreP.CveConcepto, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=TCValuacionCompra, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto, CveVenta:=Pago.CveVentaRelacionada) Then ErrorMovtos = True 'movimiento de pago proveedor Complementaria If Not ErrorMovtos AndAlso CompraActual.CveMoneda > 1 AndAlso UsaComplementaria Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, (ImporteME * TCValuacionCompra - ImporteME).RoundSQL, ConPreP.CveConceptoComplementario, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProvComplementaria, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=TCValuacionCompra, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto, CveVenta:=Pago.CveVentaRelacionada) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePagoCompra, (ImporteME * TCValuacionCompra - ImporteME).RoundSQL, ConPreP.CveConceptoComplementario, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProvComplementaria, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=TCValuacionCompra, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto, CveVenta:=Pago.CveVentaRelacionada) Then ErrorMovtos = True End If If Pago.AplicaAcreditable Then 'si tiene iva y su proporcion @@ -7886,6 +7901,12 @@ Public Class ClsPaginas Public Property CveIE As Integer = -1 Public Property CvePersonal As Integer = -1 Public Property ImportePago As Decimal = 0 + Public ReadOnly Property ImportePagoCompra As Decimal + Get + Return (ImportePago * TCCambioMoneda).RoundSQL + End Get + End Property + Public Property TCCambioMoneda As Decimal = 1 Public Property CveMonedaPago As Integer = 1 Public Property TCPago As Decimal = 1 Public Property CveCompraAmortizacion As Integer = 0 @@ -8037,43 +8058,53 @@ Public Class ClsPaginas End Get End Property End Class - ' 1. Proveedores, 11. anticipos proveedores, 15. Notas de crédito de proveedores - Public Shared ReadOnly Property ObtenerCveConceptoPrePoliza(CveTipoSaldo As Integer, CveMoneda As Integer, EsAplicacionPago As Boolean, CveTipoProveedor As Integer) As ConceptosTipoSaldo + ' 1. Proveedores, 11. anticipos proveedores, 15. Notas de crédito de proveedores, 6. Clientes + 'CveTipoProveedorTipoDocto: cuando es TipoSaldo=2: 1. Proveedor, 2. Acreedor, TipoSaldo=6: 1.Factura, 2.NC + Public Shared ReadOnly Property ObtenerCveConceptoPrePoliza(CveTipoSaldo As Integer, CveMoneda As Integer, EsAplicacionPago As Boolean, CveTipoProveedorTipoDocto As Integer) As ConceptosTipoSaldo Get + Dim Retorno As New ConceptosTipoSaldo If EsAplicacionPago Then Select Case CveTipoSaldo Case 1 ' proveedores/acreedores Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 17, 308) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 17, 308) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 312, 309) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 206, 310) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 312, 309) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 206, 310) End Select Case 11 ' anticipos Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 21, 56) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 21, 56) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 339, 346) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 340, 347) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 339, 346) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 340, 347) End Select Case 15 ' notas de crédito Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 60, 324) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 60, 324) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 342, 344) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 235, 235) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 342, 344) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 235, 235) End Select Case 17 ' deudores Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 37, 37) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 37, 37) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 37, 37) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 256, 256) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 37, 37) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 256, 256) + End Select + Case 6 ' clientes + Select Case CveMoneda + Case 1 'pesos + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 2, 91) '1.Venta.2.NC + Case 2 'dólares + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 292, 294) '1.Venta.2.NC + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 207, 203) '1.Venta.2.NC End Select End Select Else 'cuando es la provisión @@ -8081,35 +8112,44 @@ Public Class ClsPaginas Case 1 ' proveedores/acreedores Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 5, 305) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 5, 305) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 311, 306) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 201, 307) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 311, 306) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 201, 307) End Select Case 11 ' anticipos Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 10, 48) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 10, 48) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 338, 345) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 340, 347) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 338, 345) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 340, 347) End Select Case 15 ' notas de crédito Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 18, 323) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 18, 323) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 341, 343) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 234, 234) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 341, 343) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 234, 234) End Select Case 17 ' deudores Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 43, 43) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 43, 43) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 43, 43) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 256, 256) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 43, 43) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 256, 256) End Select + Case 6 ' clientes + Select Case CveMoneda + Case 1 'pesos + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 1, 12) '1.Venta.2.NC + Case 2 'dólares + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 291, 293) '1.Venta.2.NC + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 203, 203) '1.Venta.2.NC + End Select + End Select End If @@ -8401,6 +8441,7 @@ Public Class ClsPaginas PaginaDict.Add("/Nomina/ISRCalculoAnual.aspx".ToUpper(), 918) PaginaDict.Add("/Nomina/MovimientosSUA.aspx".ToUpper(), 919) PaginaDict.Add("/Nomina/Acumulados.aspx".ToUpper(), 916) + PaginaDict.Add("/RH/CalculoSBC.aspx".ToUpper(), 915) PaginaDict.Add("/Inicio.aspx".ToUpper(), -1) PaginaDict.Add("/reporteador.aspx".ToUpper(), -1)