diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index 1bff453cf..0e0b12935 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -447,18 +447,7 @@ Namespace Modelos
Private Sub IniciaValoresVentas()
If CveVenta > 0 AndAlso CveEmpresa > 0 Then
Me.DtAnticipos = New DataTable()
- Dim ObjVentas As New ClsVentas
- 'CARGA PROMOCIONES
- If ObjVentas.GetPromocionesPS(-1, Me.Fecha, Me.CveSubProyecto, CveCliente, Me.CveVendedor, Me.CveEmpresa) Then
- Me.DtPromociones = ObjVentas.DtResultados.Copy()
- End If
- 'CARGA FIRMAS
- If ObjVentas.GetVentasFirmas(CveVenta) Then
- If ObjVentas.DtResultados.Rows.Count > 0 Then
- DtFirmas = ObjVentas.DtResultados.Copy()
- End If
- End If
- ObjVentas.Dispose()
+ Me.DtAntNCVinculadas = New DataTable()
Me.DtPagos = New DataTable()
Me.DtRemisiones = New DataTable()
Me.DtInventario = New DataTable()
@@ -473,7 +462,48 @@ Namespace Modelos
Me.DtImpuestosLocales = New DataTable()
Me.DtOtrosConceptos = New DataTable()
Me.CveContratoSecciones = ""
- 'Me.DtInventario = DtDetalle.FiltraParametros("CveTipoPS = 2")
+
+ Dim ObjVentas As New ClsVentas
+ 'CARGA PROMOCIONES
+ If ObjVentas.GetPromocionesPS(-1, Me.Fecha, Me.CveSubProyecto, CveCliente, Me.CveVendedor, Me.CveEmpresa) Then
+ Me.DtPromociones = ObjVentas.DtResultados.Copy()
+ End If
+
+ 'CARGA FIRMAS
+ If ObjVentas.GetVentasFirmas(CveVenta) Then
+ If ObjVentas.DtResultados.Rows.Count > 0 Then
+ Me.DtFirmas = ObjVentas.DtResultados.Copy()
+ End If
+ End If
+
+ 'CARGA ANTICIPOS
+ If Not (CveRemision > 0 Or CveCotizacion > 0) Then
+ If TipoDocto.Contiene("Ing", "Ant", "Rem") Then
+ 'carga as notas de credito vinculadas
+ If ObjVentas.GetVentasAntNC(CveVenta, -1) Then
+ Me.DtAntNCVinculadas = ObjVentas.DtResultados.Copy()
+ End If
+ End If
+
+ If TipoDocto.Contiene("Egs", "Dev", "Ant") Then
+ If ObjVentas.GetVentasAntNC(-1, CveVenta) Then
+ Me.DtNCVinculadas = ObjVentas.DtResultados.Copy()
+ End If
+ End If
+
+ End If
+
+ If ObjVentas.GetVentaOtrosConceptos(UsuarioActual.CveEmpresa, CveVenta) Then
+ Me.DtOtrosConceptos = ObjVentas.DtResultados.Copy()
+ End If
+
+ ObjVentas.Dispose()
+
+ 'Dim ObjMovtos As New ClsMovimientos()
+ 'If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda) Then
+ ' Me.DtAnticipos = ObjMovtos.DtResultados.FiltraParametros($"Saldo > 0 AND SaldoSubtotal > 0 {If(CveVenta < 0, "AND Tipo = 'Ant'", "")} {If(TipoDocto = "Ant", "AND Tipo = 'NC'", "")}")
+ 'End If
+ 'ObjMovtos.Dispose()
If Me.RealizarDevolucionAlmacen Then
Me.CveAlmacenDevolucion = Me.CveAlmacenDevolucionVenta
@@ -1873,34 +1903,36 @@ Namespace Modelos
Select Case ConceptoContable
- Case 1 'Cliente
- If Not ObjFactura.TipoDocto.Contiene("Egs", "Rem", "RNC") Then
- importeMovimiento = ((ObjFactura.Total - ObjFactura.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.IdCtaContComplementaria
- CveCuenta = ObjFactura.Cliente.CveCuentaComplementaria
- If importeMovimiento <> 0 AndAlso (IdCtaContable > 0 Or CveCuenta > 0 Or UsuarioActual.CveEmpresa = 119) Then
- importeMX = importeMovimiento
- If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, 0, Referencia, 203, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta,
- CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento),
- TipoCambio:=tipoCambio, CveCuenta:=CveCuenta, CveSubProyecto:=CveSubProyectoContabilizar) Then
- ErrorPrepoliza = True
- End If
- End If
-
- IdCtaContable = ObjFactura.Cliente.IdCtaContMonedaExtranjera
- CveCuenta = ObjFactura.Cliente.CveCuentaMonedaExtranjera
- End If
- IdCtaContableCliente = IdCtaContable
- CveCuentaCliente = CveCuenta
+ Case 1 'Cliente
+ If Not ObjFactura.TipoDocto.Contiene("Egs", "Rem", "RNC") Then
+ importeMovimiento = (ObjFactura.Total - TotalOtrosConceptos) * ValorMultiplicador
+ importeMX = importeMovimiento * tipoCambio * Multiplicador
+ FechaMovimiento = ObjFactura.FechaPago
+ CveSubProyectoContabilizar = CveSubProyectoVenta
+ 'If ObjFactura.TipoDocto.Contiene("Ant") Then
+ ' TipoMovimiento = Not TipoMovimiento 'lo contrario a ingreso, en este caso es anticipo
+ 'End If
+ 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.IdCtaContComplementaria
+ CveCuenta = 0
+
+ If importeMovimiento <> 0 AndAlso (IdCtaContable > 0 Or CveCuenta > 0 Or UsaComplementariaClientes) Then
+ importeMX = importeMovimiento
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, 0, Referencia, 203, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=Math.Round(importeMovimiento * tipoCambio - importeMovimiento, 2, MidpointRounding.AwayFromZero), ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveCuenta:=CveCuenta, CveSubProyecto:=CveSubProyectoContabilizar, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ End If
+ End If
+
+ IdCtaContable = ObjFactura.Cliente.IdCtaContMonedaExtranjera
+ CveCuenta = ObjFactura.Cliente.CveCuentaMonedaExtranjera
+ End If
+ IdCtaContableCliente = IdCtaContable
+ CveCuentaCliente = CveCuenta
End If
Case 3 'Cliente
@@ -1948,79 +1980,80 @@ Namespace Modelos
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
-
+ 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
- importeMovimiento = (ObjFactura.Total * ValorMultiplicador)
- importeMX = (importeMovimiento * tipoCambio * Multiplicador).RoundSQL
- FechaMovimiento = ObjFactura.FechaPago
- Dim ImporteConcepto12 As Decimal = 0
- Dim ImporteAcumulado91 As Decimal = 0
- Dim CveUltimaVenta As Integer = 0
- 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 = 0
-
- If importeMovimiento <> 0 AndAlso (IdCtaContable > 0 Or CveCuenta > 0 Or UsaComplementariaClientes) Then
- importeMX = importeMovimiento
- If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, 0, Referencia, 203, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveCuenta:=CveCuenta, CveSubProyecto:=CveSubProyectoContabilizar) Then
- ErrorPrepoliza = True
- End If
- End If
-
- IdCtaContable = ObjFactura.Cliente.IdCtaContMonedaExtranjera
- CveCuenta = ObjFactura.Cliente.CveCuentaMonedaExtranjera
- End If
- CveSubProyectoContabilizar = CveSubProyectoVenta
- ImporteConcepto12 = importeMX.RoundSQL
- If importeMovimiento <> 0 Then
- If IdCtaContable <= 0 Then
- CuentasContablesInvalidas.Append("
" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString)
- idCuentaContabilizacion = 0
- End If
- If CveCuenta <= 0 Then
- CuentasContablesInvalidasSIG.Append("
" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString)
- CveCuentaContabilizacion = 0
- End If
- If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, CveSubProyecto:=CveSubProyectoContabilizar) Then
- ErrorPrepoliza = True
- Else
- ObjFactura.SeGuardoPrePoliza = True
- End If
- End If
+ If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then
+ importeMovimiento = ObjFactura.Total * ValorMultiplicador
+ importeMX = (importeMovimiento * tipoCambio * Multiplicador).RoundSQL
+ FechaMovimiento = ObjFactura.FechaPago
+ Dim ImporteConcepto12 As Decimal = 0
+ Dim ImporteAcumulado91 As Decimal = 0
+ Dim CveUltimaVenta As Integer = 0
+ If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
+ If tipoCambio = 1 Then
+ IdCtaContable = ObjFactura.Cliente.IdCtaContClientes
+ CveCuenta = ObjFactura.Cliente.CveCuentaClientes
+ ElseIf UsaComplementariaClientes Then
+
+ IdCtaContable = ObjFactura.Cliente.IdCtaContComplementaria
+ CveCuenta = 0
+
+ If importeMovimiento <> 0 AndAlso (IdCtaContable > 0 Or CveCuenta > 0 Or UsaComplementariaClientes) Then
+ importeMX = importeMovimiento
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, 0, Referencia, 203, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=Math.Round(importeMovimiento * tipoCambio - importeMovimiento, 2, MidpointRounding.AwayFromZero), ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveCuenta:=CveCuenta, CveSubProyecto:=CveSubProyectoContabilizar) Then
+ ErrorPrepoliza = True
+ End If
+ End If
+
+ IdCtaContable = ObjFactura.Cliente.IdCtaContMonedaExtranjera
+ CveCuenta = ObjFactura.Cliente.CveCuentaMonedaExtranjera
+ End If
+ CveSubProyectoContabilizar = CveSubProyectoVenta
+ ImporteConcepto12 = importeMX.RoundSQL
+ If importeMovimiento <> 0 Then
+ If IdCtaContable <= 0 Then
+ CuentasContablesInvalidas.Append("
" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString)
+ idCuentaContabilizacion = 0
+ End If
+ If CveCuenta <= 0 Then
+ CuentasContablesInvalidasSIG.Append("
" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString)
+ CveCuentaContabilizacion = 0
+ End If
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, CveSubProyecto:=CveSubProyectoContabilizar) Then
+ ErrorPrepoliza = True
+ Else
+ ObjFactura.SeGuardoPrePoliza = True
+ End If
+ End If
importeMovimiento = 0
If ValorMultiplicador = 1 Then
@@ -2155,30 +2188,74 @@ Namespace Modelos
End If
'APLICA DEVOLUCION SALDOS DIRECTOS
- If AplicaDevolucion Then
+ If ObjFactura.AplicaDevolucion Then
+ Dim TipoCambioFactura = ObjFactura.TipoCambio
Dim importeMovimientoDev = ObjFactura.Total
- importeMovimientoDev = If(ObjFactura.SaldoVentaDevolucion < importeMovimientoDev, ObjFactura.SaldoVentaDevolucion, importeMovimientoDev)
- If importeMovimientoDev > 0 Then
- Dim importeMXDev = importeMovimientoDev * tipoCambio * Multiplicador
- If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimientoDev.FormatoNumero(2)}"
-
- If ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimientoDev, Referencia, 251, Concepto,
- FechaMovimiento, IdCtaContable, -1, CveVenta:=CveVentaDevolucion,
- CveCliente:=ObjFactura.CveCliente, ImporteMX:=importeMXDev,
- ImporteME:=If(tipoCambio = 1, 0, importeMovimientoDev),
- CveSubProyecto:=CveSubProyectoContabilizar) Then
- If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, importeMovimientoDev, Referencia, 91, Concepto,
- FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta,
- CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=CveVentaDevolucion,
- ImporteMX:=importeMXDev, ImporteME:=If(tipoCambio = 1, 0, importeMovimientoDev),
- CveSubProyecto:=CveSubProyectoContabilizar) Then
- ErrorPrepoliza = True
- Exit For
- End If
- Else
- ErrorPrepoliza = True
- Exit For
- End If
+ importeMovimientoDev = If(ObjFactura.SaldoVentaDevolucion < importeMovimientoDev, ObjFactura.SaldoVentaDevolucion, importeMovimientoDev)
+ If importeMovimientoDev > 0 Then
+ Dim importeMXDev = importeMovimientoDev * tipoCambio * Multiplicador
+ If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimientoDev.FormatoNumero(2)}"
+
+ If UsaComplementariaClientes AndAlso tipoCambio > 1 Then
+ importeMXDev = importeMovimientoDev
+ Dim ImporteComplementaria As Decimal = ((importeMovimientoDev * tipoCambio) - importeMovimientoDev).RoundSQL
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, importeMovimientoDev, Referencia, 203, Concepto, FechaMovimiento, IdCtaContableClienteComplementaria, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=CveVentaDevolucion, ImporteMX:=ImporteComplementaria, ImporteME:=If(tipoCambio = 1, 0, importeMovimientoDev), CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio, TipoCambioPago:=TipoCambioFactura) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+ End If
+
+
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, importeMovimientoDev, Referencia, 91, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=CveVentaDevolucion, ImporteMX:=importeMXDev, ImporteME:=If(tipoCambio = 1, 0, importeMovimientoDev), CveSubProyecto:=CveSubProyectoContabilizar) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ If UsaComplementariaClientes AndAlso TipoCambioFactura > 1 Then
+ importeMXDev = importeMovimientoDev
+ Dim ImporteComplementaria As Decimal = ((importeMovimientoDev * TipoCambioFactura) - importeMovimientoDev).RoundSQL
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimientoDev, Referencia, 207, Concepto, FechaMovimiento, IdCtaContableClienteComplementaria, -1, CveVenta:=CveVentaDevolucion, CveCliente:=ObjFactura.CveCliente, ImporteMX:=ImporteComplementaria, ImporteME:=If(TipoCambioFactura = 1, 0, importeMovimientoDev), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=TipoCambioFactura) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+ End If
+
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimientoDev, Referencia, 251, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=CveVentaDevolucion, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=ObjFactura.CveVenta, ImporteMX:=importeMXDev, ImporteME:=If(tipoCambio = 1, 0, importeMovimientoDev), CveSubProyecto:=CveSubProyectoContabilizar) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ If tipoCambio <> TipoCambioFactura Then
+ Dim difFluctuacion As Decimal = tipoCambio - TipoCambioFactura
+ Dim CveConceptoFluctua As Integer = 64 '64.ganacia, 65.perdida
+ Dim TipoMovtoFluctua As Boolean = True
+ Dim IdCtaContableFluctua As Integer
+ If difFluctuacion < 0 Then
+ CveConceptoFluctua = 65
+ TipoMovtoFluctua = False
+ IdCtaContableFluctua = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria
+ CveCuenta = UsuarioActual.Empresa.CveCuentaPerdidaCambiaria
+ Else
+ CveConceptoFluctua = 64
+ TipoMovtoFluctua = True
+ IdCtaContableFluctua = UsuarioActual.Empresa.IdCuentaGananciaCambiaria
+ CveCuenta = UsuarioActual.Empresa.CveCuentaGananciaCambiaria
+ End If
+ Dim ImporteFluctuacion As Decimal = Math.Abs((importeMovimientoDev * difFluctuacion).RoundSQL)
+
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovtoFluctua, ImporteFluctuacion, Referencia, CveConceptoFluctua, Concepto, FechaMovimiento, IdCtaContableFluctua, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveVentaAmortizacion:=CveVentaDevolucion, ImporteMX:=ImporteFluctuacion, ImporteME:=ImporteFluctuacion, CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio, TipoCambioPago:=TipoCambioFactura, CveCuenta:=CveCuenta) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+ End If
+
+ If ObjConta.ValidacionPrePolizaCuadre(ObjFactura.CvePrePoliza, 5) Then
+ If ObjConta.ValorPolizaDescuadre > 0 Then
+ 'ErrorPrepoliza = True
+ GuardaLogAD($"Ventas/Ventas-ProcesoPrePolizas | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{ObjFactura.CvePrePoliza}", "LogPrePolizas")
+ End If
+ End If
+
End If
End If
End If
@@ -2188,9 +2265,9 @@ Namespace Modelos
Case 136 'Otros Conceptos Dinamicos
If ObjFactura.DtOtrosConceptos IsNot Nothing Then
For Each row2 As DataRow In ObjFactura.DtOtrosConceptos.Rows
- If row2("CantidadConcepto").ToString().ToDecimal > 0 Then
+ If row2("Importe").ToString().ToDecimal > 0 Then
- importeMovimiento = (row2("CantidadConcepto").ToString().ToDecimal * ValorMultiplicador)
+ importeMovimiento = (row2("Importe").ToString().ToDecimal * ValorMultiplicador)
CveSubProyectoContabilizar = CveSubProyectoVenta
If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
@@ -2221,6 +2298,29 @@ Namespace Modelos
'[IPP] SI ES REFACTURACION LOS ANTICIPOS NO LOS DEBE APLICAR EN EL INGRESO REFACTURADO (VIEJO)
If NuevaFactura = 1 And ObjFactura.CveVenta = CveDevolucion Then
Exit Select
+ End If
+
+ If ObjFactura.TipoDocto = "Ing" AndAlso ValorMultiplicador = -1 Then
+ For Each row2 As DataRow In ObjFactura.DtAntNCVinculadas.Rows
+ If row2("CveConceptoContable").ToString().ToEntero = 11 Then
+ importeMovimiento = row2("Importe").ToString().ToDecimal * ValorMultiplicador '- ((row2.FCTextBox("TxtAnticipo" & row2.RowIndex).Text.ToDecimal / row2.DataKey("TotalAnticipo").ToDecimal) * row2.DataKey("IVAAnticipo").ToDecimal)
+ If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
+
+ IdCtaContable = ObjFactura.Cliente.IdCtaContAnticipos
+ CveCuenta = ObjFactura.Cliente.CveCuentaAnticipos
+ CveSubProyectoContabilizar = CveSubProyectoVenta
+
+ If importeMovimiento <> 0 Then
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=row2("CveVenta").ToString().ToEntero, CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=importeMovimiento * tipoCambio, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, CveSubProyecto:=CveSubProyectoContabilizar, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ Exit For
+ Else
+ ObjFactura.SeGuardoPrePoliza = True
+ End If
+ End If
+
+ End If
+ Next
End If
'cuando es anticipo
@@ -2231,7 +2331,7 @@ Namespace Modelos
ObjFactura.CveTipoAmortizacionAnticipo = 1 AndAlso ObjFactura.TipoDocto.Contiene("Ing") OrElse
ObjFactura.CveTipoAmortizacionAnticipo = 3 Then
- For Each row2 As DataRow In DtAnticipos.Rows
+ For Each row2 As DataRow In ObjFactura.DtAnticipos.Rows
If row2("CveConceptoContable").ToString().ToEntero = 3 Then
CveIEAnticipo = row2("CveIE").ToString.ToEntero
importeMovimiento = row2("Importe").ToString().ToDecimal() '- ((row2.FCTextBox("TxtAnticipo" & row2.RowIndex).Text.ToDecimal / row2.DataKey("TotalAnticipo").ToDecimal) * row2.DataKey("IVAAnticipo").ToDecimal)
@@ -2336,7 +2436,7 @@ Namespace Modelos
End If
Else
- If DtAnticipos IsNot Nothing Then
+ If ObjFactura.DtAnticipos IsNot Nothing Then
For Each row2 As DataRow In ObjFactura.DtAnticipos.Rows
If row2("CveConceptoContable").ToString().ToEntero = 12 Then
@@ -2659,9 +2759,9 @@ Namespace Modelos
Case 30 'PAGO - BANCOS
- If DtPagos IsNot Nothing AndAlso DtPagos.Rows.Count > 0 Then
+ If ObjFactura.DtPagos IsNot Nothing AndAlso ObjFactura.DtPagos.Rows.Count > 0 Then
- For Each DrPago As DataRow In DtPagos.Rows
+ For Each DrPago As DataRow In ObjFactura.DtPagos.Rows
CveIEPago = -1
FolioIE = -1
@@ -2837,29 +2937,29 @@ Namespace Modelos
End If
End If
Next
+ End If
+
+
+ If ObjConta.ValidacionPrePolizaCuadre(ObjFactura.CvePrePoliza, 2) Then
+ If ObjConta.ValorPolizaDescuadre > 0 Then
+ If ObjConta.ValorPolizaDescuadre = 2 Then
+ ErrorPrepoliza = True
+ Alert(ObjConta.MensajePolizaDescuadre, TipoMensaje.MsgError)
+ GuardaLogAD($"Ventas/Ventas-ProcesoPrePolizas | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{ObjFactura.CvePrePoliza}", "LogPrePolizas")
+ End If
+
+ End If
+ End If
+
+ 'Simplificacion de PrePolizas
+ If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then
+ If Not ObjConta.PrePolizaSimplificacion(ObjFactura.CvePrePoliza, UsuarioActual.CveEmpresa) Then
+ Alert("No se pudo simplificar los movimientos", TipoMensaje.MsgError)
+ End If
End If
- If ObjConta.ValidacionPrePolizaCuadre(ObjFactura.CvePrePoliza, 2) Then
- If ObjConta.ValorPolizaDescuadre > 0 Then
- ErrorPrepoliza = True
- GuardaLogAD($"Ventas/Ventas-ProcesoPrePolizas | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{ObjFactura.CvePrePoliza}", "LogPrePolizas")
- End If
- End If
- 'ContPAQ El movimiento 1 es el de Venta
- If UsuarioActual.Empresa.Funcionalidad(200) = "1" AndAlso Not ErrorPrepoliza Then
- If idCuentaContabilizacion > 0 Then
- If ObjConta.ContabilizarPrePoliza(ObjFactura.CvePrePoliza, ObjFactura.CveUsuario, UsuarioActual.Empresa, ObjConta:=objContPaqi) Then
- Else
- '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
GuardaLog(ex.ToString())
ErrorPrepoliza = True
@@ -4750,6 +4850,7 @@ Namespace Modelos
Public Property DtFirmas As Data.DataTable
Public Property DtDesgloseImpuestos As Data.DataTable
Public Property DtDocumentosRelacionados As Data.DataTable
+ Public Property DtAntNCVinculadas As Data.DataTable
Public Property DtNCVinculadas As Data.DataTable
Public Property DtAnticipos As Data.DataTable