-- pago de compra, con diferentes monedas
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user