diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index 4a4b0c86c..83f46e6bd 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -2401,6 +2401,9 @@ Namespace Modelos
tipoCambio = 1
End If
+ ' Verificar si la fecha es del mes anterior a la fecha actual
+ Dim esMesAnterior As Boolean = False
+
If ObjFactura.TipoDocto = "Egs" AndAlso ValorMultiplicador = -1 AndAlso FechaCancelacion > MinFecha AndAlso tipoCambio > 1 AndAlso UsuarioActual.Empresa.Funcionalidad(703) = "1" Then
' Obtener el mes y año de la fecha actual
Dim mesActual As Integer = FechaCancelacion.Month
@@ -2409,23 +2412,11 @@ Namespace Modelos
' Obtener el mes y año de la fecha a comparar
Dim mesFecha As Integer = ObjFactura.Fecha.Month
Dim añoFecha As Integer = ObjFactura.Fecha.Year
-
- ' Verificar si la fecha es del mes anterior a la fecha actual
- Dim esMesAnterior As Boolean = False
If añoFecha < añoActual Then
esMesAnterior = True
ElseIf añoFecha = añoActual AndAlso mesFecha < mesActual Then
esMesAnterior = True
End If
-
- If esMesAnterior Then
- Dim UltimaFluctuacion As ClsPaginas.MTipoCambioFluctuacion = ClsPaginas.GlobalTipoCambioUltimaFluctuacion(FechaCancelacion)
- If UltimaFluctuacion IsNot Nothing Then
- If UltimaFluctuacion.FechaFluctuacion < FechaCancelacion Then
- tipoCambio = UltimaFluctuacion.TCFluctuacion
- End If
- End If
- End If
End If
Dim ConceptoContable As Integer
@@ -2719,8 +2710,27 @@ Namespace Modelos
If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then
Dim ConPreP As ClsPaginas.ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(6, ObjFactura.CveMoneda, False, 2)
+ Dim TipoCambioNC As Decimal = 1
+ If ObjFactura.CveMoneda = 2 Then
+ If tipoCambio > 1 Then
+ TipoCambioNC = tipoCambio
+ Else
+ TipoCambioNC = ClsPaginas.GlobalTipoCambio(ObjFactura.Fecha).ToDecimal
+ End If
+ End If
+
+
+ If ValorMultiplicador = -1 AndAlso UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso esMesAnterior AndAlso ObjFactura.CveMoneda = 2 Then
+ Dim UltimaFluctuacion As ClsPaginas.MTipoCambioFluctuacion = ClsPaginas.GlobalTipoCambioUltimaFluctuacion(FechaCancelacion)
+ If UltimaFluctuacion IsNot Nothing Then
+ If UltimaFluctuacion.FechaFluctuacion < FechaCancelacion Then
+ TipoCambioNC = UltimaFluctuacion.TCFluctuacion
+ End If
+ End If
+ End If
+
importeMovimiento = ObjFactura.Total * ValorMultiplicador
- importeMX = (importeMovimiento * tipoCambio * Multiplicador).RoundSQL(2)
+ importeMX = (importeMovimiento * TipoCambioNC * Multiplicador).RoundSQL(2)
FechaMovimiento = ObjFactura.FechaPago
CveSubProyectoContabilizar = ObjFactura.CveSubProyecto
@@ -2733,27 +2743,61 @@ Namespace Modelos
Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
End If
- If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConPreP.CveConcepto, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveSubProyecto:=CveSubProyectoContabilizar) Then
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConPreP.CveConcepto, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(TipoCambioNC = 1, 0, importeMovimiento), TipoCambio:=TipoCambioNC, CveSubProyecto:=CveSubProyectoContabilizar) Then
ErrorPrepoliza = True
End If
If UsaComplementariaClientes AndAlso ObjFactura.CveMoneda = 2 Then
IdCtaContable = ObjFactura.Cliente.IdCtaContComplementaria
- If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, 0, Referencia, ConPreP.CveConceptoComplementario, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=(importeMovimiento * tipoCambio - importeMovimiento).RoundSQL(2), ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveSubProyecto:=CveSubProyectoContabilizar) Then
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, 0, Referencia, ConPreP.CveConceptoComplementario, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=(importeMovimiento * TipoCambioNC - importeMovimiento).RoundSQL(2), ImporteME:=If(TipoCambioNC = 1, 0, importeMovimiento), TipoCambio:=TipoCambioNC, CveSubProyecto:=CveSubProyectoContabilizar) Then
ErrorPrepoliza = True
End If
End If
+ If ValorMultiplicador = -1 AndAlso esMesAnterior Then
+ Dim TCCliente As Decimal = tipoCambio
+ Dim TCFluctuacion As Decimal = tipoCambio
+ 'TOMA EL TC DE LA ULTIMA FLUCTUACION
+ If UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso ObjFactura.CveMoneda = 2 Then
+ Dim UltimaFluctuacion As ClsPaginas.MTipoCambioFluctuacion = ClsPaginas.GlobalTipoCambioUltimaFluctuacion(FechaCancelacion)
+
+ If UltimaFluctuacion IsNot Nothing Then
+ If UltimaFluctuacion.FechaFluctuacion <= FechaCancelacion Then
+ TCCliente = UltimaFluctuacion.TCFluctuacion
+ TCFluctuacion = UltimaFluctuacion.TCFluctuacion
+ End If
+ End If
+ End If
+
+ 'CONSIDERO FLUCTUACIÓN.
+ If tipoCambio <> TCFluctuacion AndAlso TCFluctuacion > 1 AndAlso tipoCambio > 1 Then
+ Dim difFluctuacion As Decimal = tipoCambio - TCFluctuacion
+ Dim CveConceptoFluctua As Integer = 64 '64.ganacia, 65.perdida
+ Dim TipoMovtoFluctua As Boolean = True
+ Dim IdCtaContableFluctua As Integer
+
+ If difFluctuacion < 0 Then
+ CveConceptoFluctua = 64
+ TipoMovtoFluctua = True
+ Else
+ CveConceptoFluctua = 65
+ TipoMovtoFluctua = False
+ End If
+
+ Dim ImporteFluctuacion As Decimal = Math.Abs((importeMovimiento * difFluctuacion).RoundSQL)
+
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovtoFluctua, ImporteFluctuacion, Referencia, CveConceptoFluctua, Concepto, FechaMovimiento, IdCtaContableFluctua, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, ImporteMX:=ImporteFluctuacion, ImporteME:=ImporteFluctuacion, CveSubProyecto:=CveSubProyectoContabilizar, TipoCambio:=tipoCambio, TipoCambioPago:=TCCliente) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ End If
+ End If
+
importeMovimiento = 0
If ValorMultiplicador = 1 Then
Dim IdCtaContableClienteComplementaria As Integer = ObjFactura.Cliente.IdCtaContComplementaria
- Dim TipoCambioNC As Decimal = 1
- If tipoCambio > 1 Then
- TipoCambioNC = tipoCambio
- Else
- TipoCambioNC = ClsPaginas.GlobalTipoCambio(ObjFactura.Fecha).ToDecimal
- End If
'APLICA NC SALDOS DIRECTOS
If DtVentasNC IsNot Nothing AndAlso DtVentasNC.Rows.Count > 0 Then
@@ -3023,15 +3067,19 @@ Namespace Modelos
If ValorMultiplicador = -1 Then
Dim TipoCambioNC As Decimal = 1
- If tipoCambio > 1 Then
- TipoCambioNC = tipoCambio
- Else
- If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
- TipoCambioNC = ClsPaginas.GlobalTipoCambio(ObjFactura.Fecha.AddDays(-1)).ToDecimal
+
+ If ObjFactura.CveMoneda = 2 Then
+ If tipoCambio > 1 Then
+ TipoCambioNC = tipoCambio
Else
- TipoCambioNC = ClsPaginas.GlobalTipoCambio(ObjFactura.Fecha).ToDecimal
+ If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
+ TipoCambioNC = ClsPaginas.GlobalTipoCambio(ObjFactura.Fecha.AddDays(-1)).ToDecimal
+ Else
+ TipoCambioNC = ClsPaginas.GlobalTipoCambio(ObjFactura.Fecha).ToDecimal
+ End If
End If
End If
+
'cuando es cancelación
If ObjFactura.DtNCVinculadas IsNot Nothing Then
For Each row2 As DataRow In ObjFactura.DtNCVinculadas.Rows
@@ -3056,7 +3104,7 @@ Namespace Modelos
Dim Pago As New ClsPaginas.VentaPago
Pago.Fecha = FechaCancelacion
- Pago.FechaDocumentoRelacionado = FechaCancelacion
+ Pago.FechaDocumentoRelacionado = ObjFactura.Fecha
Pago.ImportePagoVenta = importeMovimiento
Pago.ImportePago = importeMovimiento
Pago.CveMonedaPago = ObjFactura.CveMoneda
diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs
index 2cfdd6e2c..71dc2ced9 100644
--- a/Nomina/Nomina.aspx.cs
+++ b/Nomina/Nomina.aspx.cs
@@ -7111,7 +7111,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
using (ClsRH objpersonal = new ClsRH())
{
- if (objpersonal.GetAsistencias(CvePersonal, -1, -1, -1, -1, -1, -1, fecha, fecha, UsuarioActual.CveEmpresa))
+ if (objpersonal.GetAsistencias(CvePersonal, -1, -1, -1, -1, -1,-1, fecha, fecha, UsuarioActual.CveEmpresa))
{
if (objpersonal.DtResultados.Rows.Count > 0)
{
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index 7f70c7f5c..2d757bc67 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -13825,6 +13825,7 @@ Partial Class Ventas
Dim alertaContabilizacion As String = "Se enviaron correctamente las siguientes pólizas:
"
Dim CveCuentaContabilizacion As Integer = 1
Dim tipoCambio As Decimal
+ Dim TCPago As Decimal = 1
Dim CuentasContablesInvalidasSIG As New StringBuilder
@@ -13838,6 +13839,7 @@ Partial Class Ventas
If ObjFactura.CveMoneda = 2 AndAlso ObjFactura.TipoCambio > 0 Then
tipoCambio = ObjFactura.TipoCambio
+ TCPago = GlobalTipoCambio(ObjFactura.Fecha.AddDays(-1)).ToString().ToDecimal
ElseIf ObjFactura.CveMoneda = 2 AndAlso ObjFactura.TipoCambio <= 1 Then
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
tipoCambio = GlobalTipoCambio(ObjFactura.Fecha.AddDays(-1)).ToString().ToDecimal
@@ -14065,13 +14067,16 @@ Partial Class Ventas
End If
Dim TipoCambioNC As Decimal = 1
- If tipoCambio > 1 Then
- TipoCambioNC = tipoCambio
- Else
- If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
- TipoCambioNC = GlobalTipoCambio(ObjFactura.Fecha.AddDays(-1)).ToDecimal
+
+ If ObjFactura.CveMoneda = 2 Then
+ If tipoCambio > 1 Then
+ TipoCambioNC = tipoCambio
Else
- TipoCambioNC = GlobalTipoCambio(ObjFactura.Fecha).ToDecimal
+ If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
+ TipoCambioNC = GlobalTipoCambio(ObjFactura.Fecha.AddDays(-1)).ToDecimal
+ Else
+ TipoCambioNC = GlobalTipoCambio(ObjFactura.Fecha).ToDecimal
+ End If
End If
End If
@@ -14106,7 +14111,7 @@ Partial Class Ventas
Pago.CveVentaAmortizacion = ObjFactura.CveVenta 'Dr("CveVenta").ToString().ToEntero()
Pago.AplicaTraslado = False
Pago.Referencia = Concepto
- Pago.CveConceptoPago = 251
+ 'Pago.CveConceptoPago = 251
ErrorPrepoliza = AplicaPrePolizaPagoVenta(ventaRef, Pago, ObjFactura.CvePrePoliza, ObjConta)
@@ -14137,11 +14142,14 @@ Partial Class Ventas
'SI LA NC ES EN DOLARES Y PERO VIENE DE UN ANTICIPO EN PESOS
If (Not UsuarioActual.CveEmpresa.Contiene(72, 80, 146)) AndAlso ObjFactura.CveMoneda = 2 Then
+ Dim tipoCambioAnticipo As Decimal = 1D
- Dim tipoCambioAnticipo = GlobalTipoCambio(row2.DataKey("Fecha").ToString().ToDate).ToDecimal
-
- If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
- tipoCambioAnticipo = GlobalTipoCambio(row2.DataKey("Fecha").ToString().ToDate.AddDays(-1)).ToDecimal
+ If CveMonedaAnticipo = 2 Then
+ If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
+ tipoCambioAnticipo = GlobalTipoCambio(row2.DataKey("Fecha").ToString().ToDate.AddDays(-1)).ToDecimal
+ Else
+ tipoCambioAnticipo = GlobalTipoCambio(row2.DataKey("Fecha").ToString().ToDate).ToDecimal
+ End If
End If
@@ -14167,23 +14175,24 @@ Partial Class Ventas
End If
End If
- Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 292, NombreCliente, Dr("Folio").ToString, FolioIE.ToString())
+ 'Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 292, NombreCliente, Dr("Folio").ToString, FolioIE.ToString())
- If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimiento, Referencia, 292, Concepto, FechaMovimiento, ObjFactura.Cliente.IdCtaContMonedaExtranjera, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=ObjFactura.CveCliente, ImporteMX:=importeMovimiento, ImporteME:=If(Dr("TCCambioValuacion").ToString().ToDecimal = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, CveIE:=CveIEAnticipo, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString().ToDecimal, TipoCambioPago:=tipoCambio) Then
- ErrorPrepoliza = True
- Exit For
- End If
+ 'If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimiento, Referencia, 292, Concepto, FechaMovimiento, ObjFactura.Cliente.IdCtaContMonedaExtranjera, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=ObjFactura.CveCliente, ImporteMX:=importeMovimiento, ImporteME:=If(Dr("TCCambioValuacion").ToString().ToDecimal = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, CveIE:=CveIEAnticipo, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString().ToDecimal, TipoCambioPago:=tipoCambio) Then
+ ' ErrorPrepoliza = True
+ ' Exit For
+ 'End If
Else
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, Importe11MX, Referencia, 11, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=row2.DataKey("CveVenta").ToEntero(), CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=Importe11MX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, Contabilizable:=SeContabiliza) Then
ErrorPrepoliza = True
Exit For
Else
- ViewState("SeGuardoPrePoliza") = True
- If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimiento, Referencia, 2, Concepto, FechaMovimiento, ObjFactura.Cliente.IdCtaContClientes, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=ObjFactura.CveCliente, ImporteMX:=importeMovimiento, ImporteME:=If(Dr("TCCambioValuacion").ToString().ToDecimal = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, CveIE:=CveIEAnticipo, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString().ToDecimal, TipoCambioPago:=tipoCambio) Then
- ErrorPrepoliza = True
- Exit For
- End If
+ 'ViewState("SeGuardoPrePoliza") = True
+ 'If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimiento, Referencia, 2, Concepto, FechaMovimiento, ObjFactura.Cliente.IdCtaContClientes, -1, CveVenta:=Dr("CveVenta").ToString().ToEntero(), CveCliente:=ObjFactura.CveCliente, ImporteMX:=importeMovimiento, ImporteME:=If(Dr("TCCambioValuacion").ToString().ToDecimal = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, CveIE:=CveIEAnticipo, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString().ToDecimal, TipoCambioPago:=tipoCambio) Then
+ ' ErrorPrepoliza = True
+ ' Exit For
+ 'End If
+
'se hace acreditamiento de impuestos
'IVA X TRASLADAR
Dim EsAnticipoEspecial As Boolean = False
@@ -16460,7 +16469,7 @@ Partial Class Ventas
Pago.CveVentaAmortizacion = gvr.DataKey("CveVenta").ToEntero()
Pago.AplicaTraslado = gvr.DataKey("RegresarImpuesto") = "1"
Pago.Referencia = gvr.DataKey("Folio")
- Pago.CveConceptoPago = 251
+ 'Pago.CveConceptoPago = 251
ErrorConta = AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjConta)
SimplificaPrePoliza = False
@@ -19310,6 +19319,7 @@ Partial Class Ventas
DrPoliza("TotalImporte") = (DrPoliza("Cantidad").ToString().ToDecimal * PU).RoundSQL(NumeroDecimales)
DrPoliza("SATClaveProdServ") = DrPSAdicional("SATClavePS")
DrPoliza("SATClaveUM") = DrPSAdicional("SATClaveUnidadMedida")
+ DrPoliza("CveActivoFijo") = -1
TmpDT.Rows.Add(DrPoliza)
End If
@@ -21956,6 +21966,7 @@ Partial Class Ventas
drt("CveOSDetalle") = dr("CveOSDetalle")
drt("CveSubProyecto") = dr("CveSubProyecto")
drt("SubProyecto") = dr("SubProyecto")
+ drt("CveActivoFijo") = -1
TmpDT.Rows.Add(drt)
Cons = Cons + 1
Next
@@ -30085,6 +30096,7 @@ Partial Class Ventas
Row("CveVentaDetalleRNC") = CveVentaDetalleRNC
Row("CodigoObjetoImpuesto") = CodigoObjetoImpuesto
+ Row("CveActivoFijo") = -1
TmpDT.Rows.Add(Row)
End Sub
@@ -35008,6 +35020,7 @@ Partial Class Ventas
Row("CveOrdenCompraDetalle") = CveOrdenCompraDetalle
Row("CveVentaDetalleRemision") = CveVentaDetalleRemision
Row("CveVentaDetalleCotizacion") = CveVentaDetalleCotizacion
+ Row("CveActivoFijo") = -1
TmpDT.Rows.Add(Row)
End Sub