", NumCuenta)
strBody.AppendFormat(" ")
- If CuentaDepositado.ToString <> "" Then
+ If CuentaDepositado IsNot Nothing AndAlso CuentaDepositado.ToString <> "" Then
strBody.AppendFormat("
")
strBody.AppendFormat("
Cuenta Destino:
")
strBody.AppendFormat("
{0}
", CuentaDepositado)
@@ -4926,6 +4926,7 @@ Public Class ClsBancos
Dim Retorno As Boolean = False
DataAdapter("PA_Banc_PagosNoBancarios")
+ SqlAdapter.SelectCommand.CommandTimeout = 0
With SqlAdapter.SelectCommand.Parameters
.Add("@CveCliente", SqlDbType.Int).Value = CveCliente
.Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor
diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb
index 51106972c..994ef7716 100644
--- a/App_Code/ClsContabilidad.vb
+++ b/App_Code/ClsContabilidad.vb
@@ -1032,6 +1032,9 @@ Public Class ClsContabilidad
If dr("AplicaProveedor").ToString = "True" Then
StrMsg = StrMsg + " - Proveedor: " + ClsPaginas.GlobalDTCompProveedores(tCveEmp, CveProveedor:=CveProveedor).FiltroPrimeroValor("NombreComercial", "")
End If
+ If dr("AplicaPersonal").ToString = "True" Then
+ StrMsg = StrMsg + " - Personal: " + ClsPaginas.GlobalDTRHPersonal(tCveEmp, CvePersonal:=CvePersonal).FiltroPrimeroValor("NombreCompleto", "")
+ End If
End If
End If
OnError(String.Format("El concepto '{0}' no tiene especificada la cuenta. Favor de especificarla en la asignación de cuentas.", StrMsg), ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
@@ -3627,7 +3630,7 @@ Public Class ClsContabilidad
- Public Function GetSituacionFinanciera(FechaI As Date, FechaF As Date, CveEmpresa As Integer, CveSubProyecto As String, TipoMovtos As Integer, Optional SAT As Integer = 0) As Boolean
+ Public Function GetSituacionFinanciera(FechaI As Date, FechaF As Date, CveEmpresa As Integer, CveSubProyecto As String, TipoMovtos As Integer, Optional SAT As Integer = 0, Optional Opcion As Integer = 1) As Boolean
Dim Retorno = False
'SqlAdapter.SelectCommand.t
@@ -3641,6 +3644,7 @@ Public Class ClsContabilidad
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
.Add("@SAT", SqlDbType.Int).Value = SAT
+ .Add("@Opcion", SqlDbType.Int).Value = Opcion
End With
SqlAdapter.SelectCommand.CommandTimeout = 0
@@ -3851,7 +3855,7 @@ Public Class ClsContabilidad
End Function
'Public Function GetEstadoActividades(FechaI As Date, FechaF As Date, TipoMovtos As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveEmpresa As Integer, Optional SAT As Integer = 0) As Boolean
- Public Function GetEstadoActividades(FechaI As Date, FechaF As Date, TipoMovtos As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveEmpresa As Integer, Optional SAT As Integer = 0) As Boolean
+ Public Function GetEstadoActividades(FechaI As Date, FechaF As Date, TipoMovtos As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveEmpresa As Integer, Optional SAT As Integer = 0, Optional Opcion As Integer = 1) As Boolean
Dim Retorno = False
DataAdapter("PA_Conta_EstadoActividadesGet")
@@ -3864,6 +3868,7 @@ Public Class ClsContabilidad
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@SAT", SqlDbType.Int).Value = SAT
+ .Add("@Opcion", SqlDbType.Int).Value = Opcion
End With
SqlAdapter.SelectCommand.CommandTimeout = 0
@@ -5986,7 +5991,8 @@ Public Class ClsContabilidad
Public Function AddCuentasAsignaciones(Optional CveConceptoContable As Integer = -1, Optional CveEmpresa As Integer = -1, Optional CveCuenta As Integer = -1, Optional IdCtaContable As Integer = -1,
Optional CveProveedor As Integer = -1, Optional CveCliente As Integer = -1, Optional CvePersonal As Integer = -1, Optional CveClasificacion As Integer = -1,
Optional CveAlmacen As Integer = -1, Optional PorcentajeIVA As Decimal = -1, Optional CveConceptoNomina As Decimal = -1, Optional CveBancoCuenta As Integer = -1,
- Optional CveSubProyecto As Integer = -1, Optional CveActivoFijo As Integer = -1, Optional CveTipoGasto As Integer = -1, Optional RegeneraCuenta As Boolean = False,
+ Optional CveSubProyecto As Integer = -1, Optional CveActivoFijo As Integer = -1, Optional CveTipoGasto As Integer = -1, Optional CveCredito As Integer = -1,
+ Optional RegeneraCuenta As Boolean = False,
Optional OpActualizarClasificacion As Boolean = False) As Boolean
Dim Retorno = False
@@ -6008,6 +6014,7 @@ Public Class ClsContabilidad
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
.Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo
.Add("@CveTipoGasto", SqlDbType.Int).Value = CveTipoGasto
+ .Add("@CveCredito", SqlDbType.Int).Value = CveCredito
.Add("@RegeneraCuenta", SqlDbType.Bit).Value = RegeneraCuenta
.Add("@OpActualizarClasificacion", SqlDbType.Bit).Value = OpActualizarClasificacion
End With
@@ -6027,7 +6034,7 @@ Public Class ClsContabilidad
Optional CvePersonal As Integer = -1, Optional CveClasificacion As Integer = -1, Optional CveAlmacen As Integer = -1,
Optional PorcentajeIVA As Decimal = -1, Optional CveConceptoNomina As Decimal = -1, Optional CveBancoCuenta As Integer = -1,
Optional CveSubProyecto As Integer = -1, Optional CveActivoFijo As Integer = -1, Optional CveTipoGasto As Integer = -1,
- Optional RegeneraCuenta As Boolean = False) As Boolean
+ Optional CveCredito As Integer = -1, Optional RegeneraCuenta As Boolean = False) As Boolean
Dim Retorno = False
DataAdapter("PA_Conta_CuentasAsignacionesUpdate")
@@ -6048,6 +6055,7 @@ Public Class ClsContabilidad
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
.Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo
.Add("@CveTipoGasto", SqlDbType.Int).Value = CveTipoGasto
+ .Add("@CveCredito", SqlDbType.Int).Value = CveCredito
.Add("@RegeneraCuenta", SqlDbType.Bit).Value = RegeneraCuenta
End With
diff --git a/App_Code/ClsEncuestas.vb b/App_Code/ClsEncuestas.vb
index 5aeff458a..fb9c893d5 100644
--- a/App_Code/ClsEncuestas.vb
+++ b/App_Code/ClsEncuestas.vb
@@ -568,6 +568,7 @@ Public Class ClsEncuestas
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@Fecha", SqlDbType.Date).Value = Now
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ .Add("@CveEncuestaAplicada", SqlDbType.Int).Direction = ParameterDirection.Output
End With
Try
diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb
index 215aada2b..908445a59 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
@@ -6040,7 +6041,8 @@ Public Class ClsPaginas
If UsuarioActual.CveEmpresa.Contiene(141, 152, 159, 160, 161, 162, 163) Then
Dim QRDescarga As String = ""
Dim cfdi As New RVCFDI33.GeneraCFDI()
- Dim b As Byte() = cfdi.ConvertirQrCode($"http://econollantas.adssistemas.mx/Ashx/E141.ashx?P={Encripta($"File={Vta.SerieFolio}.pdf")}")
+ Dim Parametros As String = Encripta($"SerieFolio={Vta.SerieFolio}&TipoDocto={Vta.TipoDocto}&CveEmpresa={Vta.CveEmpresa}")
+ Dim b As Byte() = cfdi.ConvertirQrCode($"http://econollantas.adssistemas.mx/Ashx/E141.ashx?PV={Parametros}")
QRDescarga = Convert.ToBase64String(b)
params.Add(New ReportParameter("QRDescarga", QRDescarga))
End If
@@ -7667,7 +7669,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 +7678,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
@@ -7698,28 +7707,40 @@ Public Class ClsPaginas
If Pago.Fecha < tFechaUltimaFluctuacion Then TCValuacionPago = TCValuacion
End If
End If
- 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
- 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
- End If
- Dim ImportePagoMN As Decimal = Pago.ImportePago
+
+ tImporteCompra = (Pago.ImportePagoCompra * TCValuacionCompra).RoundSQL
+ tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL
+ PorcentajePago = Pago.ImportePago * Pago.TCCambioMoneda / CompraActual.Total
+
+ '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.ImportePagoCompra * 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.ImportePagoCompra * 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.ImportePagoCompra
+ ' tImportePago = Pago.ImportePago
+ ' PorcentajePago = Pago.ImportePago / CompraActual.Total
+ 'End If
+ 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 +7907,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 +8064,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 +8118,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 +8447,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)
diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb
index c5f8dd4f9..2819ceb5a 100644
--- a/App_Code/ClsVentas.vb
+++ b/App_Code/ClsVentas.vb
@@ -1325,7 +1325,7 @@ Public Class ClsVentas
CvePresupuestoIngreso As Integer, Optional TiempoEntrega As String = "", Optional CveVentaDetallePadre As Integer = -1,
Optional CveContratoDetalle As Integer = -1, Optional PorcentajeIVA As Decimal = 0, Optional IEPS As Double = -1, Optional PorcentajeIEPS As Double = 0, Optional CvePromocionDetalle As Integer = -1,
Optional CveMovimientoDetallePedido As Integer = -1, Optional ImporteRetIVA As Double = 0, Optional PorcentajeRetIVA As Double = 0,
- Optional ImporteRetISR As Double = 0, Optional PorcentajeRetISR As Double = 0, Optional CuentaPredial As String = "") As Boolean
+ Optional ImporteRetISR As Double = 0, Optional PorcentajeRetISR As Double = 0, Optional CuentaPredial As String = "", Optional CvePrecioLista As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_VentasDetalleAdd")
@@ -1355,6 +1355,7 @@ Public Class ClsVentas
.Add("@CvePromocionDetalle", SqlDbType.Int).Value = CvePromocionDetalle
.Add("@CveMovimientoDetallePedido", SqlDbType.Int).Value = CveMovimientoDetallePedido
.Add("@CuentaPredial", SqlDbType.VarChar).Value = CuentaPredial
+ .Add("@CvePrecioLista", SqlDbType.Int).Value = CvePrecioLista
End With
Try
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index 26c66ef60..f9759cb99 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -301,6 +301,11 @@ Namespace Modelos
#Region " OBJETOS Ventas"
+
+ Public Class MPrecioSugerido
+ Public Property CvePrecioLista As Integer
+ Public Property PrecioSugerido As Decimal
+ End Class
Public Class VentaDescuentos
Public Consec As Integer
@@ -3324,27 +3329,12 @@ Namespace Modelos
CveVentaAmortizacionAplicar = ObjFactura.CveVenta
End If
- ''código fijo en base el porcentaje iva, que se afecten las clasificaciones
- 'For i = 0 To TmpDTDetalle.Rows.Count - 1
-
- ' 'se excluyen las clasificaciones anteriores para que se asignen las de ingreso
- ' If Not TmpDTDetalle(i)("CveClasificacion").ToString.Contiene("19958", "19933") Then
-
- ' 'reclasifica la clasificación del producto, por la del ingreso correspondiente a su iva
- ' If ClsPaginas.GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString.ToDecimal).Rows.Count > 0 Then
- ' TmpDTDetalle(i)("CveClasificacion") = ClsPaginas.GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString.ToDecimal).Rows(0)("CveClasificacion").ToString
- ' End If
-
- ' End If
-
- 'Next
-
DT = TmpDTDetalle.FiltraParametros($"CvePS <> {ObjFactura.CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto", "PorcentajeIVA"})
If DT.Rows.Count > 0 Then
'Se agrega movimiento separado por la cuenta de ventas (ER)
For Each Row2 As DataRow In DT.Rows
- importeMovimiento = ((TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString.ToDecimal) * ValorMultiplicador)
+ importeMovimiento = ((TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} AND CveSubProyecto = {1} AND PorcentajeIVA = {2}", Row2("CveClasificacion"), Row2("CveSubProyecto"), Row2("PorcentajeIVA"))).ToString.ToDecimal) * ValorMultiplicador)
importeMX = importeMovimiento * tipoCambio * Multiplicador
FechaMovimiento = ObjFactura.FechaPago
Concepto = $"{ObjFactura.SerieFolio} {If(Row2("CveClasificacion").ToString.ToEntero > 0, ClsPaginas.GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = {Row2("CveClasificacion").ToString}"), "")} - {If(Row2("CveSubProyecto").ToString.ToEntero > 0, ClsPaginas.GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa).FiltroPrimeroValor("SubProyecto", $"CveSubProyecto = {Row2("CveSubProyecto").ToString}"), "Sin SubProyecto Asignado")}"
@@ -3388,37 +3378,12 @@ Namespace Modelos
CveVentaAmortizacionAplicar = ObjFactura.CveVenta
End If
- 'If UsuarioActual.CveEmpresa = 119 Then
-
- ' 'código fijo en base el porcentaje iva, que se afecten las clasificaciones
- ' For i = 0 To TmpDTDetalle.Rows.Count - 1
-
- ' 'se excluyen las clasificaciones anteriores para que se asignen las de ingreso
- ' If Not TmpDTDetalle(i)("CveClasificacion").ToString.Contiene("19958", "19933", "20242") Then
-
- ' If ClsPaginas.GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDouble).Rows.Count > 0 Then
- ' TmpDTDetalle(i)("CveClasificacion") = ClsPaginas.GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDouble).Rows(0)("CveClasificacion").ToString
- ' End If
-
- ' End If
-
- ' Next
-
- 'End If
-
DT = TmpDTDetalle.FiltraParametros($"CvePS <> {ObjFactura.CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto", "PorcentajeIVA"})
If DT.Rows.Count > 0 Then
'Se agrega movimiento separado por la cuenta de ventas (ER)
For Each Row2 As DataRow In DT.Rows
- importeMovimiento = ((TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString.ToDecimal) * ValorMultiplicador)
-
- 'If ObjFactura.TipoDocto = "Egs" Then
- ' importeMovimiento += (TmpDTDetalle.SUM("ImporteIVA", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
- ' importeMovimiento += (TmpDTDetalle.SUM("ImporteIEPS", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
- ' importeMovimiento -= (TmpDTDetalle.SUM("ImporteRetIVA", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
- ' importeMovimiento -= (TmpDTDetalle.SUM("ImporteRetISR", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
- 'End If
+ importeMovimiento = ((TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} AND CveSubProyecto = {1} AND PorcentajeIVA = {2}", Row2("CveClasificacion"), Row2("CveSubProyecto"), Row2("PorcentajeIVA"))).ToString.ToDecimal) * ValorMultiplicador)
importeMX = importeMovimiento * tipoCambio * Multiplicador
FechaMovimiento = ObjFactura.FechaPago
diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb
index f48142f14..62fcbb5da 100644
--- a/App_Code/Timbrado.vb
+++ b/App_Code/Timbrado.vb
@@ -865,7 +865,7 @@ Public Class Timbrado
{UsuarioServicio}{PassServicio}{rfcEmisor}
- {arregloUUID}|{rfcReceptor}|{rfcEmisor}|{Total}|{MotivoCancelacion}|{FolioSustitucion}
+ {arregloUUID}|{rfcReceptor.ToEscapeXML()}|{rfcEmisor.ToEscapeXML()}|{Total}|{MotivoCancelacion}|{FolioSustitucion}{certBase64}{keyBase64}{keyPass}
diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb
index 9b8998052..fb6ddaac8 100644
--- a/App_Code/modExtensiones.vb
+++ b/App_Code/modExtensiones.vb
@@ -3960,6 +3960,19 @@ Namespace Extensiones
Return text
End Function
+
+
+
+ Function ToEscapeXML(ByVal str As String) As String
+ Dim text As String = ""
+
+ text = str.Replace("'", "'")
+ text = str.Replace("<", "<")
+ text = str.Replace(">", ">")
+ text = str.Replace("&", "&")
+
+ Return text
+ End Function
End Module
#End Region
diff --git a/Ashx/E141.ashx b/Ashx/E141.ashx
index 7f6bf47cb..9e87ebed5 100644
--- a/Ashx/E141.ashx
+++ b/Ashx/E141.ashx
@@ -99,16 +99,36 @@ Public Class E141 : Implements IHttpHandler
Dim retorno As String = ""
Try
Dim Params = If(context.Request("P") = Nothing, "", context.Request("P").ToString())
+ Dim ParamsV = If(context.Request("PV") = Nothing, "", context.Request("PV").ToString())
+
+ Dim ParametrosNuevos As Boolean = False
+ If Not String.IsNullOrEmpty(ParamsV) Then
+ ParametrosNuevos = True
+ Params = ParamsV
+ End If
'DESCARGA DEL PDF
If Not String.IsNullOrEmpty(Params) Then
Try
- Dim UrlParametros As Hashtable = Parametros(Decripta(Params))
+ If ParametrosNuevos Then
+ Dim UrlParametros As Hashtable = Parametros(Decripta(Params))
- Dim File As String = UrlParametros("FILE").ToString()
- If Not String.IsNullOrEmpty(File) Then
- ImprimirbytesPDF(context, DescargarFactura(File), File)
+ Dim File As String = String.Format("{0}.pdf", UrlParametros("SERIEFOLIO").ToString())
+ Dim TipoDocto As String = UrlParametros("TIPODOCTO").ToString()
+ Dim CveEmpresaParam As Integer = UrlParametros("CVEEMPRESA").ToString().ToEntero()
+
+ If Not String.IsNullOrEmpty(File) AndAlso Not String.IsNullOrEmpty(TipoDocto) AndAlso CveEmpresaParam > 0 Then
+ ImprimirbytesPDF(context, DescargarFactura(File, CveEmpresaParam, TipoDocto), File)
+ End If
+ Else
+ Dim UrlParametros As Hashtable = Parametros(Decripta(Params))
+
+ Dim File As String = UrlParametros("FILE").ToString()
+ If Not String.IsNullOrEmpty(File) Then
+ ImprimirbytesPDF(context, DescargarFactura(File, Me.CveEmpresa), File)
+ End If
End If
+
Catch ex As Exception
GuardaLogAD("Ocurrió un error al descargar el pdf. " + ex.ToString() + ".parametros: " + Params, "LogE141")
End Try
@@ -2202,8 +2222,8 @@ Public Class E141 : Implements IHttpHandler
#Region "D E S C A R G A - P D F"
- Private Function DescargarFactura(FilePDF As String) As Byte()
- Dim Url = New Uri(String.Format("{0}://{1}:{2}/Compras/PopUpVerFactura.aspx?TipoDocto=Ing&File={3}&TipoArchivo=PDF", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port, FilePDF))
+ Private Function DescargarFactura(FilePDF As String, CveEmpresa As Integer, Optional TipoDocto As String = "Ing") As Byte()
+ Dim Url = New Uri(String.Format("{0}://{1}:{2}/Compras/PopUpVerFactura.aspx?TipoDocto={4}&File={3}&TipoArchivo=PDF", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port, FilePDF, TipoDocto))
Dim File As Byte() = Nothing
Try
Using httpClient = New HttpClient()
diff --git a/Bancos/Creditos.aspx b/Bancos/Creditos.aspx
index 9cfa5c2aa..9811be61a 100644
--- a/Bancos/Creditos.aspx
+++ b/Bancos/Creditos.aspx
@@ -493,7 +493,7 @@
-
+
@@ -501,7 +501,7 @@
-
+
Cuenta Contable:
diff --git a/Bancos/Creditos.aspx.vb b/Bancos/Creditos.aspx.vb
index 79963120b..ca0aac1cb 100644
--- a/Bancos/Creditos.aspx.vb
+++ b/Bancos/Creditos.aspx.vb
@@ -549,7 +549,7 @@ Partial Class Bancos_Creditos
DdlCtaContable.Items.Clear()
Dim IdCuentaPadre As Integer = If(RBLClasificacionContable.SelectedValue.ToEntero = 1, UsuarioActual.Empresa.Funcionalidad(203).ToEntero, UsuarioActual.Empresa.Funcionalidad(202).ToEntero)
- If IdCuentaPadre > 0 Then
+ If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso IdCuentaPadre > 0 Then
Dim ObjContabilidad As New ClsContPAQi(UsuarioActual.Empresa)
If ObjContabilidad.GetCuentasRecursiva(IdCuentaPadre, 1) Then
DdlCtaContable.DataSource = ObjContabilidad.DtResultados
diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb
index a1c19340e..583fafb2d 100644
--- a/Bancos/IE.aspx.vb
+++ b/Bancos/IE.aspx.vb
@@ -1034,34 +1034,28 @@ Partial Class Bancos_IE
IDPoliza = ObjIE.IDPoliza
IDCtaContable = ObjIE.IdCtaContable
+ If UsuarioActual.Empresa.TipoContabilidad = 2 Then
+ If ObjIE.IDPoliza > 0 Then
- If ObjIE.IDPoliza > 0 Then
-
- If UsuarioActual.TienePermisoProceso(107) Then
- BtnDescontabilizar.Visible = True
+ If UsuarioActual.TienePermisoProceso(107) Then
+ BtnDescontabilizar.Visible = True
+ End If
+ BtnContabilizar.Visible = False
+ HplIrPoliza.Visible = True
+ HplIrPoliza.NavigateUrl = String.Format("/Contabilidad/RegPoliza.aspx?IdPoliza={0}", ObjIE.IDPoliza)
+ 'ImgEliminarMovimiento.OnClientClick = "return confirm('Esta seguro de eliminar el documento y su póliza?');"
+ LnkEliminar.OnClientClick = "return confirm('¿Está seguro de eliminar el documento y su póliza?');"
+ EstaContabilizado = True
+ TxtFechaDocumento.Enabled = False
+ ImgCalendario.Visible = False
+ Else
+ BtnContabilizar.Visible = True
+ BtnDescontabilizar.Visible = False
+ HplIrPoliza.Visible = False
+ EstaContabilizado = False
End If
- BtnContabilizar.Visible = False
- HplIrPoliza.Visible = True
- HplIrPoliza.NavigateUrl = String.Format("/Contabilidad/RegPoliza.aspx?IdPoliza={0}", ObjIE.IDPoliza)
- 'ImgEliminarMovimiento.OnClientClick = "return confirm('Esta seguro de eliminar el documento y su póliza?');"
- LnkEliminar.OnClientClick = "return confirm('¿Está seguro de eliminar el documento y su póliza?');"
-
- EstaContabilizado = True
-
- TxtFechaDocumento.Enabled = False
- ImgCalendario.Visible = False
-
-
- Else
- BtnContabilizar.Visible = True
- BtnDescontabilizar.Visible = False
- HplIrPoliza.Visible = False
- EstaContabilizado = False
-
- 'TxtFechaDocumento.Enabled = True
- 'ImgCalendario.Visible = True
-
End If
+
UPPDesContabilizar.Update()
'ImgImprimir.Visible = True
@@ -1416,9 +1410,9 @@ Partial Class Bancos_IE
IDCtaBeneficiario = ObjProveedor.IdCtaContAcreedor
- If Not IDCtaBeneficiario > 0 Then
- Alert("No se pudo cargar IDCtaBeneficiario", TipoMensaje.MsgAdvertencia)
- End If
+ 'If Not IDCtaBeneficiario > 0 Then
+ ' Alert("No se pudo cargar IDCtaBeneficiario", TipoMensaje.MsgAdvertencia)
+ 'End If
End If
@@ -2651,6 +2645,7 @@ Partial Class Bancos_IE
Case "P" 'Proveedores
If CveProveedor > 0 Then
CveConceptoCompra = 10 'Anticipo a proveedor
+ If CveMoneda = 2 Then CveConceptoCompra = 338
CveConceptoContable = 30 'Pago a Proveedor
CvePlantillaPoliza = 3
End If
@@ -2665,6 +2660,7 @@ Partial Class Bancos_IE
Case "AC" ' Acreedores Diversos
If CveProveedor > 0 Then
CveConceptoCompra = 48 'anticipo a acreedor diverso
+ If CveMoneda = 2 Then CveConceptoCompra = 345
CveConceptoContable = 30 'Bancos
'limpio el iva
HdnProvPorIVA.Value = "0"
@@ -2720,7 +2716,11 @@ Partial Class Bancos_IE
Dim FolioFijo As Integer = 0
Dim tCveMoneda As Integer = CveMoneda
Dim tImporteMonedaExtranjera As Decimal = TxtImporte.Text.ToDecimal
- If tCveMoneda <> 1 Then tImporteMonedaExtranjera = (TxtImporte.Text.ToDecimal * GlobalTipoCambio(TxtFechaDocumento.Text.Trim.ToDate).ToString.ToDecimal).RoundSQL
+ Dim tImporteMonedaME As Decimal = 0
+ If tCveMoneda <> 1 Then
+ tImporteMonedaExtranjera = (TxtImporte.Text.ToDecimal * GlobalTipoCambio(TxtFechaDocumento.Text.Trim.ToDate).ToString.ToDecimal).RoundSQL
+ tImporteMonedaME = TxtImporte.Text.ToDecimal
+ End If
Dim PagueseA = ""
If HdnCveCliente.Value.ToEntero > 0 Then
@@ -2884,7 +2884,7 @@ Partial Class Bancos_IE
Select Case ConceptoContable
- Case 10
+ Case 10, 338, 345
If RBL.SelectedValue = "P" AndAlso CveProveedor > 0 Then
importeMovimiento = TxtImporte.Text.ToDecimal
importeMX = importeMovimiento
@@ -3596,71 +3596,46 @@ Partial Class Bancos_IE
Dim ConceptoContable As Integer
Dim TipoMovimiento As Boolean
- Dim importeMovimiento As Decimal
+ Dim importeMovimiento As Decimal = TxtImporte.Text.ToDecimal
Dim FechaMovimiento As Date = Now
Dim Concepto As String = ""
Dim Referencia As String = PagueseA
+ Dim CveCredito As Integer
- Dim importeMX As Decimal
- Dim Multiplicador As Integer
+ CveCredito = IfNull(Request("CveCredito"), "-1").ToString.ToEntero
+ CveCreditoDetalle = IfNull(Request("CveCreditoDetalle"), "-1").ToString.ToEntero
+ Concepto = ObjMov.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, ConceptoContable, PagueseA, "", ObjIE.Folio)
- If ObjMov.GetPlantillaConceptos(UsuarioActual.CveEmpresa, CvePlantillaPoliza) Then
-
- For Each Row As DataRow In ObjMov.DtResultados.Rows
-
- ConceptoContable = Row("CveConcepto").ToString.ToEntero
- TipoMovimiento = If(Row("TipoMovto").ToString = "True", True, False)
- importeMovimiento = 0
- Multiplicador = (Row("Multiplicador").ToString.ToEntero)
- Concepto = ObjMov.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, ConceptoContable, PagueseA, "", ObjIE.Folio)
-
- Select Case ConceptoContable
-
- Case 30
- importeMovimiento = TxtImporte.Text.ToDecimal
- importeMX = importeMovimiento
- If tCveMoneda > 1 Then
- 'Agregamos complementaria
- Dim TC As Decimal = TxtTipoCambio.Text.ToDecimal
-
- If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, Concepto, 204, Concepto, FechaMovimiento, IDCtaContableComplementaria, -1, CveIE:=CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=(importeMovimiento * TC - importeMovimiento).RoundSQL, ImporteME:=importeMovimiento, TipoCambio:=TC) Then
- MsgError = "Ocurrió un error al registrar el asiento del ingreso."
- End If
- End If
- Case 42
-
- importeMovimiento = TxtImporte.Text.ToDecimal
- importeMX = importeMovimiento
- If tCveMoneda > 1 Then
- importeMovimiento = TxtImporte.Text.ToDecimal * TxtTipoCambio.Text.ToDecimal
- importeMX = importeMovimiento
- End If
-
-
- Case 46
- If TxtInteresMoratorio.Text.ToDecimal > 0 Then
- importeMovimiento = TxtInteresMoratorio.Text.ToDecimal
- importeMX = importeMovimiento
- Else
- importeMovimiento = 0
- importeMX = 0
- End If
- Case 48
-
- importeMovimiento = TxtImporte.Text.ToDecimal
- importeMX = importeMovimiento
-
- End Select
-
- If importeMovimiento <> 0 Then
- If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Concepto, ConceptoContable, Concepto, FechaMovimiento, If(ConceptoContable = 30, IDCtaContable, IDCtaBeneficiario), -1, CveIE:=CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=importeMovimiento, ImporteME:=tImporteMonedaExtranjera, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then
- MsgError = "Ocurrió un error al registrar el asiento del ingreso."
- End If
- End If
-
- Next
+ If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimiento, Concepto, 57, Concepto, FechaMovimiento, If(ConceptoContable = 30, IDCtaContable, IDCtaBeneficiario), -1, CveIE:=CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=importeMovimiento, ImporteME:=tImporteMonedaExtranjera, TipoCambio:=TxtTipoCambio.Text.ToDecimal, CveCredito:=CveCredito) Then
+ MsgError = "Ocurrió un error al registrar el asiento del ingreso."
End If
+ If MsgError = "" AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimiento, Concepto, 30, Concepto, FechaMovimiento, If(ConceptoContable = 30, IDCtaContable, IDCtaBeneficiario), -1, CveIE:=CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=importeMovimiento, ImporteME:=tImporteMonedaExtranjera, TipoCambio:=TxtTipoCambio.Text.ToDecimal, CveCredito:=CveCredito) Then
+ MsgError = "Ocurrió un error al registrar el asiento del ingreso."
+ End If
+
+ If MsgError = "" AndAlso tCveMoneda > 1 Then
+ 'Agregamos complementaria
+ Dim TC As Decimal = TxtTipoCambio.Text.ToDecimal
+
+ If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, Concepto, 204, Concepto, FechaMovimiento, IDCtaContableComplementaria, -1, CveIE:=CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=(importeMovimiento * TC - importeMovimiento).RoundSQL, ImporteME:=importeMovimiento, TipoCambio:=TC, CveCredito:=CveCredito) Then
+ MsgError = "Ocurrió un error al registrar el asiento del ingreso."
+ End If
+ End If
+
+
+ ' Case 46
+ ' If TxtInteresMoratorio.Text.ToDecimal > 0 Then
+ ' importeMovimiento = TxtInteresMoratorio.Text.ToDecimal
+ ' importeMX = importeMovimiento
+ ' Else
+ ' importeMovimiento = 0
+ ' importeMX = 0
+ ' End If
+
+
+
+
Case Else
Dim TipoMovimiento As Boolean = True
@@ -3681,7 +3656,7 @@ Partial Class Bancos_IE
'MOVIMIENTOS EGRESOS
- If ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, TxtImporte.Text.ToDecimal, Ref, CveConceptoContable, Conc, Now, IDCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveOC:=CveOrdenCompra, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=Importe30, ImporteME:=tImporteMonedaExtranjera, CveIEDevolucion:=DDlCheques.SelectedValue.ToEntero) Then
+ If ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, TxtImporte.Text.ToDecimal, Ref, CveConceptoContable, Conc, Now, IDCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveOC:=CveOrdenCompra, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=Importe30, ImporteME:=tImporteMonedaME, CveIEDevolucion:=DDlCheques.SelectedValue.ToEntero) Then
Dim IVA As Decimal = 0 ' TxtImporte.Text.ToDouble * HdnProvPorIVA.Value.ToDouble
If ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, TxtImporte.Text.ToDecimal - IVA - CIF, Ref, CveConceptoCompra, Conc, Now, IDCtaBeneficiario, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveOC:=CveOrdenCompra, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=If(UsaComplementariaBancos, TxtImporte.Text.ToDecimal, tImporteMonedaExtranjera), ImporteME:=TxtImporte.Text.ToDecimal, CveIEDevolucion:=DdlIEAcreedor.SelectedValue.ToEntero) Then
If IVA > 0 AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, IVA, Ref, 19, Conc, Now, IDCtaBeneficiario, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveOC:=CveOrdenCompra, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=TxtImporte.Text.ToDecimal, ImporteME:=tImporteMonedaExtranjera, CveIEDevolucion:=DDlCheques.SelectedValue.ToEntero) Then
@@ -3702,12 +3677,12 @@ Partial Class Bancos_IE
If tCveMoneda > 1 And UsaComplementariaBancos Then
Dim ImporteAplicar As Decimal = TxtImporte.Text.ToDecimal
Dim ImporteAplicarMN = (ImporteAplicar * TxtTipoCambio.Text.ToDecimal - ImporteAplicar).RoundSQL()
- If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAplicar, Ref, 204, Conc, Now, IDCtaContableComplementaria, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicar, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then
+ If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAplicar, Ref, 204, Conc, Now, IDCtaContableComplementaria, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=ImporteAplicarMN, ImporteME:=tImporteMonedaME, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then
MsgError = "Ocurrió un error al registrar el asiento de bancos complementaria de devolución"
End If
- If CveConceptoCompra = 10 Then
- If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, ImporteAplicar, Ref, 266, Conc, Now, IdCtaAnticipoComplementaria, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicar, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then
+ If CveConceptoCompra.Contiene(10, 338, 48, 345) Then
+ If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, ImporteAplicar, Ref, If(CveConceptoCompra = 10, 266, 340), Conc, Now, IdCtaAnticipoComplementaria, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicar, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then
MsgError = "Ocurrió un error al registrar el asiento de bancos complementaria de devolución"
End If
End If
@@ -3873,8 +3848,12 @@ Partial Class Bancos_IE
End If
End If
- If IDPoliza > 0 Then
- Msg.AppendFormat("
Ver Póliza", IDPoliza)
+ If UsuarioActual.Empresa.TipoContabilidad = 1 Then
+ Msg.AppendFormat("
Ver Póliza", CvePrePoliza)
+ Else
+ If IDPoliza > 0 Then
+ Msg.AppendFormat("
Ver Póliza", IDPoliza)
+ End If
End If
'AUTO DESCARGAR PDF PARA COMPU
@@ -3888,7 +3867,7 @@ Partial Class Bancos_IE
Else
ObjIE.RollBack()
Alert(MsgError, TipoMensaje.MsgAdvertencia)
- If Opcion = "INGPC" Then
+ If Opcion.Contiene("INGPC", "EGSCREDITO") Then
CveIE = -1
End If
End If
diff --git a/Bancos/PolizaCheque.aspx b/Bancos/PolizaCheque.aspx
index 88b3514dc..32ed1c0b4 100644
--- a/Bancos/PolizaCheque.aspx
+++ b/Bancos/PolizaCheque.aspx
@@ -24,7 +24,7 @@
-
+
@@ -213,7 +213,7 @@
--%>
-
+ Código
diff --git a/Bancos/PolizaCheque.aspx.vb b/Bancos/PolizaCheque.aspx.vb
index 0b28dc305..fc8c83826 100644
--- a/Bancos/PolizaCheque.aspx.vb
+++ b/Bancos/PolizaCheque.aspx.vb
@@ -155,6 +155,7 @@ Partial Class Bancos_PolizaCheque
Dim IDMov As DataColumn = DtMovimientos.Columns.Add("IdMov", Type.GetType("System.Int32")) : IDMov.AutoIncrement = True
With DtMovimientos.Columns
.Add("IdCuenta", Type.GetType("System.Int32"))
+ .Add("CveCuenta", Type.GetType("System.Int32"))
.Add("CodigoCuenta", Type.GetType("System.String"))
.Add("Cuenta", Type.GetType("System.String"))
.Add("Referencia", Type.GetType("System.String"))
@@ -401,6 +402,7 @@ Partial Class Bancos_PolizaCheque
Dim Dt As DataTable = GlobalDTContaPlantillasPolizasDetalle(UsuarioActual.CveEmpresa, CvePlantilla).FiltraParametros("", "Orden")
Dim Cuenta As String = ""
Dim IdCuenta As Integer = 0
+ Dim CveCuenta As Integer = 0
Dim CodigoCuenta As String = ""
Dim NombreCuenta As String = ""
Dim EsComodin As Integer = 0
@@ -412,6 +414,7 @@ Partial Class Bancos_PolizaCheque
Cuenta = drt("ConceptoContable").ToString
IdCuenta = 0
+ CveCuenta = 0
CodigoCuenta = ""
NombreCuenta = ""
@@ -420,7 +423,7 @@ Partial Class Bancos_PolizaCheque
Dim drr As DataRow = DtCuentasContables.FiltroPrimero(String.Format("CveCuenta={0}", drt("CveCuenta").ToString))
If drr IsNot Nothing Then
- IdCuenta = drt("IdCtaContable").ToString.ToEntero
+ CveCuenta = drt("CveCuenta").ToString.ToEntero
CodigoCuenta = drr("CuentaFormato").ToString()
NombreCuenta = drr("Nombre").ToString()
'Cuenta = drr("Nombre").ToString()
@@ -469,7 +472,8 @@ Partial Class Bancos_PolizaCheque
Dim dr As DataRow = DtMovimientos.NewRow
- dr("IdCuenta") = IdCuenta
+ dr("IdCuenta") = IdCuenta
+ dr("CveCuenta") = CveCuenta
dr("CodigoCuenta") = CodigoCuenta & " " & NombreCuenta
dr("Cuenta") = Cuenta 'TxtCuentaContable.Text
dr("RazonSocial") = drt("RazonSocial")
@@ -566,24 +570,8 @@ Partial Class Bancos_PolizaCheque
dr("CvePersonal") = drt("CvePersonal")
DtMovimientos.Rows.Add(dr)
- Next
- 'Dim drtt As DataRow = DtMovimientos.NewRow
- 'drtt("IdCuenta") = 0
- 'drtt("CodigoCuenta") = ""
- 'drtt("Cuenta") = Cuenta
- 'drtt("RazonSocial") = ""
- 'drtt("Concepto") = ""
- 'drtt("TipoMovto") = 0
- 'drtt("EsComodin") = EsComodin
- 'drtt("CveConcepto") = 44
- 'drtt("CveProveedor") = "-1"
- 'drtt("SubProyecto") = ""
- 'drtt("Proyecto") = ""
- 'drtt("Personal") = ""
- 'drtt("CveSubProyecto") = -1
- 'drtt("CvePersonal") = -1
- 'DtMovimientos.Rows.Add(drtt)
-
+ Next
+
ObjNomina.Dispose()
ObjConta.Dispose()
@@ -809,20 +797,8 @@ Partial Class Bancos_PolizaCheque
If UsuarioActual.CveEmpresa = 119 Then
e.Row.FCLiteral("LtlSP").Visible = False
e.Row.FCDropDownList("DdlSubProyecto").Visible = True
- End If
- 'cuando se modifica el importe de la cuenta bancaria que se actualice el importe del documento
- 'If e.Row.DBCampo("EsComodin") = "1" Then
- ' If e.Row.DBCampo("TipoMovto") = "1" Then
- ' e.Row.FCTextBox("TxtAbono").Attributes.Add("onkeyup", "FncImporte('TxtImporte',this.id,2)")
- ' e.Row.FCTextBox("TxtAbono").Text = TxtImporte.Text
- ' Else
- ' e.Row.FCTextBox("TxtCargo").Attributes.Add("onkeyup", "FncImporte('TxtImporte',this.id,2)")
- ' e.Row.FCTextBox("TxtCargo").Text = TxtImporte.Text
- ' End If
- ' TxtImporte.Attributes.Add("onkeyup", String.Format("FncImporte(this.id,'{0}',1)", e.Row.FCTextBox(If(e.Row.DBCampo("TipoMovto") = "1", "TxtAbono", "TxtCargo")).ClientID))
-
- ' UPPImporte.Update()
- 'End If
+ End If
+
End If
End Sub
@@ -966,7 +942,7 @@ Partial Class Bancos_PolizaCheque
Importe = Importe * TC
End If
- If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, Referencia, gvr.DataKey("CveConcepto").ToEntero, TxtObservaciones.Text, Now, gvr.DataKey("IDCuenta").ToEntero, -1, CveIE, CveProveedor:=CveProveedor, CveSubProyecto:=gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero, CvePersonal:=gvr.DataKey("CvePersonal").ToEntero, ImporteMX:=Importe, TipoCambio:=TC) Then
+ If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, Referencia, gvr.DataKey("CveConcepto").ToEntero, TxtObservaciones.Text, Now, gvr.DataKey("IDCuenta").ToEntero, -1, CveIE, CveProveedor:=CveProveedor, CveSubProyecto:=gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero, CvePersonal:=gvr.DataKey("CvePersonal").ToEntero, ImporteMX:=Importe, TipoCambio:=TC, CveCuenta:=gvr.DataKey("CveCuenta").ToEntero) Then
MsgError = "no se pudo insertar el detalle de la póliza2"
End If
@@ -1009,12 +985,6 @@ Partial Class Bancos_PolizaCheque
MsgError = "No se insertó el encabezado"
End If
- 'If ChkContabilizar.Checked AndAlso UsuarioActual.Empresa.UsaContabilidad Then
- ' If Not ObjIE.UpdateIEPrePoliza(TxtFechaDocumento.Text.ToDate, NumPoliza.ToString, IDPoliza, CvePrePoliza, CveIE, 0) Then
- ' MsgError = "Error al actualizar la poliza"
- ' End If
- 'End If
-
Catch ex As Exception
MsgError = "Error"
End Try
@@ -1030,20 +1000,17 @@ Partial Class Bancos_PolizaCheque
End If
End If
-
'El movimiento 2 es el de Pago
If UsuarioActual.Empresa.Funcionalidad(200) = "1" And MsgError = "" Then
- If idCuentaContabilizacion > 0 Then
- If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then
- 'Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion)
- IDPoliza = ObjMov.ContaIdPoliza
- Else
- MsgError = "Error al contabilizar"
- Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError)
- End If
+
+ If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then
+ 'Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion)
+ IDPoliza = ObjMov.ContaIdPoliza
Else
- Alert("No se puede contabilizar la Prepoliza debido a que una o mas cuentas son inválidas", TipoMensaje.MsgError)
+ MsgError = "Error al contabilizar"
+ Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError)
End If
+
End If
@@ -1067,7 +1034,15 @@ Partial Class Bancos_PolizaCheque
TxtImporte.Text = ""
TxtPagueseA.Text = ""
TxtObservaciones.Text = ""
- Alert($"El Movimiento se guardo correctamente
Movimiento ", CveIE)
+ If UsuarioActual.Empresa.TipoContabilidad = 1 Then
+ StrMsg.AppendFormat(" Ver Póliza", CvePrePoliza)
+ Else
+ StrMsg.AppendFormat(" Ver Póliza", ObjMov.ContaIdPoliza)
+ End If
+
+ Alert(StrMsg.ToString, TipoMensaje.MsgInformacion, "window.location.reload();")
Else
Alert(MsgError.ToString, TipoMensaje.MsgError)
ObjIE.RollBack()
@@ -1090,8 +1065,6 @@ Partial Class Bancos_PolizaCheque
Alert("La suma de los movimientos no son iguales", TipoMensaje.MsgAdvertencia)
End If
-
-
End Sub
'' -------------------------------------- codigo para generar la poliza del cheque
diff --git a/Bancos/PopIECompras.aspx.vb b/Bancos/PopIECompras.aspx.vb
index a5f621127..866df3a64 100644
--- a/Bancos/PopIECompras.aspx.vb
+++ b/Bancos/PopIECompras.aspx.vb
@@ -1402,11 +1402,15 @@ Partial Class Bancos_PopIECompras
'Tipos de cambio
If Pago.CveMonedaPago = 1 AndAlso CompraActual.CveMoneda = 2 Then 'Si la venta viene en Dolares y se va a pagar en Pesos
Pago.TCPago = TxtTipoCambio.Text.ToDecimal
+ Pago.TCCambioMoneda = 1 / TxtTipoCambio.Text.ToDecimal
ElseIf Pago.CveMonedaPago = 2 AndAlso CompraActual.CveMoneda = 2 Then 'Si la venta viene en Dolares y se va a pagar en DOLARES
Pago.TCPago = TxtTipoCambio.Text.ToDecimal
ElseIf Pago.CveMonedaPago = 2 AndAlso CompraActual.CveMoneda = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES
Pago.TCPago = TxtTipoCambio.Text.ToDecimal
+ Pago.TCCambioMoneda = TxtTipoCambio.Text.ToDecimal
End If
+ If ChkPagarPesos.Checked Then Pago.TCCambioMoneda = 1 / TxtTipoCambio.Text.ToDecimal
+ If ChkPagarDolares.Checked Then Pago.TCCambioMoneda = TxtTipoCambio.Text.ToDecimal
If TxtComision.Text.ToDecimal <> 0 Then Pago.OtroGastoIngreso = TxtComision.Text.ToDecimal Else Pago.OtroGastoIngreso = 0
@@ -1416,6 +1420,7 @@ Partial Class Bancos_PopIECompras
If Not CveIE > 0 Then
MsgError = "Ocurrio un Error al registrarse el movimiento bancario."
End If
+
'Importe de pago
Pago.ImportePago = ImportePagado
Pago.CveIE = CveIE
@@ -1473,8 +1478,6 @@ Partial Class Bancos_PopIECompras
Alert("No se encontro movimientos bancarios de personal", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
-
-
Dim saldo As Decimal = DtCheques.Rows(DDlCheques.SelectedIndex)("Saldo").ToString.ToDecimal
If TxtImporte.Text.ToDecimal > saldo Then
@@ -1503,6 +1506,8 @@ Partial Class Bancos_PopIECompras
Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero
Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal
Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal
+ If ChkPagarPesos.Checked Then Pago.TCCambioMoneda = 1 / rw.DataKey("TipoCambio").ToDecimal
+ If ChkPagarDolares.Checked Then Pago.TCCambioMoneda = rw.DataKey("TipoCambio").ToDecimal
If AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjMov) Then
MsgError = "No se pudo insertar la póliza"
@@ -1542,14 +1547,18 @@ Partial Class Bancos_PopIECompras
Exit Sub
End If
- For Each rw As GridViewRow In GvDeudores.Rows
+ For Each rw As GridViewRow In GvAcreedores.Rows
If rw.FCCheckBox("Chk").Checked AndAlso rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal <> 0 Then
+ Dim TCC As Decimal = 1
+ Pago = New CompraPago
+ If ChkPagarPesos.Checked Then Pago.TCCambioMoneda = 1 / TxtTipoCambio.Text.ToDecimal
+ If ChkPagarDolares.Checked Then Pago.TCCambioMoneda = TxtTipoCambio.Text.ToDecimal
Pago.CveIE = rw.DataKey("CveIE").ToEntero
Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero
Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal
- Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal
- Pago.CveProveedor = DdlDeudor.SelectedValue.ToEntero
- Pago.TipoPago = "DD"
+ Pago.TCPago = TxtTipoCambio.Text.ToDecimal
+ Pago.CveProveedor = DdlAcreedor.SelectedValue.ToEntero
+ Pago.TipoPago = "Egsc"
If AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjMov) Then
MsgError = "No se pudo insertar la póliza"
Else
@@ -1624,9 +1633,14 @@ Partial Class Bancos_PopIECompras
If ObjConta IsNot Nothing Then ObjConta.Commit()
Dim StrMsg As New StringBuilder
StrMsg.Append("El Documento se guardó correctamente. ")
- If TipoTransaccion = "Egs" AndAlso CveIE > 0 Then GeneraChequePDF(CveIE, UsuarioActual.Empresa)
- If IdPoliza > 0 AndAlso UsuarioActual.Empresa.TipoContabilidad = 2 Then StrMsg.AppendFormat(" Ver Póliza", IdPoliza)
-
+ If TipoTransaccion = "Egs" AndAlso CveIE > 0 Then GeneraChequePDF(CveIE, UsuarioActual.Empresa)
+ If UsuarioActual.Empresa.TipoContabilidad = 1 Then
+ StrMsg.AppendFormat("
Ver Póliza", CvePrePoliza)
+ Else
+ If IdPoliza > 0 Then
+ StrMsg.AppendFormat("
Ver Póliza", IdPoliza)
+ End If
+ End If
If RBLContado.SelectedValue.ToEntero = 6 And ChkEmitirComplementoPago.Checked Then GeneraTimbre(CvePrePoliza) Else Alert(StrMsg.ToString, TipoMensaje.MsgInformacion, "self.parent.tb_remove();self.parent.location.reload();")
EnviarCorreoNotificacion(CveIE, NotificarA, "", UsuarioActual, False)
diff --git a/Bancos/PopIEVentas.aspx.vb b/Bancos/PopIEVentas.aspx.vb
index 28ee2316a..2e1f84392 100644
--- a/Bancos/PopIEVentas.aspx.vb
+++ b/Bancos/PopIEVentas.aspx.vb
@@ -3402,17 +3402,14 @@ Partial Class Bancos_PopIEVentas
'Conta ContPAQ
If UsuarioActual.Empresa.Funcionalidad(200) = "1" And MsgError = "" Then
- If idCuentaContabilizacion > 0 Then
- If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then
- IdPoliza = ObjMov.ContaIdPoliza
- ' Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion)
- Else
- Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico")
- End If
+ If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then
+ IdPoliza = ObjMov.ContaIdPoliza
+ ' Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion)
Else
- Alert(String.Format("No se puede contabilizar la Prepoliza debido a que las siguientes cuentas son invalidas: {0}", CuentasContablesInvalidas))
+ Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico")
End If
+
End If
End If
@@ -3461,11 +3458,12 @@ Partial Class Bancos_PopIEVentas
If IdPoliza > 0 Then
StrMsg.AppendFormat(" Ver Póliza", IdPoliza)
End If
+ If UsuarioActual.Empresa.TipoContabilidad = 1 Then
+ StrMsg.AppendFormat(" Póliza: {1} ", CvePrePoliza, ObjMov.ContaFolio)
+ End If
Alert($"{StrMsg.ToString} ", TipoMensaje.MsgInformacion, "self.parent.tb_remove();self.parent.location.reload();")
- 'Limpiar
- 'LimpiarTodo()
Else
ObjIE.RollBack()
Alert(MsgError, TipoMensaje.MsgError)
diff --git a/Bancos/PrestamoPersonal.aspx.cs b/Bancos/PrestamoPersonal.aspx.cs
index a1d223eb4..4e65de59d 100644
--- a/Bancos/PrestamoPersonal.aspx.cs
+++ b/Bancos/PrestamoPersonal.aspx.cs
@@ -453,12 +453,21 @@ public partial class Bancos_PrestamoPersonal : ClsPaginas
// Msg.AppendFormat(@"
", IDPoliza)
Dim Mensaje As String = String.Format(" El Documento se generó correctamente.
Descargas:
{0}
", Msg.ToString)
diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx
index 17f32de8d..2e2d188fe 100644
--- a/Compras/Compras.aspx
+++ b/Compras/Compras.aspx
@@ -5897,15 +5897,16 @@
txtvalue = ToDouble(txtvalue * TCAnticipo);
importevalue = ToDouble(importevalue * TCAnticipo);
}
- }
+ }
+ else { TCC = 1; }
var DifSaldo = (TotalSaldoCompra - FnSumaValoresAnt()).toFixed(2); // le agrego lo del valor actual para validarlo
if (t.checked)
{
if (DifSaldo > importevalue) {
- txt.value = ToDouble(importevalue*TCC).toFixed(2);
+ txt.value = toFixed(ToDouble(importevalue*TCC),2);
} else {
- txt.value = ToDouble(DifSaldo*TCC).toFixed(2);
+ txt.value = toFixed(ToDouble(DifSaldo*TCC),2);
}
} else {
txt.value = "";
@@ -5914,7 +5915,7 @@
$("#LblTotalAnticipos").text(FormatoNumero(FnSumaValoresAnt(), 2));
$("#LblAplicadoCompraAnt").text(FormatoNumero(FnSumaValoresAnt(), 2));
$("#LblAplicadoCompraAntComision").text(FormatoNumero(FnSumaValoresAntComisiones(), 2));
- $("#LblSaldoFactura").text(FormatoNumero(TotalSaldo - FnSumaValoresAnt(), 2));
+ $("#LblSaldoFactura").text(FormatoNumero(TotalSaldoCompra - FnSumaValoresAnt(), 2));
}
@@ -5948,7 +5949,7 @@
txtvalue = ToDouble(txtvalue * TCAnticipo);
}
- var SaldoCompra = (TotalSaldo - FnSumaValoresAnt() + ToDouble(txtvalue)).toFixed(2); // le agrego lo del valor actual para validarlo //parseFloat(parseFloat($get('HdnCompraSaldo').value).toFixed(2));
+ var SaldoCompra = toFixed(TotalSaldo - FnSumaValoresAnt() + ToDouble(txtvalue),2); // le agrego lo del valor actual para validarlo //parseFloat(parseFloat($get('HdnCompraSaldo').value).toFixed(2));
if (SaldoCompra < 0) txt.value = SaldoCompra - txtvalue;
//minimo entre saldocompra y el saldoanticipo
@@ -5971,6 +5972,11 @@
$("#LblSaldoFactura").text(FormatoNumero(TotalSaldo - FnSumaValoresAnt(), 2));
}
+ //funcion para truncar en lugar de redondear
+ function toFixed(num, fixed) {
+ var re = new RegExp('^-?\\d+(?:\.\\d{0,' + (fixed || -1) + '})?');
+ return num.toString().match(re)[0];
+ }
function FnSumaValoresAnt() {
var totalPoints = 0;
diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb
index 18d4f15da..a83716886 100644
--- a/Compras/Compras.aspx.vb
+++ b/Compras/Compras.aspx.vb
@@ -747,14 +747,7 @@ Partial Class Compras_Compras
ViewState("CveCompraRefacturacion") = value
End Set
End Property
- Private Property EmpresaPrueba As Boolean
- Get
- Return CBool(ViewState("EmpresaPrueba"))
- End Get
- Set(value As Boolean)
- ViewState("EmpresaPrueba") = value
- End Set
- End Property
+
Private Property StringProrrateo As String
Get
Return ViewState("StringProrrateo").ToString
@@ -1252,19 +1245,13 @@ Partial Class Compras_Compras
'VALIDACION DE XML
NuevaValidacionXML = IfNull(Request("NuevaValidacionXML"), 0).ToString.ToEntero
-
IdVale = New List(Of Integer)
-
ListaDocumentos = New List(Of String)
- 'If UsuarioActual.Empresa.Funcionalidad(207) = "1" Then 'Esquema nuevo PrePolizas
- If Not UsuarioActual.Empresa.UsaAC Then
- EmpresaPrueba = True
- TotalGeneral = 0
+ TotalGeneral = 0
CompraSaldo = 0
- ViewState("CvePersonal") = -1
- IdCuentaBancaria = 0
- End If
+ ViewState("CvePersonal") = -1
+ IdCuentaBancaria = 0
IdCuentaBancariaComplementaria = 0
@@ -2761,10 +2748,8 @@ Partial Class Compras_Compras
ImgAddObs.Visible = True
ChkAplicaNotaCredito.Checked = CBool(dr("AplicaNotaCredito").ToString)
- CompraSaldo = TotalGeneral - LblAmortizacion.Text.ToDouble
- If EmpresaPrueba Then
- CompraSaldo = dr("Saldo").ToString.ToDouble
- End If
+ 'CompraSaldo = TotalGeneral - LblAmortizacion.Text.ToDouble
+ CompraSaldo = dr("Saldo").ToString.ToDouble
If CompraSaldo > dr("Saldo").ToString.ToDouble Then
CompraSaldo = dr("Saldo").ToString.ToDouble
@@ -4643,31 +4628,20 @@ Partial Class Compras_Compras
Alert("El Importe seleccionado es mayor a la compra", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
-
End If
If RBLContado.SelectedValue = "2" AndAlso DdlFuncionarioEmpleado.SelectedValue.ToEntero > 0 Then
- If EmpresaPrueba Then
- If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then
- CvePlantillaPrePoliza = 60
- Else
- CvePlantillaPrePoliza = 1
- End If
+ If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then
+ CvePlantillaPrePoliza = 60
Else
- CvePlantillaPrePoliza = 9
+ CvePlantillaPrePoliza = 1
End If
End If
- 'If RBLPago.SelectedValue.ToEntero = 4 And UsuarioActual.CveEmpresa.Contiene(1, 7) Then
- ' CvePlantillaPrePoliza = 69
- 'End If
-
TmpDT.AcceptChanges()
If Correcto Then
-
-
Dim ObjCompras As New ClsCompras()
Dim ObjConta As New ClsContabilidad(ObjCompras.IniciaTransacSQL())
Dim ObjIE As New ClsBancos(ObjCompras.IniciaTransacSQL)
@@ -5732,9 +5706,8 @@ Partial Class Compras_Compras
CveProveedorConcepto = DdlAcreedor.SelectedValue.ToEntero
CveConceptoAfectacion = 41
- If EmpresaPrueba Then
- CveIE = If(DdlAcreedorDetalle.SelectedValue.ToEntero = -2, -1, DdlAcreedorDetalle.SelectedValue.ToEntero)
- End If
+ CveIE = If(DdlAcreedorDetalle.SelectedValue.ToEntero = -2, -1, DdlAcreedorDetalle.SelectedValue.ToEntero)
+
End Select
End If
@@ -5833,317 +5806,243 @@ Partial Class Compras_Compras
TipoMovimientoImpuestos = Not TipoMovimientoImpuestos
End If
- If EmpresaPrueba Then 'Empresa Prueba
+ Dim PorcentajePagos As Decimal = 0
+ Dim sumaPagos As Decimal = 0
+ Dim tipoCambioActual As Decimal
+ Dim alertaContabilizacion As String = "Se enviaron correctamente las siguientes pólizas:
"
+ Dim idCuentaContabilizacion As Long = 1
+ Dim CveCuentaContabilizacion As Long = 1
+ Dim FechaMovimiento As Date = TxtFecha.Text.ToDate
+ Dim DT As DataTable = Nothing
+ Dim CuentasContablesInvalidas As New StringBuilder
+ Dim ConceptoPersonal As String = ""
+ Dim IdCtaIVAXAcreditar As Integer = 0
+ ' Dim IdCtaIVAAcreditable As Integer = 0
+ Dim GuardoConcepto18 As Boolean = False
- Dim PorcentajePagos As Decimal = 0
- Dim sumaPagos As Decimal = 0
- Dim tipoCambioActual As Decimal
- Dim alertaContabilizacion As String = "Se enviaron correctamente las siguientes pólizas:
"
- Dim idCuentaContabilizacion As Long = 1
- Dim CveCuentaContabilizacion As Long = 1
- Dim FechaMovimiento As Date = TxtFecha.Text.ToDate
- Dim DT As DataTable = Nothing
- Dim CuentasContablesInvalidas As New StringBuilder
- Dim ConceptoPersonal As String = ""
- Dim IdCtaIVAXAcreditar As Integer = 0
- ' Dim IdCtaIVAAcreditable As Integer = 0
- Dim GuardoConcepto18 As Boolean = False
+ 'If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows.Count > 0 Then
+ ' IdCtaIVAXAcreditar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero
+ ' ' IdCtaIVAAcreditable = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero
+ 'End If
- 'If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows.Count > 0 Then
- ' IdCtaIVAXAcreditar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero
- ' ' IdCtaIVAAcreditable = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero
- 'End If
+ '********************** Variables '**********************
- '********************** Variables '**********************
+ '****** Pagos
- '****** Pagos
+ 'Bancos (30)
+ Dim importeBanco As Decimal = 0
+ If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "1" AndAlso (Not DivTarjeta.Visible Or DdlTarjeta.SelectedValue.ToEntero = -1) Then
+ importeBanco = TxtDocumentoImporte.Text.ToDecimal
+ sumaPagos += importeBanco
+ End If
- 'Bancos (30)
- Dim importeBanco As Decimal = 0
- If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "1" AndAlso (Not DivTarjeta.Visible Or DdlTarjeta.SelectedValue.ToEntero = -1) Then
- importeBanco = TxtDocumentoImporte.Text.ToDecimal
- sumaPagos += importeBanco
+ 'Caja Chica (30)
+ Dim importeCajaChica As Decimal = 0
+ If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "6" Then
+ importeCajaChica = TxtDocumentoImporteCaja.Text.ToDecimal
+ sumaPagos += importeCajaChica
+ End If
+
+ 'Funcionarios y Empleados (29)
+ Dim importeFE As Decimal = 0
+ If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "2" Then
+ ViewState("CvePersonal") = DdlFuncionarioEmpleado.SelectedValue.ToEntero
+ ConceptoPersonal = DdlFuncionarioEmpleado.SelectedItem.ToString
+ importeFE = TxtDocumentoImporteFE.Text.ToDecimal
+ sumaPagos += importeFE
+ End If
+
+ 'Deudores (37)
+ Dim importeDD As Decimal = 0
+ Dim OtrosGastosIngresos As Decimal = 0
+ If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "4" Then
+ ConceptoPersonal = DdlDeudor.SelectedItem.ToString
+ importeDD = TxtContadoDeudor.Text.ToDecimal
+ OtrosGastosIngresos = TxtDeudoresOtrosGastosIngresos.Text.ToDecimal
+ sumaPagos += importeDD
+ End If
+
+ 'Acreedores (41) SinTarjeta
+ Dim importeAcreedores As Decimal = 0
+ If (CveIE > 0 Or DdlAcreedorDetalle.SelectedValue.ToEntero = -2) AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "5" Then
+ ConceptoPersonal = DdlAcreedor.SelectedItem.ToString
+ importeAcreedores = TxtContadoAcreedor.Text.ToDecimal
+ sumaPagos += importeAcreedores
+ End If
+
+ 'Acreedores (42) ConTarjeta
+ Dim importeAcreedoresTarjeta As Decimal = 0
+ If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "1" AndAlso DivTarjeta.Visible AndAlso DdlTarjeta.SelectedValue.ToEntero > 0 Then
+ ConceptoPersonal = DdlTarjeta.SelectedItem.ToString
+ importeAcreedoresTarjeta = TxtDocumentoImporte.Text.ToDecimal
+ sumaPagos += importeAcreedoresTarjeta
+ End If
+
+ 'Creditos/Documentos (59)
+ Dim importeCreditos As Decimal = 0
+ Dim CveIECreditos = -1
+ If RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "3" AndAlso DdlTipoCredito.SelectedValue.ToEntero = 2 Then
+ If ObjIE.GetCreditosDetalle(DdlCredito.SelectedValue.ToEntero, -1) Then
+ CveIECreditos = ObjIE.DtResultados.FiltroPrimero($"CveCreditoDetalle = {DdlCreditoDetalle.SelectedValue.ToEntero}")("CveIE").ToString.ToEntero
End If
+ ConceptoPersonal = DdlCredito.SelectedItem.ToString
+ importeCreditos = TxtTotal.Text.ToDecimal
+ sumaPagos += importeCreditos
+ End If
- 'Caja Chica (30)
- Dim importeCajaChica As Decimal = 0
- If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "6" Then
- importeCajaChica = TxtDocumentoImporteCaja.Text.ToDecimal
- sumaPagos += importeCajaChica
- End If
+ PorcentajePagos = If(TxtTotal.Text.ToDecimal > 0, sumaPagos / TxtTotal.Text.ToDecimal, 0)
- 'Funcionarios y Empleados (29)
- Dim importeFE As Decimal = 0
- If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "2" Then
- ViewState("CvePersonal") = DdlFuncionarioEmpleado.SelectedValue.ToEntero
- ConceptoPersonal = DdlFuncionarioEmpleado.SelectedItem.ToString
- importeFE = TxtDocumentoImporteFE.Text.ToDecimal
- sumaPagos += importeFE
- End If
+ '****** Acreditables
- 'Deudores (37)
- Dim importeDD As Decimal = 0
- Dim OtrosGastosIngresos As Decimal = 0
- If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "4" Then
- ConceptoPersonal = DdlDeudor.SelectedItem.ToString
- importeDD = TxtContadoDeudor.Text.ToDecimal
- OtrosGastosIngresos = TxtDeudoresOtrosGastosIngresos.Text.ToDecimal
- sumaPagos += importeDD
- End If
+ 'IVA Acreditable (19)
+ Dim importeIVAAcreditable As Decimal = 0
+ importeIVAAcreditable = TxtIVA.Text.ToDecimal * PorcentajePagos
- 'Acreedores (41) SinTarjeta
- Dim importeAcreedores As Decimal = 0
- If (CveIE > 0 Or DdlAcreedorDetalle.SelectedValue.ToEntero = -2) AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "5" Then
- ConceptoPersonal = DdlAcreedor.SelectedItem.ToString
- importeAcreedores = TxtContadoAcreedor.Text.ToDecimal
- sumaPagos += importeAcreedores
- End If
+ 'IEPS Acreditable (26)
+ Dim ImporteIEPSAcreditable As Decimal = 0
+ ImporteIEPSAcreditable = TxtIEPS.Text.ToDecimal * PorcentajePagos
- 'Acreedores (42) ConTarjeta
- Dim importeAcreedoresTarjeta As Decimal = 0
- If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "1" AndAlso DivTarjeta.Visible AndAlso DdlTarjeta.SelectedValue.ToEntero > 0 Then
- ConceptoPersonal = DdlTarjeta.SelectedItem.ToString
- importeAcreedoresTarjeta = TxtDocumentoImporte.Text.ToDecimal
- sumaPagos += importeAcreedoresTarjeta
- End If
+ 'RetIVA Acrediable (22)
+ Dim importeRetIVAAcreditable As Decimal = 0
+ importeRetIVAAcreditable = TxtRetIVA.Text.ToDecimal * PorcentajePagos
- 'Creditos/Documentos (59)
- Dim importeCreditos As Decimal = 0
- Dim CveIECreditos = -1
- If RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "3" AndAlso DdlTipoCredito.SelectedValue.ToEntero = 2 Then
- If ObjIE.GetCreditosDetalle(DdlCredito.SelectedValue.ToEntero, -1) Then
- CveIECreditos = ObjIE.DtResultados.FiltroPrimero($"CveCreditoDetalle = {DdlCreditoDetalle.SelectedValue.ToEntero}")("CveIE").ToString.ToEntero
- End If
- ConceptoPersonal = DdlCredito.SelectedItem.ToString
- importeCreditos = TxtTotal.Text.ToDecimal
- sumaPagos += importeCreditos
- End If
-
- PorcentajePagos = If(TxtTotal.Text.ToDecimal > 0, sumaPagos / TxtTotal.Text.ToDecimal, 0)
-
- '****** Acreditables
-
- 'IVA Acreditable (19)
- Dim importeIVAAcreditable As Decimal = 0
- importeIVAAcreditable = TxtIVA.Text.ToDecimal * PorcentajePagos
-
- 'IEPS Acreditable (26)
- Dim ImporteIEPSAcreditable As Decimal = 0
- ImporteIEPSAcreditable = TxtIEPS.Text.ToDecimal * PorcentajePagos
-
- 'RetIVA Acrediable (22)
- Dim importeRetIVAAcreditable As Decimal = 0
- importeRetIVAAcreditable = TxtRetIVA.Text.ToDecimal * PorcentajePagos
-
- 'RetISR Acreditable (23)
- Dim importeRetISRAcreditable As Decimal = 0
- importeRetISRAcreditable = TxtRetISR.Text.ToDecimal * PorcentajePagos
+ 'RetISR Acreditable (23)
+ Dim importeRetISRAcreditable As Decimal = 0
+ importeRetISRAcreditable = TxtRetISR.Text.ToDecimal * PorcentajePagos
- '****** Movimientos Independientes
+ '****** Movimientos Independientes
- 'Pago Proveedores (17)
- Dim importePagoProv As Decimal = 0
- importePagoProv = sumaPagos
+ 'Pago Proveedores (17)
+ Dim importePagoProv As Decimal = 0
+ importePagoProv = sumaPagos
- 'Proveedores (5)
- Dim importeProv As Decimal = 0
- importeProv = TxtTotal.Text.ToDecimal
+ 'Proveedores (5)
+ Dim importeProv As Decimal = 0
+ importeProv = TxtTotal.Text.ToDecimal
- 'Nota de Credito (18)
- Dim importeNC As Decimal = 0
- If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then
- importeNC = TxtTotal.Text.ToDecimal
- End If
+ 'Nota de Credito (18)
+ Dim importeNC As Decimal = 0
+ If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then
+ importeNC = TxtTotal.Text.ToDecimal
+ End If
- '**************************************************************************************************************************
+ '**************************************************************************************************************************
- Dim TipoCambioCompra As Decimal = 1
- TipoCambioCompra = GlobalTipoCambio(FechaMovimiento).ToString.ToDecimal
- TipoCambioCompra = If(DivTC.Visible, TipoCambio, TipoCambioCompra)
+ Dim TipoCambioCompra As Decimal = 1
+ TipoCambioCompra = GlobalTipoCambio(FechaMovimiento).ToString.ToDecimal
+ TipoCambioCompra = If(DivTC.Visible, TipoCambio, TipoCambioCompra)
- If CveMonedaPago = 1 AndAlso DdlMoneda.SelectedValue.ToEntero = 1 Then
- TipoCambioCompra = 1
- End If
+ If CveMonedaPago = 1 AndAlso DdlMoneda.SelectedValue.ToEntero = 1 Then
+ TipoCambioCompra = 1
+ End If
- If DdlMoneda.SelectedValue.ToString.ToEntero = 2 Then
- tipoCambioActual = GlobalTipoCambio(FechaMovimiento).ToString.ToDecimal
- tipoCambioActual = If(DivTC.Visible, TipoCambio, tipoCambioActual)
- Else
- tipoCambioActual = 1
- End If
+ If DdlMoneda.SelectedValue.ToString.ToEntero = 2 Then
+ tipoCambioActual = GlobalTipoCambio(FechaMovimiento).ToString.ToDecimal
+ tipoCambioActual = If(DivTC.Visible, TipoCambio, tipoCambioActual)
+ Else
+ tipoCambioActual = 1
+ End If
- 'CASO ESPECIAL CREDITOS
- If CveIECreditos > 0 Then
- CveIE = CveIECreditos
- 'Dim CveIEProvisional = CveIE
- End If
+ 'CASO ESPECIAL CREDITOS
+ If CveIECreditos > 0 Then
+ CveIE = CveIECreditos
+ 'Dim CveIEProvisional = CveIE
+ End If
- If ObjConta.GetPlantillaConceptos(UsuarioActual.CveEmpresa, CvePlantillaPrePoliza) Then
+ If ObjConta.GetPlantillaConceptos(UsuarioActual.CveEmpresa, CvePlantillaPrePoliza) Then
- Dim DTPlatilla As New DataTable
- DTPlatilla = ObjConta.DtResultados
+ Dim DTPlatilla As New DataTable
+ DTPlatilla = ObjConta.DtResultados
- For Each Row As DataRow In DTPlatilla.Rows
+ For Each Row As DataRow In DTPlatilla.Rows
- Dim CveSubProyectoInsertar As Integer = CveSubProyectoPrincipal
- Dim ConceptoContable As Integer = Row("CveConcepto").ToString.ToEntero
+ Dim CveSubProyectoInsertar As Integer = CveSubProyectoPrincipal
+ Dim ConceptoContable As Integer = Row("CveConcepto").ToString.ToEntero
- Dim TipoMovimiento As Boolean = If(Row("TipoMovto").ToString = "True", True, False)
- Dim importeMovimiento As Decimal = 0
- Dim IdCtaContable As Integer = 0
- Dim Concepto As String = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, ConceptoContable, NombreProveedor, $"{TxtSerie.Text}-{TxtFolio.Text}", If(TxtDocumentoFolio.Visible, TxtDocumentoFolio.Text, If(TxtDocumentoFolioCaja.Visible, TxtDocumentoFolioCaja.Text, ConceptoPersonal)))
- Dim importeMN As Decimal = 0
+ Dim TipoMovimiento As Boolean = If(Row("TipoMovto").ToString = "True", True, False)
+ Dim importeMovimiento As Decimal = 0
+ Dim IdCtaContable As Integer = 0
+ Dim Concepto As String = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, ConceptoContable, NombreProveedor, $"{TxtSerie.Text}-{TxtFolio.Text}", If(TxtDocumentoFolio.Visible, TxtDocumentoFolio.Text, If(TxtDocumentoFolioCaja.Visible, TxtDocumentoFolioCaja.Text, ConceptoPersonal)))
+ Dim importeMN As Decimal = 0
- Dim Multiplicador As Integer = Row("Multiplicador").ToString.ToEntero ' If(Row("Multiplicador").ToString.ToEntero = 1, -1, 1)
+ Dim Multiplicador As Integer = Row("Multiplicador").ToString.ToEntero ' If(Row("Multiplicador").ToString.ToEntero = 1, -1, 1)
- Dim Referencia As String = $"{TxtSerie.Text}-{TxtFolio.Text}" ' concatenation interpolation
- Dim PorcentajeImpuesto As Decimal = 0
- CveConceptoOriginal = ConceptoContable
+ Dim Referencia As String = $"{TxtSerie.Text}-{TxtFolio.Text}" ' concatenation interpolation
+ Dim PorcentajeImpuesto As Decimal = 0
+ CveConceptoOriginal = ConceptoContable
- Select Case ConceptoContable
+ Select Case ConceptoContable
- Case 17 'Pago Proveedores
+ Case 17 'Pago Proveedores
- If CveTipoConcepto = 2 Then ConceptoContable = 308 'cuando es acreedor
- If CveMoneda <> 1 Then
- Select Case ConceptoContable
- Case 17
- ConceptoContable = 312
- Case 308
- ConceptoContable = 309
- Case Else
- End Select
- End If
+ If CveTipoConcepto = 2 Then ConceptoContable = 308 'cuando es acreedor
+ If CveMoneda <> 1 Then
+ Select Case ConceptoContable
+ Case 17
+ ConceptoContable = 312
+ Case 308
+ ConceptoContable = 309
+ Case Else
+ End Select
+ End If
- importeMovimiento = importePagoProv
- If CveMonedaPago = 2 AndAlso DdlMoneda.SelectedValue.ToEntero = 1 Then
- importeMovimiento = importeMovimiento / TipoCambioCompra
- End If
- importeMN = importeMovimiento * TipoCambioCompra * Multiplicador
- IdCtaContable = If(CveTipoConcepto = 2, CtaProveedorAcreedores, CtaProveedor)
+ importeMovimiento = importePagoProv
+ If CveMonedaPago = 2 AndAlso DdlMoneda.SelectedValue.ToEntero = 1 Then
+ importeMovimiento = importeMovimiento / TipoCambioCompra
+ End If
+ importeMN = importeMovimiento * TipoCambioCompra * Multiplicador
+ IdCtaContable = If(CveTipoConcepto = 2, CtaProveedorAcreedores, CtaProveedor)
- If RBLPago.SelectedValue.ToEntero = 4 And EstatusCredito.Contiene(2, 102) Then 'SI ES CRÉDITO Y ESTA PAGADO
+ If RBLPago.SelectedValue.ToEntero = 4 And EstatusCredito.Contiene(2, 102) Then 'SI ES CRÉDITO Y ESTA PAGADO
- For Each Row2 As DataRow In TmpDT.Rows
-
- importeMovimiento = TxtTotal.Text.ToDecimal 'TmpDT.SUM("Total", String.Format("ISNULL(TipoAF, 0) <> 2 And ISNULL(CveAlmacen, 0) = 0 And ISNULL(AplicaCostoIndirecto, 0) <> 1 And CveClasificacion = {0} And CveSubProyecto = {1} And ISNULL(CveTipoGasto, 0) = {2} Then", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador
- 'CLASIFICACION
- If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso Row2("CveClasificacion").ToString.ToEntero > 0 Then
- If ObjConta.GetRetCuenta(6, Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero) Then
- If ObjConta.DtResultados.Rows.Count > 0 AndAlso ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero
- Else
- IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToString.ToEntero
- End If
- End If
- 'AGREGA MOVIMIENTO
- If importeMovimiento <> 0 Then
- 'Conta ContPAQ
- If IdCtaContable = 0 Then
- CuentasContablesInvalidas.Append(" " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 6))("ConceptoContable").ToString)
- idCuentaContabilizacion = 0
- End If
+ For Each Row2 As DataRow In TmpDT.Rows
+ importeMovimiento = TxtTotal.Text.ToDecimal 'TmpDT.SUM("Total", String.Format("ISNULL(TipoAF, 0) <> 2 And ISNULL(CveAlmacen, 0) = 0 And ISNULL(AplicaCostoIndirecto, 0) <> 1 And CveClasificacion = {0} And CveSubProyecto = {1} And ISNULL(CveTipoGasto, 0) = {2} Then", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador
+ 'CLASIFICACION
+ If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso Row2("CveClasificacion").ToString.ToEntero > 0 Then
+ If ObjConta.GetRetCuenta(6, Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero) Then
+ If ObjConta.DtResultados.Rows.Count > 0 AndAlso ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero
+ Else
+ IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToString.ToEntero
End If
End If
+ 'AGREGA MOVIMIENTO
+ If importeMovimiento <> 0 Then
+ 'Conta ContPAQ
+ If IdCtaContable = 0 Then
+ CuentasContablesInvalidas.Append(" " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 6))("ConceptoContable").ToString)
+ idCuentaContabilizacion = 0
+ End If
- Next
-
- Dim CveClasificacionDT As Integer = -1
- Dim CveSubProyectoDT As Integer = -1
- Dim CveTipoGastoDT As Integer = -1
-
- If TmpDT.Rows.Count > 0 Then
- CveClasificacionDT = TmpDT(0)("CveClasificacion").ToString.ToEntero
- CveSubProyectoDT = TmpDT(0)("CveSubProyecto").ToString.ToEntero
- CveTipoGastoDT = TmpDT(0)("CveTipoGasto").ToString.ToEntero
- End If
-
- Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
-
- Dim ImporteSubCre As Decimal = TxtSubTotal.Text.ToDecimal
- Dim ImporteSubCreMN As Decimal = TxtSubTotal.Text.ToDecimal * tipoCambioActual
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteSubCre, ImporteSubCreMN, 6, Referencia, Concepto, IdCtaContable, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, ImporteSubCre), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- End If
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimiento, importeMN, 41, Referencia, Concepto, CtaProveedorAcreedores, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- End If
-
- If importeMovimiento <> 0 Then
- Dim Pago As New CompraPago
- Pago.ImportePago = importeMovimiento
- Pago.CveIE = CveIE
- Pago.CveMonedaPago = 1
- Pago.CveCompraAmortizacion = -1
- Pago.CveCreditoDetalle = CveCreditoDetalle
- 'Pago.OtroGastoIngreso = OtrosGastosIngresos
-
- ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
-
- End If
-
- 'If TipoCreditoInteres Then
-
- ' Dim importeMovimientoIn As Decimal = ImporteIECredito - importeMovimiento
- ' Dim importeMNIn As Decimal = importeMovimientoIn * tipoCambioActual * Multiplicador
-
- ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimientoIn, importeMNIn, 41, Referencia, Concepto, CtaProveedorAcreedores, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoIn), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
- ' ErrorPrepoliza = True
- ' End If
- ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoIn, importeMNIn, 50, Referencia, Concepto, ViewState("IdCtaContDocsXPagar").ToString.ToEntero(), CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoIn), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
- ' ErrorPrepoliza = True
-
- ' End If
- 'End If
- End If
- importeMovimiento = 0 : importeMN = 0
- If TipoCambioCompra > 1 AndAlso DdlMoneda.SelectedValue.ToEntero <> 1 Then Concepto += $" TC{TipoCambioCompra} ${importeMovimiento.FormatoNumero(2)}"
-
- If TipoCambioCompra = 1 Or DdlMoneda.SelectedValue.ToEntero = 1 Then
- IdCtaContable = CtaProveedor
- importeMovimiento = importeMN
- Else
- IdCtaContable = CtaProveedorComplementaria
- If importeMovimiento <> 0 AndAlso (IdCtaContable > 0) Then 'Cuando tiene complementaria lo dividimos en dos
-
- Dim CveConceptoContableComplementaria As Integer = 206
- If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 310 'cuando es acreedor
-
- importeMN = importeMovimiento
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento * TipoCambioCompra - importeMovimiento, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * TipoCambioCompra - importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=TipoCambioCompra) Then
- ErrorPrepoliza = True
End If
End If
- IdCtaContable = CtaProveedorExtranjera
+ Next
+
+ Dim CveClasificacionDT As Integer = -1
+ Dim CveSubProyectoDT As Integer = -1
+ Dim CveTipoGastoDT As Integer = -1
+
+ If TmpDT.Rows.Count > 0 Then
+ CveClasificacionDT = TmpDT(0)("CveClasificacion").ToString.ToEntero
+ CveSubProyectoDT = TmpDT(0)("CveSubProyecto").ToString.ToEntero
+ CveTipoGastoDT = TmpDT(0)("CveTipoGasto").ToString.ToEntero
End If
- Case 30 'Bancos
- importeMovimiento = importeBanco + importeCajaChica 'Uno de los dos debe ser 0
- If CveMonedaPago = 2 AndAlso DdlMoneda.SelectedValue.ToEntero = 1 Then
- importeMovimiento = importeMovimiento / TCPago
+ Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
+
+ Dim ImporteSubCre As Decimal = TxtSubTotal.Text.ToDecimal
+ Dim ImporteSubCreMN As Decimal = TxtSubTotal.Text.ToDecimal * tipoCambioActual
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteSubCre, ImporteSubCreMN, 6, Referencia, Concepto, IdCtaContable, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, ImporteSubCre), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
End If
- importeMN = importeMovimiento * TCPago * Multiplicador
- If TCPago > 1 AndAlso CveMonedaPago <> 1 Then Concepto += $" TC{TCPago} ${importeMovimiento.FormatoNumero(2)}"
-
- If TCPago = 1 Or CveMonedaPago = 1 Then
- IdCtaContable = IdCuentaBancaria
- Else
- IdCtaContable = IdCuentaBancariaComplementaria
- If importeMovimiento <> 0 AndAlso (IdCtaContable > 0) Then 'Cuando tiene complementaria lo dividimos en dos
- importeMN = importeMovimiento
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento * TCPago - importeMovimiento, Referencia, 204, Concepto, FechaMovimiento, IdCtaContable, -1, CveIE, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * TCPago - importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=TCPago) Then
- ErrorPrepoliza = True
- End If
- End If
-
- IdCtaContable = IdCuentaBancaria
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimiento, importeMN, 41, Referencia, Concepto, CtaProveedorAcreedores, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
End If
If importeMovimiento <> 0 Then
@@ -6152,1151 +6051,1283 @@ Partial Class Compras_Compras
Pago.CveIE = CveIE
Pago.CveMonedaPago = 1
Pago.CveCompraAmortizacion = -1
- 'Pago.CveConceptoPago = CveConceptoPago
+ Pago.CveCreditoDetalle = CveCreditoDetalle
+ 'Pago.OtroGastoIngreso = OtrosGastosIngresos
ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
+
End If
- Case 14 'IVA X Acreditar
- importeMovimiento = CompraActual.IVA
- importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL
- If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}"
- PorcentajeImpuesto = PorcentajeIVA
- IdCtaContable = If(IdCtaIVAXAcreditar > 0, IdCtaIVAXAcreditar, 0)
+ 'If TipoCreditoInteres Then
- If chkImportacion.Checked Then
- ConceptoContable = 287
- End If
- If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) And Not IdCtaContable > 0 Then
- If ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIVAxAcreditar").ToString.ToEntero
+ ' Dim importeMovimientoIn As Decimal = ImporteIECredito - importeMovimiento
+ ' Dim importeMNIn As Decimal = importeMovimientoIn * tipoCambioActual * Multiplicador
+
+ ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimientoIn, importeMNIn, 41, Referencia, Concepto, CtaProveedorAcreedores, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoIn), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
+ ' ErrorPrepoliza = True
+ ' End If
+ ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoIn, importeMNIn, 50, Referencia, Concepto, ViewState("IdCtaContDocsXPagar").ToString.ToEntero(), CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoIn), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
+ ' ErrorPrepoliza = True
+
+ ' End If
+ 'End If
+ End If
+ importeMovimiento = 0 : importeMN = 0
+ If TipoCambioCompra > 1 AndAlso DdlMoneda.SelectedValue.ToEntero <> 1 Then Concepto += $" TC{TipoCambioCompra} ${importeMovimiento.FormatoNumero(2)}"
+
+ If TipoCambioCompra = 1 Or DdlMoneda.SelectedValue.ToEntero = 1 Then
+ IdCtaContable = CtaProveedor
+ importeMovimiento = importeMN
+ Else
+ IdCtaContable = CtaProveedorComplementaria
+ If importeMovimiento <> 0 AndAlso (IdCtaContable > 0) Then 'Cuando tiene complementaria lo dividimos en dos
+
+ Dim CveConceptoContableComplementaria As Integer = 206
+ If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 310 'cuando es acreedor
+
+ importeMN = importeMovimiento
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento * TipoCambioCompra - importeMovimiento, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * TipoCambioCompra - importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=TipoCambioCompra) Then
+ ErrorPrepoliza = True
End If
End If
- 'si aplica NC sobre mov de almacen, el impuesto lo toma de la Factura.para la consideracion de mcia en tránsito
- If ChkNCInvNC.Checked And CveMoneda > 1 AndAlso importeMovimiento > 0 Then
+ IdCtaContable = CtaProveedorExtranjera
+ End If
- Dim diferenciaTransito As Decimal = 0
- For Each Gvr As GridViewRow In GVNCInvAlmacen.Rows
- If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then
+ Case 30 'Bancos
+ importeMovimiento = importeBanco + importeCajaChica 'Uno de los dos debe ser 0
+ If CveMonedaPago = 2 AndAlso DdlMoneda.SelectedValue.ToEntero = 1 Then
+ importeMovimiento = importeMovimiento / TCPago
+ End If
+ importeMN = importeMovimiento * TCPago * Multiplicador
- 'Dim DifTC As Decimal = tipoCambioActual - Gvr.DataKey("TipoCambio").ToDecimal
- 'diferenciaTransito = DifTC * (Gvr.DataKey("IVA").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal)
- 'diferenciaTransito += DifTC * (Gvr.DataKey("IEPSPS").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal)
- importeMN = (Gvr.DataKey("IVA").ToDecimal.RoundSQL * Gvr.DataKey("TipoCambio").ToDecimal * Multiplicador).RoundSQL
- 'se registra por cada compra relacionada
+ If TCPago > 1 AndAlso CveMonedaPago <> 1 Then Concepto += $" TC{TCPago} ${importeMovimiento.FormatoNumero(2)}"
+
+ If TCPago = 1 Or CveMonedaPago = 1 Then
+ IdCtaContable = IdCuentaBancaria
+ Else
+ IdCtaContable = IdCuentaBancariaComplementaria
+ If importeMovimiento <> 0 AndAlso (IdCtaContable > 0) Then 'Cuando tiene complementaria lo dividimos en dos
+ importeMN = importeMovimiento
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento * TCPago - importeMovimiento, Referencia, 204, Concepto, FechaMovimiento, IdCtaContable, -1, CveIE, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * TCPago - importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=TCPago) Then
+ ErrorPrepoliza = True
+ End If
+ End If
+
+ IdCtaContable = IdCuentaBancaria
+ End If
+
+ If importeMovimiento <> 0 Then
+ Dim Pago As New CompraPago
+ Pago.ImportePago = importeMovimiento
+ Pago.CveIE = CveIE
+ Pago.CveMonedaPago = 1
+ Pago.CveCompraAmortizacion = -1
+ 'Pago.CveConceptoPago = CveConceptoPago
+
+ ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
+ End If
+
+ Case 14 'IVA X Acreditar
+ importeMovimiento = CompraActual.IVA
+ importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL
+ If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}"
+ PorcentajeImpuesto = PorcentajeIVA
+ IdCtaContable = If(IdCtaIVAXAcreditar > 0, IdCtaIVAXAcreditar, 0)
+
+ If chkImportacion.Checked Then
+ ConceptoContable = 287
+ End If
+ If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) And Not IdCtaContable > 0 Then
+ If ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIVAxAcreditar").ToString.ToEntero
+ End If
+ End If
+ 'si aplica NC sobre mov de almacen, el impuesto lo toma de la Factura.para la consideracion de mcia en tránsito
+
+ If ChkNCInvNC.Checked And CveMoneda > 1 AndAlso importeMovimiento > 0 Then
+
+ Dim diferenciaTransito As Decimal = 0
+ For Each Gvr As GridViewRow In GVNCInvAlmacen.Rows
+ If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then
+
+ 'Dim DifTC As Decimal = tipoCambioActual - Gvr.DataKey("TipoCambio").ToDecimal
+ 'diferenciaTransito = DifTC * (Gvr.DataKey("IVA").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal)
+ 'diferenciaTransito += DifTC * (Gvr.DataKey("IEPSPS").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal)
+ importeMN = (Gvr.DataKey("IVA").ToDecimal.RoundSQL * Gvr.DataKey("TipoCambio").ToDecimal * Multiplicador).RoundSQL
+ 'se registra por cada compra relacionada
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, 14, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=Gvr.DataKey("TipoCambio").ToDecimal, PorcentajeImpuesto:=PorcentajeImpuesto, Contabilizable:=SeContabiliza) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, 14, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=Gvr.DataKey("TipoCambio").ToDecimal, PorcentajeImpuesto:=PorcentajeImpuesto, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ End If
+ End If
+ Next
+ importeMovimiento = 0
+ importeMN = 0
+ End If
+
+ Case 25 'IEPS X Acreditar
+ If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then
+ 'CveSubProyectoInsertar = CveSubProyecto
+ importeMovimiento = CompraActual.IEPS
+ importeMN = Math.Round(importeMovimiento, 2) * tipoCambioActual * Multiplicador
+ If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}"
+ If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then
+ If ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero
+ End If
+ End If
+ End If
+
+ Case 15 'RetIVA X Acreditar Honorarios/Serv. Prof.
+ If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then
+ If DdlRetIVAConcepto.Items.Count > 0 AndAlso DdlRetIVAConcepto.SelectedValue.ToEntero() > 0 Then
+
+ Dim Funcionalidad As Integer = 0
+ If DdlRetIVAConcepto.SelectedValue.ToEntero = 1 Then
+ Funcionalidad = 307
+ ConceptoContable = 15
+ ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 2 Then
+ Funcionalidad = 309
+ ConceptoContable = 183
+ ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 3 Then
+ Funcionalidad = 311
+ ConceptoContable = 185
+ ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 4 Then
+ Funcionalidad = 313
+ ConceptoContable = 248
+ ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 5 Then
+ Funcionalidad = 578
+ ConceptoContable = 285
+ ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 6 Then
+ ConceptoContable = 333
+ End If
+
+ importeMovimiento = CompraActual.RetIVA
+ importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL
+ If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}"
+
+
+ If UsuarioActual.Empresa.TipoContabilidad = 2 Then
+ If CtaProveedorRetIVA > 0 Then
+ IdCtaContable = CtaProveedorRetIVA
+ ElseIf UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then
+ IdCtaContable = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero
+ Else
+ If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then
+ If ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero
+ End If
+ End If
+ End If
+ End If
+
+ End If
+ End If
+
+ Case 16 'Ret ISR X Acreditar
+ If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then
+ If DdlRetISRConcepto.Items.Count > 0 AndAlso DdlRetISRConcepto.SelectedValue.ToEntero > 0 Then
+
+ Dim funcionalidad As Integer = 0
+ If DdlRetISRConcepto.SelectedValue.ToEntero = 1 Then
+ funcionalidad = 315
+ ConceptoContable = 16
+ ElseIf DdlRetISRConcepto.SelectedValue.ToEntero = 2 Then
+ funcionalidad = 317
+ ConceptoContable = 243
+ ElseIf DdlRetISRConcepto.SelectedValue.ToEntero = 3 Then
+ funcionalidad = 348
+ ConceptoContable = 327
+ End If
+ importeMovimiento = CompraActual.RetISR
+ importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL
+ If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}"
+
+ If UsuarioActual.Empresa.TipoContabilidad = 2 Then
+ If CtaProveedorRetISR > 0 Then
+ IdCtaContable = CtaProveedorRetISR
+ ElseIf UsuarioActual.Empresa.Funcionalidad(funcionalidad).ToEntero > 0 Then
+ IdCtaContable = UsuarioActual.Empresa.Funcionalidad(funcionalidad).ToEntero
+ Else
+ If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then
+ If ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero
+ End If
+ End If
+ End If
+ End If
+
+
+ End If
+ End If
+
+ Case 64 'Ganancia
+
+ 'CveSubProyectoInsertar = CveSubProyecto
+ If CveSubProyectoInsertar <= 0 Then
+ ErrorPrepoliza = True
+ Alert("Concepto ganancia cambiaria sin sub proyecto", TipoMensaje.MsgAdvertencia)
+ End If
+
+ If TCPago > 0 AndAlso TCPago <> 1 AndAlso TxtFechaPago.Text <> TxtFecha.Text Then
+
+ If TipoCambioCompra > TCPago Then
+ ConceptoContable = 64
+ TipoMovimiento = True
+ Else
+ ConceptoContable = 65
+ TipoMovimiento = False
+ End If
+ If TCPago <> TipoCambioCompra Then
+ importeMovimiento = Math.Abs(TCPago - TipoCambioCompra) * importePagoProv
+ importeMovimiento -= Math.Abs(TCPago - TipoCambioCompra) * importeIVAAcreditable
+ importeMovimiento += Math.Abs(TCPago - TipoCambioCompra) * importeRetIVAAcreditable
+ importeMovimiento += Math.Abs(TCPago - TipoCambioCompra) * importeRetISRAcreditable
+ importeMN = importeMovimiento
+ End If
+ Else
+ importeMovimiento = 0
+ End If
+
+ Case 6 'Compra
+
+ Dim AgregaMercanciaInventario As Boolean = UsuarioActual.Empresa.UsaInventarios AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1"
+
+ Dim RegistraConcepto225 As Boolean = UsuarioActual.Empresa.UsaInventarios AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1"
+
+ Dim Insertado205 As Boolean = False
+
+ If RBLPago.SelectedValue.ToEntero = 4 Then
+ Exit Select 'Es credito el concepto 6 se agrega en CASE 17
+ End If
+
+
+ Dim DifSubTotatles As Decimal = 0D
+
+ If CveCompraRefacturacion > 0 Then
+ DifSubTotatles = Math.Abs(SubTotalRefacturacion - TxtSubTotal2.Text.ToDecimal)
+ End If
+
+ If DifSubTotatles > 0 Or (Not CveCompraRefacturacion > 0 OrElse (ChkRefacNC.Checked)) Then
+ 'AF TipoAF 2 Es para las compras
+ DT = TmpDT.FiltraParametros("ISNULL(TipoAF,0) = 2 And ISNULL(AplicaCostoIndirecto,0) <> 1 ")
+ If DT.Rows.Count > 0 AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then
+ For Each Row2 As DataRow In DT.Rows
+ importeMovimiento = If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, Row2("ImporteSinImpuestos").ToString.ToDecimal, Row2("Total").ToString.ToDecimal)
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador
+
+ If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(49, Row2("CveActivoFijo").ToString.ToEntero) Then
+ If ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContActivoFijo").ToString.ToEntero
+ End If
+ End If
+
+ If importeMovimiento <> 0 Then
+ 'Conta ContPAQ
+ If IdCtaContable = 0 Then
+ CuentasContablesInvalidas.Append(" " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 49))("ConceptoContable").ToString)
+ idCuentaContabilizacion = 0
+ End If
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Row2("CodAF").ToString, 49, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveActivoFijo:=Row2("CveActivoFijo").ToString.ToEntero, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
ErrorPrepoliza = True
End If
End If
Next
- importeMovimiento = 0
- importeMN = 0
End If
- Case 25 'IEPS X Acreditar
- If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then
- 'CveSubProyectoInsertar = CveSubProyecto
- importeMovimiento = CompraActual.IEPS
- importeMN = Math.Round(importeMovimiento, 2) * tipoCambioActual * Multiplicador
- If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}"
- If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then
- If ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero
- End If
- End If
- End If
+ 'LIMPIA
+ importeMovimiento = 0
+ IdCtaContable = 0
- Case 15 'RetIVA X Acreditar Honorarios/Serv. Prof.
- If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then
- If DdlRetIVAConcepto.Items.Count > 0 AndAlso DdlRetIVAConcepto.SelectedValue.ToEntero() > 0 Then
+ 'COSTO ALMACEN
+ Dim DtAlmacenes = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
+ If UsuarioActual.Empresa.UsaInventarios AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1" Then
+ DT = TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) > 0", "", {"CveAlmacen"})
+ 'RECORREMOS PARA DETECTAR LA MODALIDAD DEL ALMACEN, EN CASO DE SER SOLO EXISTENCIA LIMPIAMOS CVEALMACEN
+ 'SI LA COMPRA ES DE TIPO GASTO CON ALMACEN DEBE REGISTRAR MOVIMIENTO
+ Dim AlmacenSoloExistencia As Boolean = False
- Dim Funcionalidad As Integer = 0
- If DdlRetIVAConcepto.SelectedValue.ToEntero = 1 Then
- Funcionalidad = 307
- ConceptoContable = 15
- ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 2 Then
- Funcionalidad = 309
- ConceptoContable = 183
- ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 3 Then
- Funcionalidad = 311
- ConceptoContable = 185
- ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 4 Then
- Funcionalidad = 313
- ConceptoContable = 248
- ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 5 Then
- Funcionalidad = 578
- ConceptoContable = 285
- ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 6 Then
- ConceptoContable = 333
- End If
-
- importeMovimiento = CompraActual.RetIVA
- importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL
- If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}"
-
-
- If UsuarioActual.Empresa.TipoContabilidad = 2 Then
- If CtaProveedorRetIVA > 0 Then
- IdCtaContable = CtaProveedorRetIVA
- ElseIf UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then
- IdCtaContable = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero
- Else
- If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then
- If ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero
- End If
- End If
- End If
- End If
-
- End If
- End If
-
- Case 16 'Ret ISR X Acreditar
- If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then
- If DdlRetISRConcepto.Items.Count > 0 AndAlso DdlRetISRConcepto.SelectedValue.ToEntero > 0 Then
-
- Dim funcionalidad As Integer = 0
- If DdlRetISRConcepto.SelectedValue.ToEntero = 1 Then
- funcionalidad = 315
- ConceptoContable = 16
- ElseIf DdlRetISRConcepto.SelectedValue.ToEntero = 2 Then
- funcionalidad = 317
- ConceptoContable = 243
- ElseIf DdlRetISRConcepto.SelectedValue.ToEntero = 3 Then
- funcionalidad = 348
- ConceptoContable = 327
- End If
- importeMovimiento = CompraActual.RetISR
- importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL
- If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}"
-
- If UsuarioActual.Empresa.TipoContabilidad = 2 Then
- If CtaProveedorRetISR > 0 Then
- IdCtaContable = CtaProveedorRetISR
- ElseIf UsuarioActual.Empresa.Funcionalidad(funcionalidad).ToEntero > 0 Then
- IdCtaContable = UsuarioActual.Empresa.Funcionalidad(funcionalidad).ToEntero
- Else
- If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then
- If ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero
- End If
- End If
- End If
- End If
-
-
- End If
- End If
-
- Case 64 'Ganancia
-
- 'CveSubProyectoInsertar = CveSubProyecto
- If CveSubProyectoInsertar <= 0 Then
- ErrorPrepoliza = True
- Alert("Concepto ganancia cambiaria sin sub proyecto", TipoMensaje.MsgAdvertencia)
- End If
-
- If TCPago > 0 AndAlso TCPago <> 1 AndAlso TxtFechaPago.Text <> TxtFecha.Text Then
-
- If TipoCambioCompra > TCPago Then
- ConceptoContable = 64
- TipoMovimiento = True
- Else
- ConceptoContable = 65
- TipoMovimiento = False
- End If
- If TCPago <> TipoCambioCompra Then
- importeMovimiento = Math.Abs(TCPago - TipoCambioCompra) * importePagoProv
- importeMovimiento -= Math.Abs(TCPago - TipoCambioCompra) * importeIVAAcreditable
- importeMovimiento += Math.Abs(TCPago - TipoCambioCompra) * importeRetIVAAcreditable
- importeMovimiento += Math.Abs(TCPago - TipoCambioCompra) * importeRetISRAcreditable
- importeMN = importeMovimiento
- End If
- Else
- importeMovimiento = 0
- End If
-
- Case 6 'Compra
-
- Dim AgregaMercanciaInventario As Boolean = UsuarioActual.Empresa.UsaInventarios AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1"
-
- Dim RegistraConcepto225 As Boolean = UsuarioActual.Empresa.UsaInventarios AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1"
-
- Dim Insertado205 As Boolean = False
-
- If RBLPago.SelectedValue.ToEntero = 4 Then
- Exit Select 'Es credito el concepto 6 se agrega en CASE 17
- End If
-
-
- Dim DifSubTotatles As Decimal = 0D
-
- If CveCompraRefacturacion > 0 Then
- DifSubTotatles = Math.Abs(SubTotalRefacturacion - TxtSubTotal2.Text.ToDecimal)
- End If
-
- If DifSubTotatles > 0 Or (Not CveCompraRefacturacion > 0 OrElse (ChkRefacNC.Checked)) Then
- 'AF TipoAF 2 Es para las compras
- DT = TmpDT.FiltraParametros("ISNULL(TipoAF,0) = 2 And ISNULL(AplicaCostoIndirecto,0) <> 1 ")
- If DT.Rows.Count > 0 AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then
- For Each Row2 As DataRow In DT.Rows
- importeMovimiento = If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, Row2("ImporteSinImpuestos").ToString.ToDecimal, Row2("Total").ToString.ToDecimal)
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador
-
- If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(49, Row2("CveActivoFijo").ToString.ToEntero) Then
- If ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContActivoFijo").ToString.ToEntero
- End If
- End If
-
- If importeMovimiento <> 0 Then
- 'Conta ContPAQ
- If IdCtaContable = 0 Then
- CuentasContablesInvalidas.Append(" " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 49))("ConceptoContable").ToString)
- idCuentaContabilizacion = 0
- End If
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Row2("CodAF").ToString, 49, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveActivoFijo:=Row2("CveActivoFijo").ToString.ToEntero, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- End If
+ If DdlTipoCompra.SelectedValue <> "10" Then
+ For Each Dr As DataRow In DT.Rows
+ If DtAlmacenes.FiltroPrimeroValor("Modalidad", $"CveAlmacen = {Dr("CveAlmacen").ToString.ToEntero}").ToString = "Solo Existencia" Then
+ Dr("CveAlmacen") = 0
+ AlmacenSoloExistencia = True
End If
+ Dr.AcceptChanges()
Next
End If
- 'LIMPIA
- importeMovimiento = 0
- IdCtaContable = 0
+ DT.AcceptChanges()
+ DT = DT.FiltraParametros("ISNULL(CveAlmacen,0) > 0")
+ If DT.Rows.Count > 0 AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then
- 'COSTO ALMACEN
- Dim DtAlmacenes = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
- If UsuarioActual.Empresa.UsaInventarios AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1" Then
- DT = TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) > 0", "", {"CveAlmacen"})
- 'RECORREMOS PARA DETECTAR LA MODALIDAD DEL ALMACEN, EN CASO DE SER SOLO EXISTENCIA LIMPIAMOS CVEALMACEN
- 'SI LA COMPRA ES DE TIPO GASTO CON ALMACEN DEBE REGISTRAR MOVIMIENTO
- Dim AlmacenSoloExistencia As Boolean = False
+ 'SI ES GASTO CON ALMACEN
+ If DdlTipoCompra.SelectedValue = "10" Then
+ For Each RowDetalle As DataRow In TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) > 0", "", {"CveAlmacen", "CveClasificacion", "CveSubProyecto"}).Rows
- If DdlTipoCompra.SelectedValue <> "10" Then
- For Each Dr As DataRow In DT.Rows
- If DtAlmacenes.FiltroPrimeroValor("Modalidad", $"CveAlmacen = {Dr("CveAlmacen").ToString.ToEntero}").ToString = "Solo Existencia" Then
- Dr("CveAlmacen") = 0
- AlmacenSoloExistencia = True
- End If
- Dr.AcceptChanges()
- Next
- End If
-
- DT.AcceptChanges()
- DT = DT.FiltraParametros("ISNULL(CveAlmacen,0) > 0")
- If DT.Rows.Count > 0 AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then
-
- 'SI ES GASTO CON ALMACEN
- If DdlTipoCompra.SelectedValue = "10" Then
- For Each RowDetalle As DataRow In TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) > 0", "", {"CveAlmacen", "CveClasificacion", "CveSubProyecto"}).Rows
-
- importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"CveAlmacen = {RowDetalle("CveAlmacen")}").ToString.ToDecimal + TmpDT.SUM("CostoIndirectoAlmacen", $"CveAlmacen = {RowDetalle("CveAlmacen")}").ToString.ToDecimal 'Row2("Total").ToString.ToDecimal + Row2("CostoIndirectoAlmacen").ToString.ToDecimal
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador
-
- If UsuarioActual.Empresa.TipoContabilidad = 2 Then
- If ObjConta.GetRetCuenta(6, RowDetalle("CveClasificacion").ToString().ToEntero()) Then
- If ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero
- End If
- End If
- End If
-
- If importeMN <> 0 Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, 6, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual,
- CveClasificacion:=RowDetalle("CveClasificacion").ToString().ToEntero(), CveSubProyecto:=RowDetalle("CveSubProyecto").ToString().ToEntero(), Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- End If
- End If
- Next
- End If
-
- For Each Row2 As DataRow In DT.Rows
-
- importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"CveAlmacen = {Row2("CveAlmacen")}").ToString.ToDecimal + TmpDT.SUM("CostoIndirectoAlmacen", $"CveAlmacen = {Row2("CveAlmacen")}").ToString.ToDecimal 'Row2("Total").ToString.ToDecimal + Row2("CostoIndirectoAlmacen").ToString.ToDecimal
+ importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"CveAlmacen = {RowDetalle("CveAlmacen")}").ToString.ToDecimal + TmpDT.SUM("CostoIndirectoAlmacen", $"CveAlmacen = {RowDetalle("CveAlmacen")}").ToString.ToDecimal 'Row2("Total").ToString.ToDecimal + Row2("CostoIndirectoAlmacen").ToString.ToDecimal
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
If UsuarioActual.Empresa.TipoContabilidad = 2 Then
- If ObjConta.GetRetCuenta(68, GvInv.HeaderRow.FCDropDownList("ddlAlmacen").SelectedValue.ToString.ToEntero) Then
+ If ObjConta.GetRetCuenta(6, RowDetalle("CveClasificacion").ToString().ToEntero()) Then
If ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero
End If
End If
- 'Conta ContPAQ
- If IdCtaContable = 0 Then
- CuentasContablesInvalidas.Append(" " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 68))("ConceptoContable").ToString)
- idCuentaContabilizacion = 0
- End If
End If
If importeMN <> 0 Then
-
- 'SI ES GASTO CON ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN.RoundSQL(2), Referencia, 68, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN.RoundSQL(2), ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=If(DdlTipoCompra.SelectedValue = "10", False, SeContabiliza)) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, 6, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual,
+ CveClasificacion:=RowDetalle("CveClasificacion").ToString().ToEntero(), CveSubProyecto:=RowDetalle("CveSubProyecto").ToString().ToEntero(), Contabilizable:=SeContabiliza) Then
ErrorPrepoliza = True
End If
+ End If
+ Next
+ End If
- 'SI ES GASTO CON ALMACEN REGISTRA EL CONCEPTO 95
- If DdlTipoCompra.SelectedValue = "10" Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMN.RoundSQL(2), Referencia, 95, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN.RoundSQL(2), ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=False) Then
- ErrorPrepoliza = True
- End If
+ For Each Row2 As DataRow In DT.Rows
+
+ importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"CveAlmacen = {Row2("CveAlmacen")}").ToString.ToDecimal + TmpDT.SUM("CostoIndirectoAlmacen", $"CveAlmacen = {Row2("CveAlmacen")}").ToString.ToDecimal 'Row2("Total").ToString.ToDecimal + Row2("CostoIndirectoAlmacen").ToString.ToDecimal
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador
+
+ If UsuarioActual.Empresa.TipoContabilidad = 2 Then
+ If ObjConta.GetRetCuenta(68, GvInv.HeaderRow.FCDropDownList("ddlAlmacen").SelectedValue.ToString.ToEntero) Then
+ If ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero
End If
- ' si agrego en almacen, ya no se ocupa algun concepto puente
- AgregaMercanciaInventario = False
+ End If
+ 'Conta ContPAQ
+ If IdCtaContable = 0 Then
+ CuentasContablesInvalidas.Append(" " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 68))("ConceptoContable").ToString)
+ idCuentaContabilizacion = 0
+ End If
+ End If
+
+ If importeMN <> 0 Then
+
+ 'SI ES GASTO CON ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN.RoundSQL(2), Referencia, 68, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN.RoundSQL(2), ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=If(DdlTipoCompra.SelectedValue = "10", False, SeContabiliza)) Then
+ ErrorPrepoliza = True
End If
- Next
+ 'SI ES GASTO CON ALMACEN REGISTRA EL CONCEPTO 95
+ If DdlTipoCompra.SelectedValue = "10" Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMN.RoundSQL(2), Referencia, 95, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN.RoundSQL(2), ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=False) Then
+ ErrorPrepoliza = True
+ End If
+ End If
+ ' si agrego en almacen, ya no se ocupa algun concepto puente
+ AgregaMercanciaInventario = False
+ End If
+
+ Next
+ End If
+ End If
+
+ 'LIMPIA
+ importeMovimiento = 0
+ IdCtaContable = 0
+
+ 'End If
+ Dim CostoIndirectoAcum176 As Decimal = 0
+ 'INV [MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA) ]
+ If AgregaMercanciaInventario AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") AndAlso CveConceptoContableAlmacen.Contiene(205, 176, 237, 240) Then
+
+ importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And (ISNULL(CveTipoPS,0) = 2 Or (ISNULL(CveTipoPS,0) = 1 And ISNULL(AplicaCostoIndirecto,0) = 1))").ToString.ToDecimal
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador
+
+ Dim ConceptoContabilizacion = 205
+ Dim ConceptoContabilizacionME = -1
+ Dim IdCtaContableME = -1
+ Dim ConceptoContabilizacionMEComp = -1
+ Dim IdCtaContableMEComp = -1
+
+ If OCVinculada Or CveConceptoContableAlmacen.Contiene(237, 240) Then
+ ConceptoContabilizacion = CveConceptoContableAlmacen
+ End If
+ Dim UsaComplementariaFleteImportaciones As Boolean = False
+
+ 'DEBE METER EL CONCEPTO DE COMPRAS SI EL TIPO ES GASTO CON ALMACEN
+ If DdlTipoCompra.SelectedValue = "10" Then
+ ConceptoContabilizacion = 6
+ End If
+
+ Select Case ConceptoContabilizacion
+ Case 6
+ importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"))
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO
+ Case 176
+ ConceptoContabilizacionME = 228
+ ConceptoContabilizacionMEComp = 229
+ Case 205
+ ConceptoContabilizacionME = 230
+ ConceptoContabilizacionMEComp = 231
+ importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"))
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO
+ Case 237
+ ConceptoContabilizacionME = 238
+ ConceptoContabilizacionMEComp = 239
+ importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"))
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO
+ Case 240
+ ConceptoContabilizacionME = 241
+ ConceptoContabilizacionMEComp = 242
+ importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"))
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO
+ End Select
+
+ If UsuarioActual.Empresa.TipoContabilidad = 2 Then
+ If ConceptoContabilizacion = 6 Then
+ If ObjConta.GetRetCuenta(ConceptoContabilizacion, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero
+ End If
+ Else
+ If ObjConta.GetRetCuenta(ConceptoContabilizacion, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero
+ End If
+ End If
+
+ If ObjConta.GetRetCuenta(ConceptoContabilizacionME, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContableME = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero
+ End If
+
+ If ObjConta.GetRetCuenta(ConceptoContabilizacionMEComp, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContableMEComp = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero
End If
End If
- 'LIMPIA
- importeMovimiento = 0
- IdCtaContable = 0
- 'End If
- Dim CostoIndirectoAcum176 As Decimal = 0
- 'INV [MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA) ]
- If AgregaMercanciaInventario AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") AndAlso CveConceptoContableAlmacen.Contiene(205, 176, 237, 240) Then
+ Dim CveMovimientoAlmacen As Integer = -1
- importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And (ISNULL(CveTipoPS,0) = 2 Or (ISNULL(CveTipoPS,0) = 1 And ISNULL(AplicaCostoIndirecto,0) = 1))").ToString.ToDecimal
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador
-
- Dim ConceptoContabilizacion = 205
- Dim ConceptoContabilizacionME = -1
- Dim IdCtaContableME = -1
- Dim ConceptoContabilizacionMEComp = -1
- Dim IdCtaContableMEComp = -1
-
- If OCVinculada Or CveConceptoContableAlmacen.Contiene(237, 240) Then
- ConceptoContabilizacion = CveConceptoContableAlmacen
- End If
- Dim UsaComplementariaFleteImportaciones As Boolean = False
-
- 'DEBE METER EL CONCEPTO DE COMPRAS SI EL TIPO ES GASTO CON ALMACEN
- If DdlTipoCompra.SelectedValue = "10" Then
- ConceptoContabilizacion = 6
- End If
-
- Select Case ConceptoContabilizacion
- Case 6
- importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"))
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO
- Case 176
- ConceptoContabilizacionME = 228
- ConceptoContabilizacionMEComp = 229
- Case 205
- ConceptoContabilizacionME = 230
- ConceptoContabilizacionMEComp = 231
- importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"))
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO
- Case 237
- ConceptoContabilizacionME = 238
- ConceptoContabilizacionMEComp = 239
- importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"))
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO
- Case 240
- ConceptoContabilizacionME = 241
- ConceptoContabilizacionMEComp = 242
- importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"))
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO
- End Select
-
- If UsuarioActual.Empresa.TipoContabilidad = 2 Then
- If ConceptoContabilizacion = 6 Then
- If ObjConta.GetRetCuenta(ConceptoContabilizacion, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero
- End If
- Else
- If ObjConta.GetRetCuenta(ConceptoContabilizacion, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero
- End If
- End If
-
- If ObjConta.GetRetCuenta(ConceptoContabilizacionME, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContableME = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero
- End If
-
- If ObjConta.GetRetCuenta(ConceptoContabilizacionMEComp, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContableMEComp = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero
- End If
- End If
-
-
- Dim CveMovimientoAlmacen As Integer = -1
-
- 'If importeMovimiento <> 0 Then
- Select Case ConceptoContabilizacion
- Case 176
- Dim SumatoriaOCINV = 0.0D, Importe176 = 0.0D, ImporteME176 = 0.0D, ImporteMN176 = 0.0D, Importe228 = 0.0D, ImporteME228 = 0.0D, ImporteMN228 = 0.0D, Importe229 = 0.0D, ImporteME229 = 0.0D, ImporteMN229 = 0.0D, ImporteCI176 = 0.0D
- Dim SumatoriaInventario As Decimal = 0
- Dim TCO As Decimal = 1
- For Each Dr As DataRow In TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 2").Rows
- If ObjOC.OrdenesCompraDetalleCostoPP(Dr("CveOrdenCompraDetalle").ToString.ToEntero) AndAlso ObjOC.DtResultados.Rows.Count >= 1 Then
- Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text} OC {ObjOC.DtResultados.FiltroPrimeroValor("Folio").ToString} Inv:{ObjOC.DtResultados.FiltroPrimeroValor("FolioAlmacen").ToString}"
- Importe176 = ObjOC.DtResultados.FiltroPrimeroValor("Importe176").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME176").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN176").ToDecimal * Dr("Cantidad").ToString.ToDecimal
- Importe228 = ObjOC.DtResultados.FiltroPrimeroValor("Importe228").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME228").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN228").ToDecimal * Dr("Cantidad").ToString.ToDecimal
- Importe229 = ObjOC.DtResultados.FiltroPrimeroValor("Importe229").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME229 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME229").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN229 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN229").ToDecimal * Dr("Cantidad").ToString.ToDecimal
- ImporteCI176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteCI176").ToDecimal
- CveMovimientoAlmacen = ObjOC.DtResultados.FiltroPrimeroValor("CveMovimientoAlmacen").ToEntero
- Dim TCAjuste As Decimal = ObjOC.DtResultados.FiltroPrimeroValor("TipoCambioAjuste").ToDecimal
- 'RMF. falta verificar el costo indirecto de la OC
- If DdlMoneda.SelectedValue.ToEntero <> 1 Then
- TCO = TxtTC.Text.ToDecimal
- ImporteCI176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteCI228").ToDecimal
- CostoIndirectoAcum176 += ImporteCI176
- SumatoriaInventario += Importe228 + Importe229
- 'se considera costoindirecto, para que la factura tiene en un concepto tipo servicio
- SumatoriaOCINV += (Dr(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")).ToString.ToDecimal * tipoCambioActual) - (ImporteMN228 + ImporteMN229 - ImporteCI176)
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe228, Referencia, ConceptoContabilizacionME, Concepto, FechaMovimiento, IdCtaContableME, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=ImporteMN228, ImporteME:=ImporteME228, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe229, Referencia, ConceptoContabilizacionMEComp, Concepto, FechaMovimiento, IdCtaContableMEComp, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=ImporteMN229, ImporteME:=ImporteME229, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- Exit For
- End If
- Else
+ 'If importeMovimiento <> 0 Then
+ Select Case ConceptoContabilizacion
+ Case 176
+ Dim SumatoriaOCINV = 0.0D, Importe176 = 0.0D, ImporteME176 = 0.0D, ImporteMN176 = 0.0D, Importe228 = 0.0D, ImporteME228 = 0.0D, ImporteMN228 = 0.0D, Importe229 = 0.0D, ImporteME229 = 0.0D, ImporteMN229 = 0.0D, ImporteCI176 = 0.0D
+ Dim SumatoriaInventario As Decimal = 0
+ Dim TCO As Decimal = 1
+ For Each Dr As DataRow In TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 2").Rows
+ If ObjOC.OrdenesCompraDetalleCostoPP(Dr("CveOrdenCompraDetalle").ToString.ToEntero) AndAlso ObjOC.DtResultados.Rows.Count >= 1 Then
+ Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text} OC {ObjOC.DtResultados.FiltroPrimeroValor("Folio").ToString} Inv:{ObjOC.DtResultados.FiltroPrimeroValor("FolioAlmacen").ToString}"
+ Importe176 = ObjOC.DtResultados.FiltroPrimeroValor("Importe176").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME176").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN176").ToDecimal * Dr("Cantidad").ToString.ToDecimal
+ Importe228 = ObjOC.DtResultados.FiltroPrimeroValor("Importe228").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME228").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN228").ToDecimal * Dr("Cantidad").ToString.ToDecimal
+ Importe229 = ObjOC.DtResultados.FiltroPrimeroValor("Importe229").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME229 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME229").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN229 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN229").ToDecimal * Dr("Cantidad").ToString.ToDecimal
+ ImporteCI176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteCI176").ToDecimal
+ CveMovimientoAlmacen = ObjOC.DtResultados.FiltroPrimeroValor("CveMovimientoAlmacen").ToEntero
+ Dim TCAjuste As Decimal = ObjOC.DtResultados.FiltroPrimeroValor("TipoCambioAjuste").ToDecimal
+ 'RMF. falta verificar el costo indirecto de la OC
+ If DdlMoneda.SelectedValue.ToEntero <> 1 Then
+ TCO = TxtTC.Text.ToDecimal
+ ImporteCI176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteCI228").ToDecimal
+ CostoIndirectoAcum176 += ImporteCI176
+ SumatoriaInventario += Importe228 + Importe229
+ 'se considera costoindirecto, para que la factura tiene en un concepto tipo servicio
+ SumatoriaOCINV += (Dr(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")).ToString.ToDecimal * tipoCambioActual) - (ImporteMN228 + ImporteMN229 - ImporteCI176)
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe228, Referencia, ConceptoContabilizacionME, Concepto, FechaMovimiento, IdCtaContableME, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=ImporteMN228, ImporteME:=ImporteME228, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe229, Referencia, ConceptoContabilizacionMEComp, Concepto, FechaMovimiento, IdCtaContableMEComp, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=ImporteMN229, ImporteME:=ImporteME229, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then
ErrorPrepoliza = True
Exit For
End If
Else
- CostoIndirectoAcum176 += ImporteCI176
- SumatoriaInventario += Importe176
- 'se considera costoindirecto, para que la factura tiene en un concepto tipo servicio
- SumatoriaOCINV += (Dr(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")).ToString.ToDecimal * tipoCambioActual) - (ImporteMN176 - ImporteCI176)
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe176, Referencia, ConceptoContabilizacion, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=ImporteMN176, ImporteME:=ImporteME176, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- Exit For
- End If
+ ErrorPrepoliza = True
+ Exit For
End If
Else
- Alert("Ocurrió un error al procesar la mercancia recibida por adelantado. Por favor comuniquese con asistencia SIG", TipoMensaje.MsgError)
- ErrorPrepoliza = True
- Exit For
+ CostoIndirectoAcum176 += ImporteCI176
+ SumatoriaInventario += Importe176
+ 'se considera costoindirecto, para que la factura tiene en un concepto tipo servicio
+ SumatoriaOCINV += (Dr(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")).ToString.ToDecimal * tipoCambioActual) - (ImporteMN176 - ImporteCI176)
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe176, Referencia, ConceptoContabilizacion, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=ImporteMN176, ImporteME:=ImporteME176, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
End If
- Next
+ Else
+ Alert("Ocurrió un error al procesar la mercancia recibida por adelantado. Por favor comuniquese con asistencia SIG", TipoMensaje.MsgError)
+ ErrorPrepoliza = True
+ Exit For
+ End If
+ Next
- 'obtengo si hay servicios
- Dim CostosIndirectosTardados As Decimal = TmpDT.SUMD("Total", "ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 1")
- 'consideracion, si la oc, se le agrego un servicio y este no se cargo en la entrada al almacen.
- If CostoIndirectoAcum176 = 0 AndAlso CostosIndirectosTardados > 0 Then
- CostosIndirectosTardados = CostosIndirectosTardados * TCO
+ 'obtengo si hay servicios
+ Dim CostosIndirectosTardados As Decimal = TmpDT.SUMD("Total", "ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 1")
+ 'consideracion, si la oc, se le agrego un servicio y este no se cargo en la entrada al almacen.
+ If CostoIndirectoAcum176 = 0 AndAlso CostosIndirectosTardados > 0 Then
+ CostosIndirectosTardados = CostosIndirectosTardados * TCO
+ End If
+
+ 'calcula la diferencia entre lo recibido por la OC, considerando costos indirectos y lo que se ingresaria en la compra
+ SumatoriaOCINV = SumatoriaInventario - (TmpDT.SUMD("Total") * TCO).RoundSQL + CostosIndirectosTardados 'sumatoria de la factura
+ If SumatoriaOCINV.RoundSQL <> 0 Then
+ ' se abona el costo, cambiamos su naturaleza
+ 'SumatoriaOCINV = -SumatoriaOCINV
+
+ Dim CveClasificacionCostoOC = TmpDT.FiltroPrimeroValor("CveClasificacion", "ISNULL(TipoAF, 0) <> 2 And ISNULL(CveAlmacen, 0) = 0 And ISNULL(AplicaCostoIndirecto, 0) <> 1 And ISNULL(CveTipoPS, 0) = 2").ToEntero
+ Dim CveSubProyecto69 As Integer = TmpDT.MAX("CveSubProyecto").ToEntero
+
+ If CveSubProyecto69 <= 0 Then
+ Alert("Debe de asignar un sub proyecto o centro de costos", TipoMensaje.MsgAdvertencia)
+ ErrorPrepoliza = True
+ Exit For
End If
- 'calcula la diferencia entre lo recibido por la OC, considerando costos indirectos y lo que se ingresaria en la compra
- SumatoriaOCINV = SumatoriaInventario - (TmpDT.SUMD("Total") * TCO).RoundSQL + CostosIndirectosTardados 'sumatoria de la factura
- If SumatoriaOCINV.RoundSQL <> 0 Then
- ' se abona el costo, cambiamos su naturaleza
- 'SumatoriaOCINV = -SumatoriaOCINV
+ IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {CveClasificacionCostoOC}").ToString.ToEntero
+ Dim tTipoMovto As Boolean = True
+ If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then ' empresa llantera
+ tTipoMovto = False
+ SumatoriaOCINV = -SumatoriaOCINV
+ End If
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tTipoMovto, SumatoriaOCINV, Referencia, 69, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveClasificacion:=CveClasificacionCostoOC, ImporteMX:=SumatoriaOCINV, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto69) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+ End If
+ Case 205, 237, 240
+ Insertado205 = True
+ Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
+ If DdlMoneda.SelectedValue.ToEntero <> 1 AndAlso UsaComplementariaFleteImportaciones Then
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContabilizacionME, Concepto, FechaMovimiento, IdCtaContableME, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMovimiento, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN - importeMovimiento, Referencia, ConceptoContabilizacionMEComp, Concepto, FechaMovimiento, IdCtaContableMEComp, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN - importeMovimiento, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ End If
+ Else
+ ErrorPrepoliza = True
+ End If
+ Else
- Dim CveClasificacionCostoOC = TmpDT.FiltroPrimeroValor("CveClasificacion", "ISNULL(TipoAF, 0) <> 2 And ISNULL(CveAlmacen, 0) = 0 And ISNULL(AplicaCostoIndirecto, 0) <> 1 And ISNULL(CveTipoPS, 0) = 2").ToEntero
- Dim CveSubProyecto69 As Integer = TmpDT.MAX("CveSubProyecto").ToEntero
+ If Not CveCompraRefacturacion > 0 Then
- If CveSubProyecto69 <= 0 Then
+ Dim CveSubProyecto240 As Integer = TmpDT.MAX("CveSubProyecto").ToEntero
+
+ If CveSubProyecto240 <= 0 Then
Alert("Debe de asignar un sub proyecto o centro de costos", TipoMensaje.MsgAdvertencia)
ErrorPrepoliza = True
Exit For
End If
- IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {CveClasificacionCostoOC}").ToString.ToEntero
- Dim tTipoMovto As Boolean = True
- If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then ' empresa llantera
- tTipoMovto = False
- SumatoriaOCINV = -SumatoriaOCINV
- End If
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tTipoMovto, SumatoriaOCINV, Referencia, 69, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveClasificacion:=CveClasificacionCostoOC, ImporteMX:=SumatoriaOCINV, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto69) Then
- ErrorPrepoliza = True
- Exit For
- End If
- End If
- Case 205, 237, 240
- Insertado205 = True
- Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
- If DdlMoneda.SelectedValue.ToEntero <> 1 AndAlso UsaComplementariaFleteImportaciones Then
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContabilizacionME, Concepto, FechaMovimiento, IdCtaContableME, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMovimiento, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN - importeMovimiento, Referencia, ConceptoContabilizacionMEComp, Concepto, FechaMovimiento, IdCtaContableMEComp, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN - importeMovimiento, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- End If
- Else
- ErrorPrepoliza = True
- End If
- Else
-
- If Not CveCompraRefacturacion > 0 Then
-
- Dim CveSubProyecto240 As Integer = TmpDT.MAX("CveSubProyecto").ToEntero
-
- If CveSubProyecto240 <= 0 Then
- Alert("Debe de asignar un sub proyecto o centro de costos", TipoMensaje.MsgAdvertencia)
- ErrorPrepoliza = True
- Exit For
- End If
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, ConceptoContabilizacion, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto240) Then
- ErrorPrepoliza = True
- End If
- End If
-
- End If
- Case 6
- Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
-
- For Each RowDetalle As DataRow In TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2", "", {"CveClasificacion", "CveSubProyecto"}).Rows
-
- If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(6, RowDetalle("CveClasificacion").ToString().ToEntero()) Then
- If ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero
- End If
- End If
-
- If importeMN <> 0 Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, 6, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual,
- CveClasificacion:=RowDetalle("CveClasificacion").ToString().ToEntero(), CveSubProyecto:=RowDetalle("CveSubProyecto").ToString().ToEntero(), Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- End If
- End If
- Next
-
- End Select
- 'End If
-
- End If
-
- 'falta el registro de la NC cuando es
- Dim RegistroCuentaPuente As Boolean = False
- 'NC CON PRODUCTOS - CUENTA PUENTE
-
-
- If DdlTipoComprobante.SelectedValue = "NC" And DdlTipoCompra.SelectedValue.ToEntero = 9 Then
- RegistraConcepto225 = True
- End If
-
-
- If RegistraConcepto225 Then
-
- importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 2").ToString.ToDecimal
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador
-
- 'no es necesario, ya se está interpretandoe l usado como producto
- 'If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then 'cuando es emp acumuladora
-
- ' Dim Valor As Decimal = 0
- ' For Each RowAcum As DataRow In GlobalDTAcumTamaños().FiltraParametros("CveEmpresa = 140").Rows
- ' Dim TotalTamanio = TmpDT.FiltroPrimeroValor("Total", $"CvePS={RowAcum("CvePSCargo")}").ToDecimal()
- ' If TotalTamanio > 0 Then
- ' Valor += TotalTamanio
- ' End If
- ' Next
-
- ' importeMovimiento += Valor
- ' importeMN = importeMovimiento * tipoCambioActual * Multiplicador
- 'End If
-
- Dim ConceptoContabilizacionNC = 225
- Dim CveMovimientoDevolucion As Integer = -1
-
- 'CUANDO NO SE RECIBE LA MERCANCIA EN COMPRAS, SE REGISTRA EL 225, SI SE ESTA REGISTRANDO LA DEVOLUCION EN ALMACEN, SE REGISTRA EL 68
- If Devolucion IsNot Nothing AndAlso Devolucion.DebeRealizarDevolucion AndAlso Devolucion.CveMovimiento > 0 Then
- ConceptoContabilizacionNC = 68
- CveMovimientoDevolucion = Devolucion.CveMovimiento
- End If
-
- If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContabilizacionNC, UsuarioActual.CveEmpresa) Then
- If ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero
- End If
- End If
-
- Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
-
- If importeMovimiento > 0 Or TxtTotal.Text.ToDecimal = 0 Then
- RegistroCuentaPuente = True
- Dim ImporteTransito As Decimal = 0
- 'Conta ContPAQ
- If IdCtaContable = 0 Then
- CuentasContablesInvalidas.Append(" " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 68))("ConceptoContable").ToString)
- idCuentaContabilizacion = 0
- End If
-
- 'SI ES GASTO DE ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68
- If DdlTipoCompra.SelectedValue = "10" AndAlso ConceptoContabilizacionNC = 68 Then
- SeContabiliza = False
- IdCtaContable = 0
- End If
-
- 'se lleva saldo de Mercancía en tránsito
-
- If ChkNCInvNC.Checked Then
- For Each Gvr As GridViewRow In GVNCInv.Rows
- If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then
- If Not ObjCompras.ComprasDetalleDevolucionesAdd(Gvr.DataKey("CveCompraDetalle").ToEntero, CveCompra, Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble, UsuarioActual.CveEmpresa) Then
- ErrorMovInv = True
- Exit For
- End If
-
- End If
- Next
-
- Dim diferenciaTransito As Decimal = 0
- For Each Gvr As GridViewRow In GVNCInvAlmacen.Rows
- If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then
- Dim importeMNTemp As Decimal = 0
- If Not ObjCompras.ComprasDetalleDevolucionesAdd(Gvr.DataKey("CveCompraDetalle").ToEntero, CveCompra, Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble, UsuarioActual.CveEmpresa) Then
- ErrorMovInv = True
- Exit For
- End If
- Dim DifTC As Decimal = tipoCambioActual - Gvr.DataKey("TipoCambio").ToDecimal
- 'diferenciaTransito = DifTC * (Gvr.DataKey("IVA").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal)
- 'diferenciaTransito += DifTC * (Gvr.DataKey("IEPSPS").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal)
- importeMNTemp = (Gvr.FCTextBox("TxtPU").Text.ToDecimal * Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal * Gvr.DataKey("TipoCambio").ToDecimal).RoundSQL
- ImporteTransito += importeMNTemp
- 'se registra por cada compra relacionada
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMNTemp, Referencia, ConceptoContabilizacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMNTemp, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=Gvr.DataKey("TipoCambio").ToDecimal, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- End If
- End If
- Next
-
- 'la diferencia se va aplicar sobre los
-
- 'Dim diferenciaTransito As Decimal = ImporteTransito - importeMN.RoundSQL
-
- If diferenciaTransito <> 0 Then
- Dim tCveCon As Integer = 65
- If diferenciaTransito < 0 Then
- tCveCon = 64
- End If
- diferenciaTransito = Math.Abs(diferenciaTransito)
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, If(tCveCon = 64, True, False), diferenciaTransito, Referencia, tCveCon, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=diferenciaTransito, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=1, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto) Then
- ErrorPrepoliza = True
- End If
- End If
-
- Else
-
- Dim DiferenciaDevolucion As Decimal = importeMovimiento - TotalRealDevolucion
-
-
- If TotalRealDevolucion <> 0 Then
-
- If Math.Abs(DiferenciaDevolucion) > 0 Then
-
-
- Dim CveSubProyecto69 As Integer = TmpDT.FiltroPrimeroValor("CveSubProyecto", "CveSubProyecto > 0 ").ToEntero
- Dim CveClasificacion69 As Integer = TmpDT.FiltroPrimeroValor("CveClasificacion", "CveClasificacion > 0 ").ToEntero
-
-
- Dim IdCtaContable69 As Integer = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {CveClasificacion69}").ToString.ToEntero
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DiferenciaDevolucion.RoundSQL(), Referencia, 69, Concepto, FechaMovimiento, IdCtaContable69, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=DiferenciaDevolucion, ImporteME:=If(tipoCambioActual = 1, 0, DiferenciaDevolucion), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto69, CveClasificacion:=CveClasificacion69) Then
- ErrorPrepoliza = True
- End If
- End If
-
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, TotalRealDevolucion.RoundSQL(), Referencia, ConceptoContabilizacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=(TotalRealDevolucion * tipoCambioActual).RoundSQL(), ImporteME:=If(tipoCambioActual = 1, 0, TotalRealDevolucion).RoundSQL(), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- End If
-
-
- Else
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento.RoundSQL, Referencia, ConceptoContabilizacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMovimiento * tipoCambioActual * Multiplicador, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, ConceptoContabilizacion, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto240) Then
ErrorPrepoliza = True
End If
End If
End If
- End If
+ Case 6
+ Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
- If UsuarioActual.CveEmpresa.Contiene(119) Then
- Dim ContienePSNeteoBonif As Boolean = False
- For Each Dr As DataRow In TmpDT.Rows
- If Dr("CveClasificacion").ToString.ToEntero.Contiene(20319) Or DdlTipoCompra.SelectedValue.ToEntero = 11 Then 'clasificación de Bonificación, no se incluirá en el neteo
- ContienePSNeteoBonif = True
- Exit For
+ For Each RowDetalle As DataRow In TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2", "", {"CveClasificacion", "CveSubProyecto"}).Rows
+
+ If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(6, RowDetalle("CveClasificacion").ToString().ToEntero()) Then
+ If ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero
+ End If
End If
- Next
- If ContienePSNeteoBonif Then
- importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveClasificacion = 20319 ").ToString.ToDecimal
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador
- Dim IdCtaContableDescCompra As Integer = UsuarioActual.Empresa.Funcionalidad(405).ToEntero
-
-
- Dim CveSubProyecto259 As Integer = TmpDT.MAX("CveSubProyecto").ToEntero
-
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimiento, Referencia, 259, Concepto, FechaMovimiento, IdCtaContableDescCompra, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto259) Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -importeMovimiento, Referencia, 259, Concepto, FechaMovimiento, IdCtaContableDescCompra, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=-importeMN, ImporteME:=If(tipoCambioActual = 1, 0, -importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto259) Then
+ If importeMN <> 0 Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, 6, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual,
+ CveClasificacion:=RowDetalle("CveClasificacion").ToString().ToEntero(), CveSubProyecto:=RowDetalle("CveSubProyecto").ToString().ToEntero(), Contabilizable:=SeContabiliza) Then
ErrorPrepoliza = True
End If
- Else
- ErrorPrepoliza = True
- End If
-
- End If
- End If
-
-
- End If
-
- 'ChkNCInvNC
-
- If Not RegistroCuentaPuente AndAlso Not ChkNCInvNC.Checked Then
- 'GASTO
- If UsuarioActual.CveEmpresa = 119 Then
- DT = TmpDT
- Else
- DT = TmpDT.FiltraParametros("ISNULL(AplicaCostoIndirecto,0) <> 1")
- End If
- 'RECORREMOS PARA DETECTAR LA MODALIDAD DEL ALMACEN, EN CASO DE SER SOLO EXISTENCIA LIMPIAMOS CVEALMACEN
- If DdlTipoCompra.SelectedValue <> "10" Then
- For Each Dr As DataRow In DT.Rows
- If DtAlmacenes.FiltroPrimeroValor("Modalidad", $"CveAlmacen = {Dr("CveAlmacen").ToString.ToEntero}").ToString = "Solo Existencia" Then
- Dr("CveAlmacen") = 0
- End If
- Dr.AcceptChanges()
- Next
- End If
-
- DT.AcceptChanges()
- DtAlmacenes.Dispose()
-
- 'QUITA 1-[MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA)] 2-[NC CON PRODUCTOS]
- If AgregaMercanciaInventario Then
- DT = DT.FiltraParametros("ISNULL(CveTipoPS,0) <> 2")
- End If
-
- Dim DTDistinct = DT.Copy
- If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then
-
- For Each drowdis As DataRow In DTDistinct.Rows
- If drowdis("CveTipoGasto").ToString = "" Then
- drowdis("CveTipoGasto") = 0
- End If
- If drowdis("TipoGasto").ToString.Trim = "" Then
- drowdis("TipoGasto") = "ND"
-
End If
Next
- DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF, 0) <> 2", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"})
- Else
-
- For Each drowdis As DataRow In DTDistinct.Rows
- If drowdis("CveTipoGasto").ToString = "" Then
- drowdis("CveTipoGasto") = 0
- End If
- If drowdis("TipoGasto").ToString.Trim = "" Then
- drowdis("TipoGasto") = "ND"
-
- End If
- Next
- DTDistinct.AcceptChanges()
-
- DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"})
- End If
- 'RMF, si es concepto relacionado a flete o importacion, no debe de afectar al gasto
- If CveFlete > 0 OrElse CveImportacion > 0 OrElse (CveCompraRefacturacion > 0 AndAlso ChkRefacNC.Checked) Then
- DTDistinct.Clear()
- End If
-
- Dim tTipoMovimiento As Boolean = TipoMovimiento
- If DTDistinct.Rows.Count > 0 Then
- For Each Row2 As DataRow In DTDistinct.Rows
-
- tTipoMovimiento = TipoMovimiento
- 'DETERMINA IMPORTE
- If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then
- importeMovimiento = DT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), String.Format("ISNULL(TipoAF,0) <> 2 And CveClasificacion = {0} And CveSubProyecto = {1} And ISNULL(CveTipoGasto,0) = {2}", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal
- Else
- importeMovimiento = DT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), String.Format("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And CveClasificacion = {0} And CveSubProyecto = {1} And ISNULL(CveTipoGasto,0) = {2}", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal
- End If
- 'se debe de restar el costo indirecto, si se recibió por OC sobre el importe del gasto, por si ya está incuido
- importeMovimiento = importeMovimiento - CostoIndirectoAcum176
-
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador '[IPP] EL 6 DEBE SER POSITIVO 27/AGOSTO/2018
-
- 'CLASIFICACION
- If Row2("CveClasificacion").ToString.ToEntero > 0 AndAlso DdlTipoComprobante.SelectedValue = "Fac" Then
-
- If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(6, Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero) Then
- If ObjConta.DtResultados.Rows.Count > 0 AndAlso ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero
- Else
- IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToString.ToEntero
- End If
- End If
- End If
-
- 'AGREGA MOVIMIENTO
- If importeMovimiento.RoundSQL <> 0 Then
-
- Dim tcvecon As Integer = 6
- Dim tidctacon As Integer = 6
- tidctacon = IdCtaContable
- If DdlTipoComprobante.SelectedValue = "Ant" Then
- tcvecon = 264
- tidctacon = ViewState("CtaProveedorAnticipos").ToString.ToEntero
- If DdlMoneda.SelectedValue = "2" Then
- tidctacon = ViewState("CtaProveedorAnticiposExtranjera").ToString.ToEntero
- End If
-
- ElseIf DdlTipoComprobante.SelectedValue = "NC" Then
- tcvecon = 259
- tidctacon = UsuarioActual.Empresa.Funcionalidad(405).ToEntero
-
- ElseIf UsuarioActual.CveEmpresa = 119 AndAlso Row2("CveClasificacion").ToString = "20473" Then
- 'CODIGO FIJO, SI ES LA CLASIFICACION DE "SEGURO/SERVICIO COSTO", SE ABONARÁ
- tTipoMovimiento = True
- importeMovimiento = -importeMovimiento
- importeMN = -importeMN
- End If
-
-
- Dim usacomplementariaProveedor As Boolean = False
- usacomplementariaProveedor = If(tipoCambioActual > 1, True, False)
-
- If usacomplementariaProveedor AndAlso DdlTipoComprobante.SelectedValue = "Ant" Then
- 'importeMovimiento
-
- Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
- importeMN = tipoCambioActual * importeMovimiento - importeMovimiento
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tTipoMovimiento, importeMovimiento, Referencia, 266, Concepto, FechaMovimiento, tidctacon, 0, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteMX:=importeMN, ImporteME:=importeMovimiento, CveTipoGasto:=Row2("CveTipoGasto").ToString.ToEntero, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- End If
- importeMN = importeMovimiento
- End If
-
- Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
-
- If Not Insertado205 Then
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tTipoMovimiento, importeMovimiento, Referencia, tcvecon, Concepto, FechaMovimiento, tidctacon, 0, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), CveTipoGasto:=Row2("CveTipoGasto").ToString.ToEntero, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- End If
-
- End If
-
- End If
- Next
- End If
- End If
-
- 'LIMPIA
- importeMovimiento = 0
- IdCtaContable = 0
- End If
- Case 5 'Proveedores
- If CveTipoConcepto = 2 Then ConceptoContable = 305 'cuando es acreedor
- Dim UsaComplementaria As Boolean = True
-
- If UsuarioActual.CveEmpresa.Contiene(13, 83) Then UsaComplementaria = False
- If tipoCambioActual <> 1 Then
- Select Case ConceptoContable
- Case 5
- ConceptoContable = 311
- Case 305
- ConceptoContable = 306
- Case Else
End Select
+ 'End If
+
End If
- If Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then
+ 'falta el registro de la NC cuando es
+ Dim RegistroCuentaPuente As Boolean = False
+ 'NC CON PRODUCTOS - CUENTA PUENTE
- importeMovimiento = importeProv
+
+ If DdlTipoComprobante.SelectedValue = "NC" And DdlTipoCompra.SelectedValue.ToEntero = 9 Then
+ RegistraConcepto225 = True
+ End If
+
+
+ If RegistraConcepto225 Then
+
+ importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 2").ToString.ToDecimal
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
- If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}"
- Dim CveConceptoContableComplementaria As Integer = 201
- If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 307
+ 'no es necesario, ya se está interpretandoe l usado como producto
+ 'If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then 'cuando es emp acumuladora
- If tipoCambioActual = 1 Then
- IdCtaContable = If(CveTipoConcepto = 2, CtaProveedorAcreedores, CtaProveedor)
- Else
- IdCtaContable = CtaProveedorComplementaria
- If importeMovimiento <> 0 AndAlso (IdCtaContable > 0 Or UsaComplementaria) Then 'Cuando tiene complementaria lo dividimos en dos Then
- importeMN = importeMovimiento
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * tipoCambioActual - importeMovimiento, ImporteME:=importeMovimiento, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- End If
- End If
- IdCtaContable = CtaProveedorExtranjera
+ ' Dim Valor As Decimal = 0
+ ' For Each RowAcum As DataRow In GlobalDTAcumTamaños().FiltraParametros("CveEmpresa = 140").Rows
+ ' Dim TotalTamanio = TmpDT.FiltroPrimeroValor("Total", $"CvePS={RowAcum("CvePSCargo")}").ToDecimal()
+ ' If TotalTamanio > 0 Then
+ ' Valor += TotalTamanio
+ ' End If
+ ' Next
+
+ ' importeMovimiento += Valor
+ ' importeMN = importeMovimiento * tipoCambioActual * Multiplicador
+ 'End If
+
+ Dim ConceptoContabilizacionNC = 225
+ Dim CveMovimientoDevolucion As Integer = -1
+
+ 'CUANDO NO SE RECIBE LA MERCANCIA EN COMPRAS, SE REGISTRA EL 225, SI SE ESTA REGISTRANDO LA DEVOLUCION EN ALMACEN, SE REGISTRA EL 68
+ If Devolucion IsNot Nothing AndAlso Devolucion.DebeRealizarDevolucion AndAlso Devolucion.CveMovimiento > 0 Then
+ ConceptoContabilizacionNC = 68
+ CveMovimientoDevolucion = Devolucion.CveMovimiento
End If
- End If
- Case 59 'Documentos
- importeMovimiento = importeCreditos
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador
-
- If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, CveProveedor) Then
- If ObjConta.DtResultados.Rows.Count > 0 Then
+ If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContabilizacionNC, UsuarioActual.CveEmpresa) Then
If ObjConta.DtResultados.Rows.Count > 0 Then
IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero
End If
End If
- End If
- Case 37 'Deudores
-
-
- Dim CveConceptoContableDeoudor As Integer = If(RBLTipoDeudor.SelectedValue.ToEntero = 1, 37, 254)
-
- For Each rw As GridViewRow In GvDeudores.Rows
- If rw.FCCheckBox("Chk").Checked Then
-
- importeMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal
- OtrosGastosIngresos = rw.FCTextBox("TxtOtrosGastosIngresos").Text.ToDecimal
-
- importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL
-
- Dim OtrosGastosIngresosMN As Decimal = (OtrosGastosIngresos * tipoCambioActual * Multiplicador).RoundSQL
- Dim importeMNOtrosIngEgs As Decimal = ((importeMovimiento + OtrosGastosIngresos) * tipoCambioActual * Multiplicador).RoundSQL
-
- IdCtaContable = CtaProveedorDeudores
- Dim tCveProveedor As Integer = rw.DataKey("CveProveedor").ToEntero
+ Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
+ If importeMovimiento > 0 Or TxtTotal.Text.ToDecimal = 0 Then
+ RegistroCuentaPuente = True
+ Dim ImporteTransito As Decimal = 0
'Conta ContPAQ
- If CveConceptoContableDeoudor = 37 Then
- If IdCtaContable = 0 Then
- CuentasContablesInvalidas.Append(" " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", CveConceptoContableDeoudor))("ConceptoContable").ToString)
- idCuentaContabilizacion = 0
- End If
+ If IdCtaContable = 0 Then
+ CuentasContablesInvalidas.Append(" " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 68))("ConceptoContable").ToString)
+ idCuentaContabilizacion = 0
End If
- If OtrosGastosIngresos = 0 Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, CveConceptoContableDeoudor, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=tCveProveedor, CveIE:=rw.DataKey("CveIE").ToString.ToEntero, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True : Exit For
- End If
- Else
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, If(TipoMovimiento, False, True), (importeMovimiento + OtrosGastosIngresos), Referencia, CveConceptoContableDeoudor, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=tCveProveedor, CveIE:=rw.DataKey("CveIE").ToString.ToEntero, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNOtrosIngEgs, ImporteME:=If(tipoCambioActual = 1, 0, (importeMovimiento + OtrosGastosIngresos)), Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True : Exit For
- End If
+ 'SI ES GASTO DE ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68
+ If DdlTipoCompra.SelectedValue = "10" AndAlso ConceptoContabilizacionNC = 68 Then
+ SeContabiliza = False
+ IdCtaContable = 0
End If
- Dim Pago As New CompraPago With {
- .ImportePago = importeMovimiento,
- .CveIE = CveIE,
- .CveMonedaPago = rw.DataKey("CveMoneda").ToEntero,
- .OtroGastoIngreso = -OtrosGastosIngresos 'Se manda en negativo para no afectar en prepoliza, en funcion AplicaPrePolizaPagoCompra se mete en positivo por default
- }
- AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
- End If
- Next
- importeMovimiento = 0
- OtrosGastosIngresos = 0
+ 'se lleva saldo de Mercancía en tránsito
- Case 41 'Acreedores
- importeMovimiento = importeAcreedores
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador
+ If ChkNCInvNC.Checked Then
+ For Each Gvr As GridViewRow In GVNCInv.Rows
+ If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then
+ If Not ObjCompras.ComprasDetalleDevolucionesAdd(Gvr.DataKey("CveCompraDetalle").ToEntero, CveCompra, Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble, UsuarioActual.CveEmpresa) Then
+ ErrorMovInv = True
+ Exit For
+ End If
- IdCtaContable = CtaProveedorAcreedores
-
- Case 42 'Acreedores
- importeMovimiento = importeAcreedoresTarjeta
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador
- IdCtaContable = CtaProveedorAcreedores
-
- Case 18 'NC - Notas de Credito
-
- importeMovimiento = importeNC
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador
- If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}"
- IdCtaContable = CtaProveedor
- If DdlMoneda.SelectedValue.ToEntero <> 1 And UsuarioActual.CveEmpresa.Contiene(119) Then
- IdCtaContable = CtaProveedorExtranjera
- End If
-
- If importeMovimiento <> 0 Then
- GuardoConcepto18 = True
- If DdlMoneda.SelectedValue.ToEntero <> 1 And UsuarioActual.CveEmpresa.Contiene(119, 158) Then
-
- 'PROVISION de NC
- IdCtaContable = CtaProveedorExtranjera
- Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(15, DdlMoneda.SelectedValue.ToEntero, False, CveTipoConcepto)
- 'Dim CveCon As Integer = ObtConceptoContableProvisionCompra(CveTipoConcepto, DdlTipoComprobante.SelectedValue, DdlMoneda.SelectedValue.ToEntero, False)
-
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimiento, Referencia, ConPreP.CveConcepto, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza) Then
- IdCtaContable = CtaProveedorComplementaria
- 'CveCon = ObtConceptoContableProvisionCompra(CveTipoConcepto, DdlTipoComprobante.SelectedValue, DdlMoneda.SelectedValue.ToEntero, True)
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMN - importeMovimiento, Referencia, ConPreP.CveConceptoComplementario, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN - importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=tipoCambioActual) Then
- ErrorPrepoliza = True
- Exit Select
- End If
- Else
- ErrorPrepoliza = True
- Exit Select
- End If
-
- 'AMORTIZACIÓN EN EL REGISTRO
- For Each Gvr As GridViewRow In GvFacturaNC.Rows
- If Gvr.FCCheckBox("ChkFacturaNC").Checked Then
- Dim importeMovimientoNC = Gvr.FCTextBox("TxtImporte").Text.ToDecimal
-
- Dim Pago As New CompraPago
- Pago.ImportePago = importeMovimientoNC
- Pago.CveMonedaPago = CompraActual.CveMoneda
- Pago.CveCompraAmortizacion = CompraActual.CveCompra
- Pago.Referencia = CompraActual.SerieFolio
- Pago.TCPago = CompraActual.TC
- Pago.AplicaAcreditable = False
- Pago.TipoPago = "NC"
- Pago.Fecha = CompraActual.Fecha 'toma la misma fecha de la provisión en el pago de NC
-
- Dim CompraPago As New Compra
- 'datos de la compra tipodocto:Fac, para sobreescribirlos
- CompraPago.CveCompra = Gvr.DataKey("CveCompra").ToEntero
- CompraPago.CveProveedor = Gvr.DataKey("CveProveedor").ToEntero
- CompraPago.SerieFolio = Gvr.DataKey("SerieFolio")
- CompraPago.TC = Gvr.DataKey("TipoCambio").ToDecimal
- CompraPago.Fecha = Gvr.DataKey("Fecha").ToDate
- CompraPago.CveMoneda = Gvr.DataKey("CveMoneda").ToEntero
- CompraPago.Total = Gvr.DataKey("Total").ToDecimal
- CompraPago.CveTipoConceptoProveedor = Gvr.DataKey("CveTipoConcepto").ToEntero
- CompraPago.CveSubProyecto = CompraActual.CveSubProyecto
-
- ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraPago, Pago, CvePrePoliza, ObjConta)
- If ErrorPrepoliza Then
- Exit For
End If
+ Next
+
+ Dim diferenciaTransito As Decimal = 0
+ For Each Gvr As GridViewRow In GVNCInvAlmacen.Rows
+ If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then
+ Dim importeMNTemp As Decimal = 0
+ If Not ObjCompras.ComprasDetalleDevolucionesAdd(Gvr.DataKey("CveCompraDetalle").ToEntero, CveCompra, Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble, UsuarioActual.CveEmpresa) Then
+ ErrorMovInv = True
+ Exit For
+ End If
+ Dim DifTC As Decimal = tipoCambioActual - Gvr.DataKey("TipoCambio").ToDecimal
+ 'diferenciaTransito = DifTC * (Gvr.DataKey("IVA").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal)
+ 'diferenciaTransito += DifTC * (Gvr.DataKey("IEPSPS").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal)
+ importeMNTemp = (Gvr.FCTextBox("TxtPU").Text.ToDecimal * Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal * Gvr.DataKey("TipoCambio").ToDecimal).RoundSQL
+ ImporteTransito += importeMNTemp
+ 'se registra por cada compra relacionada
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMNTemp, Referencia, ConceptoContabilizacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMNTemp, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=Gvr.DataKey("TipoCambio").ToDecimal, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ End If
+ End If
+ Next
+
+ 'la diferencia se va aplicar sobre los
+
+ 'Dim diferenciaTransito As Decimal = ImporteTransito - importeMN.RoundSQL
+
+ If diferenciaTransito <> 0 Then
+ Dim tCveCon As Integer = 65
+ If diferenciaTransito < 0 Then
+ tCveCon = 64
+ End If
+ diferenciaTransito = Math.Abs(diferenciaTransito)
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, If(tCveCon = 64, True, False), diferenciaTransito, Referencia, tCveCon, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=diferenciaTransito, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=1, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto) Then
+ ErrorPrepoliza = True
+ End If
+ End If
+
+ Else
+
+ Dim DiferenciaDevolucion As Decimal = importeMovimiento - TotalRealDevolucion
+
+
+ If TotalRealDevolucion <> 0 Then
+
+ If Math.Abs(DiferenciaDevolucion) > 0 Then
+
+
+ Dim CveSubProyecto69 As Integer = TmpDT.FiltroPrimeroValor("CveSubProyecto", "CveSubProyecto > 0 ").ToEntero
+ Dim CveClasificacion69 As Integer = TmpDT.FiltroPrimeroValor("CveClasificacion", "CveClasificacion > 0 ").ToEntero
+
+
+ Dim IdCtaContable69 As Integer = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {CveClasificacion69}").ToString.ToEntero
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DiferenciaDevolucion.RoundSQL(), Referencia, 69, Concepto, FechaMovimiento, IdCtaContable69, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=DiferenciaDevolucion, ImporteME:=If(tipoCambioActual = 1, 0, DiferenciaDevolucion), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto69, CveClasificacion:=CveClasificacion69) Then
+ ErrorPrepoliza = True
+ End If
+ End If
+
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, TotalRealDevolucion.RoundSQL(), Referencia, ConceptoContabilizacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=(TotalRealDevolucion * tipoCambioActual).RoundSQL(), ImporteME:=If(tipoCambioActual = 1, 0, TotalRealDevolucion).RoundSQL(), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ End If
+
+
+ Else
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento.RoundSQL, Referencia, ConceptoContabilizacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMovimiento * tipoCambioActual * Multiplicador, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ End If
+ End If
+
+ End If
+ End If
+
+ If UsuarioActual.CveEmpresa.Contiene(119) Then
+ Dim ContienePSNeteoBonif As Boolean = False
+ For Each Dr As DataRow In TmpDT.Rows
+ If Dr("CveClasificacion").ToString.ToEntero.Contiene(20319) Or DdlTipoCompra.SelectedValue.ToEntero = 11 Then 'clasificación de Bonificación, no se incluirá en el neteo
+ ContienePSNeteoBonif = True
+ Exit For
End If
Next
- If ErrorPrepoliza Then
- ErrorMovtosCxP = True
- Exit Select
- End If
+ If ContienePSNeteoBonif Then
+ importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveClasificacion = 20319 ").ToString.ToDecimal
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador
+ Dim IdCtaContableDescCompra As Integer = UsuarioActual.Empresa.Funcionalidad(405).ToEntero
- Else
- IdCtaContable = CtaProveedor
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), Contabilizable:=SeContabiliza) Then
- For Each Gvr As GridViewRow In GvFacturaNC.Rows
- If Gvr.FCCheckBox("ChkFacturaNC").Checked Then
- 'Dim CvePrePolizaTemp = ObjConta.AddPrePolizas("Compras/Registrar", If(EsContado And CvePlantillaPrePoliza = 1, 2, CvePlantillaPrePoliza), ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa))
- Dim importeMovimientoNC = Gvr.FCTextBox("TxtImporte").Text.ToDecimal
- Dim importeMNNC = importeMovimientoNC * tipoCambioActual * Multiplicador
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimientoNC, Referencia, 272, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), CveCompraAmortizacion:=CveCompra, Contabilizable:=SeContabiliza) Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMovimientoNC, Referencia, 60, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- End If
- Else
- ErrorPrepoliza = True
- End If
- 'ObjConta.PrePolizaUnificacion(CvePrePoliza, CvePrePolizaTemp)
+ Dim CveSubProyecto259 As Integer = TmpDT.MAX("CveSubProyecto").ToEntero
+
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimiento, Referencia, 259, Concepto, FechaMovimiento, IdCtaContableDescCompra, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto259) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -importeMovimiento, Referencia, 259, Concepto, FechaMovimiento, IdCtaContableDescCompra, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=-importeMN, ImporteME:=If(tipoCambioActual = 1, 0, -importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto259) Then
+ ErrorPrepoliza = True
End If
- Next
- End If
- End If
- End If
-
- importeMovimiento = 0
-
- Case 29 'Funcionarios y Empleados
- importeMovimiento = importeFE
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador
-
- If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, CvePersonal) Then
- If ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContPersonal").ToString.ToEntero
- End If
- End If
-
- If importeMovimiento > 0 Then
-
- Dim Pago As New CompraPago
- If DDlCheques.SelectedValue.ToEntero > 0 Then
- Pago.ImportePago = importeFE
- Pago.CveIE = DDlCheques.SelectedValue.ToEntero
- Pago.CvePersonal = CvePersonal
-
- ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
- Else
- Alert("Debe de seleccionar un cheque.", TipoMensaje.MsgAdvertencia)
- ErrorPrepoliza = True
- End If
-
- End If
-
- Case 21 'Anticipo
-
- If ArrAnticipos.Count > 0 Then
-
- Dim PorcentajeImpuestoAnticipo = PorcentajeIVA
-
- For Each Ant As Compras_Compras.Anticipos In ArrAnticipos
-
- TipoMovimiento = If(Row("TipoMovto").ToString = "True", True, False)
-
- Dim ConceptoContableAnticipo, ConceptoContableAnticipoComplementaria As Integer
- Dim CveCompraNC As Integer = CveCompra
-
- Select Case Ant.TipoMovto
- Case "NC", "DEV"
- ConceptoContableAnticipo = 60
- ConceptoContableAnticipoComplementaria = 235
- CveCompraNC = Ant.CveCompra 'cuando es NC, se utiliza la clave de compra de la nota de credito
- IdCtaContable = CtaProveedor
- Case "Egsc"
- ConceptoContableAnticipo = 21
- IdCtaContable = CtaProveedorAnticipos
-
- Case "DD"
- ConceptoContableAnticipo = 37
- IdCtaContable = CtaProveedorDeudores
- Case "Ant"
- ConceptoContableAnticipo = 265
- ConceptoContableAnticipoComplementaria = 266
- CveCompraNC = Ant.CveCompra
- IdCtaContable = CtaProveedorAnticipos
- End Select
-
- importeMovimiento = Ant.Importe
- importeMN = importeMovimiento * tipoCambioActual * Multiplicador
-
- Dim ImporComisionAnticipo As Decimal = Ant.ImporteComision
- Dim importeMNComision As Decimal = ImporComisionAnticipo * tipoCambioActual * Multiplicador
-
- If importeMovimiento <> 0 Then
- 'Conta ContPAQ
- If IdCtaContable = 0 Then
- CuentasContablesInvalidas.Append(" " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString)
- idCuentaContabilizacion = 0
+ Else
+ ErrorPrepoliza = True
End If
- 'AMORTIZACIÓN NC ESPECIAL COMPLEMENTARIA
- If ConceptoContableAnticipo.Contiene(60) And DdlMoneda.SelectedValue.ToEntero <> 1 Then
- Dim importeMovimientoNC = Ant.Importe
- Dim importeMNNC = 0.0D
- Dim TipoCambioNC = Ant.TCCompra
+ End If
+ End If
- importeMNNC = importeMovimientoNC * TipoCambioNC * Multiplicador
- IdCtaContable = CtaProveedorExtranjera
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimientoNC, Referencia, 60, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then
- IdCtaContable = CtaProveedorComplementaria
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMNNC - importeMovimientoNC, Referencia, 235, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then
+
+ End If
+
+ 'ChkNCInvNC
+
+ If Not RegistroCuentaPuente AndAlso Not ChkNCInvNC.Checked Then
+ 'GASTO
+ If UsuarioActual.CveEmpresa = 119 Then
+ DT = TmpDT
+ Else
+ DT = TmpDT.FiltraParametros("ISNULL(AplicaCostoIndirecto,0) <> 1")
+ End If
+ 'RECORREMOS PARA DETECTAR LA MODALIDAD DEL ALMACEN, EN CASO DE SER SOLO EXISTENCIA LIMPIAMOS CVEALMACEN
+ If DdlTipoCompra.SelectedValue <> "10" Then
+ For Each Dr As DataRow In DT.Rows
+ If DtAlmacenes.FiltroPrimeroValor("Modalidad", $"CveAlmacen = {Dr("CveAlmacen").ToString.ToEntero}").ToString = "Solo Existencia" Then
+ Dr("CveAlmacen") = 0
+ End If
+ Dr.AcceptChanges()
+ Next
+ End If
+
+ DT.AcceptChanges()
+ DtAlmacenes.Dispose()
+
+ 'QUITA 1-[MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA)] 2-[NC CON PRODUCTOS]
+ If AgregaMercanciaInventario Then
+ DT = DT.FiltraParametros("ISNULL(CveTipoPS,0) <> 2")
+ End If
+
+ Dim DTDistinct = DT.Copy
+ If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then
+
+ For Each drowdis As DataRow In DTDistinct.Rows
+ If drowdis("CveTipoGasto").ToString = "" Then
+ drowdis("CveTipoGasto") = 0
+ End If
+ If drowdis("TipoGasto").ToString.Trim = "" Then
+ drowdis("TipoGasto") = "ND"
+
+ End If
+ Next
+
+ DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF, 0) <> 2", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"})
+ Else
+
+ For Each drowdis As DataRow In DTDistinct.Rows
+ If drowdis("CveTipoGasto").ToString = "" Then
+ drowdis("CveTipoGasto") = 0
+ End If
+ If drowdis("TipoGasto").ToString.Trim = "" Then
+ drowdis("TipoGasto") = "ND"
+
+ End If
+ Next
+ DTDistinct.AcceptChanges()
+
+ DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"})
+ End If
+ 'RMF, si es concepto relacionado a flete o importacion, no debe de afectar al gasto
+ If CveFlete > 0 OrElse CveImportacion > 0 OrElse (CveCompraRefacturacion > 0 AndAlso ChkRefacNC.Checked) Then
+ DTDistinct.Clear()
+ End If
+
+ Dim tTipoMovimiento As Boolean = TipoMovimiento
+ If DTDistinct.Rows.Count > 0 Then
+ For Each Row2 As DataRow In DTDistinct.Rows
+
+ tTipoMovimiento = TipoMovimiento
+ 'DETERMINA IMPORTE
+ If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then
+ importeMovimiento = DT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), String.Format("ISNULL(TipoAF,0) <> 2 And CveClasificacion = {0} And CveSubProyecto = {1} And ISNULL(CveTipoGasto,0) = {2}", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal
+ Else
+ importeMovimiento = DT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), String.Format("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And CveClasificacion = {0} And CveSubProyecto = {1} And ISNULL(CveTipoGasto,0) = {2}", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal
+ End If
+ 'se debe de restar el costo indirecto, si se recibió por OC sobre el importe del gasto, por si ya está incuido
+ importeMovimiento = importeMovimiento - CostoIndirectoAcum176
+
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador '[IPP] EL 6 DEBE SER POSITIVO 27/AGOSTO/2018
+
+ 'CLASIFICACION
+ If Row2("CveClasificacion").ToString.ToEntero > 0 AndAlso DdlTipoComprobante.SelectedValue = "Fac" Then
+
+ If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(6, Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero) Then
+ If ObjConta.DtResultados.Rows.Count > 0 AndAlso ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero
+ Else
+ IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToString.ToEntero
+ End If
+ End If
+ End If
+
+ 'AGREGA MOVIMIENTO
+ If importeMovimiento.RoundSQL <> 0 Then
+
+ Dim tcvecon As Integer = 6
+ Dim tidctacon As Integer = 6
+ tidctacon = IdCtaContable
+ If DdlTipoComprobante.SelectedValue = "Ant" Then
+ tcvecon = 264
+ tidctacon = ViewState("CtaProveedorAnticipos").ToString.ToEntero
+ If DdlMoneda.SelectedValue = "2" Then
+ tidctacon = ViewState("CtaProveedorAnticiposExtranjera").ToString.ToEntero
+ End If
+
+ ElseIf DdlTipoComprobante.SelectedValue = "NC" Then
+ tcvecon = 259
+ tidctacon = UsuarioActual.Empresa.Funcionalidad(405).ToEntero
+
+ ElseIf UsuarioActual.CveEmpresa = 119 AndAlso Row2("CveClasificacion").ToString = "20473" Then
+ 'CODIGO FIJO, SI ES LA CLASIFICACION DE "SEGURO/SERVICIO COSTO", SE ABONARÁ
+ tTipoMovimiento = True
+ importeMovimiento = -importeMovimiento
+ importeMN = -importeMN
+ End If
+
+
+ Dim usacomplementariaProveedor As Boolean = False
+ usacomplementariaProveedor = If(tipoCambioActual > 1, True, False)
+
+ If usacomplementariaProveedor AndAlso DdlTipoComprobante.SelectedValue = "Ant" Then
+ 'importeMovimiento
+
+ Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
+ importeMN = tipoCambioActual * importeMovimiento - importeMovimiento
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tTipoMovimiento, importeMovimiento, Referencia, 266, Concepto, FechaMovimiento, tidctacon, 0, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteMX:=importeMN, ImporteME:=importeMovimiento, CveTipoGasto:=Row2("CveTipoGasto").ToString.ToEntero, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ End If
+ importeMN = importeMovimiento
+ End If
+
+ Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
+
+ If Not Insertado205 Then
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tTipoMovimiento, importeMovimiento, Referencia, tcvecon, Concepto, FechaMovimiento, tidctacon, 0, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), CveTipoGasto:=Row2("CveTipoGasto").ToString.ToEntero, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ End If
+
+ End If
+
+ End If
+ Next
+ End If
+ End If
+
+ 'LIMPIA
+ importeMovimiento = 0
+ IdCtaContable = 0
+ End If
+ Case 5 'Proveedores
+ If CveTipoConcepto = 2 Then ConceptoContable = 305 'cuando es acreedor
+ Dim UsaComplementaria As Boolean = True
+
+ If UsuarioActual.CveEmpresa.Contiene(13, 83) Then UsaComplementaria = False
+ If tipoCambioActual <> 1 Then
+ Select Case ConceptoContable
+ Case 5
+ ConceptoContable = 311
+ Case 305
+ ConceptoContable = 306
+ Case Else
+ End Select
+ End If
+
+ If Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then
+
+ importeMovimiento = importeProv
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador
+
+ If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}"
+ Dim CveConceptoContableComplementaria As Integer = 201
+ If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 307
+
+ If tipoCambioActual = 1 Then
+ IdCtaContable = If(CveTipoConcepto = 2, CtaProveedorAcreedores, CtaProveedor)
+ Else
+ IdCtaContable = CtaProveedorComplementaria
+ If importeMovimiento <> 0 AndAlso (IdCtaContable > 0 Or UsaComplementaria) Then 'Cuando tiene complementaria lo dividimos en dos Then
+ importeMN = importeMovimiento
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * tipoCambioActual - importeMovimiento, ImporteME:=importeMovimiento, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ End If
+ End If
+ IdCtaContable = CtaProveedorExtranjera
+ End If
+ End If
+
+ Case 59 'Documentos
+ importeMovimiento = importeCreditos
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador
+
+ If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, CveProveedor) Then
+ If ObjConta.DtResultados.Rows.Count > 0 Then
+ If ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero
+ End If
+ End If
+ End If
+
+ Case 37 'Deudores
+
+
+ Dim CveConceptoContableDeoudor As Integer = If(RBLTipoDeudor.SelectedValue.ToEntero = 1, 37, 254)
+
+ For Each rw As GridViewRow In GvDeudores.Rows
+ If rw.FCCheckBox("Chk").Checked Then
+
+ importeMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal
+ OtrosGastosIngresos = rw.FCTextBox("TxtOtrosGastosIngresos").Text.ToDecimal
+
+ importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL
+
+ Dim OtrosGastosIngresosMN As Decimal = (OtrosGastosIngresos * tipoCambioActual * Multiplicador).RoundSQL
+ Dim importeMNOtrosIngEgs As Decimal = ((importeMovimiento + OtrosGastosIngresos) * tipoCambioActual * Multiplicador).RoundSQL
+
+ IdCtaContable = CtaProveedorDeudores
+ Dim tCveProveedor As Integer = rw.DataKey("CveProveedor").ToEntero
+
+ 'Conta ContPAQ
+ If CveConceptoContableDeoudor = 37 Then
+ If IdCtaContable = 0 Then
+ CuentasContablesInvalidas.Append(" " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", CveConceptoContableDeoudor))("ConceptoContable").ToString)
+ idCuentaContabilizacion = 0
+ End If
+ End If
+
+ If OtrosGastosIngresos = 0 Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, CveConceptoContableDeoudor, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=tCveProveedor, CveIE:=rw.DataKey("CveIE").ToString.ToEntero, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True : Exit For
+ End If
+ Else
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, If(TipoMovimiento, False, True), (importeMovimiento + OtrosGastosIngresos), Referencia, CveConceptoContableDeoudor, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=tCveProveedor, CveIE:=rw.DataKey("CveIE").ToString.ToEntero, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNOtrosIngEgs, ImporteME:=If(tipoCambioActual = 1, 0, (importeMovimiento + OtrosGastosIngresos)), Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True : Exit For
+ End If
+ End If
+
+ Dim Pago As New CompraPago With {
+ .ImportePago = importeMovimiento,
+ .CveIE = CveIE,
+ .CveMonedaPago = rw.DataKey("CveMoneda").ToEntero,
+ .OtroGastoIngreso = -OtrosGastosIngresos 'Se manda en negativo para no afectar en prepoliza, en funcion AplicaPrePolizaPagoCompra se mete en positivo por default
+ }
+ AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
+ End If
+ Next
+ importeMovimiento = 0
+ OtrosGastosIngresos = 0
+
+ Case 41 'Acreedores
+ importeMovimiento = importeAcreedores
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador
+
+ IdCtaContable = CtaProveedorAcreedores
+
+ Case 42 'Acreedores
+ importeMovimiento = importeAcreedoresTarjeta
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador
+ IdCtaContable = CtaProveedorAcreedores
+
+ Case 18 'NC - Notas de Credito
+
+ importeMovimiento = importeNC
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador
+ If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}"
+ IdCtaContable = CtaProveedor
+ If DdlMoneda.SelectedValue.ToEntero <> 1 And UsuarioActual.CveEmpresa.Contiene(119) Then
+ IdCtaContable = CtaProveedorExtranjera
+ End If
+
+ If importeMovimiento <> 0 Then
+ GuardoConcepto18 = True
+ If DdlMoneda.SelectedValue.ToEntero <> 1 And UsuarioActual.CveEmpresa.Contiene(119, 158) Then
+
+ 'PROVISION de NC
+ IdCtaContable = CtaProveedorExtranjera
+ Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(15, DdlMoneda.SelectedValue.ToEntero, False, CveTipoConcepto)
+ 'Dim CveCon As Integer = ObtConceptoContableProvisionCompra(CveTipoConcepto, DdlTipoComprobante.SelectedValue, DdlMoneda.SelectedValue.ToEntero, False)
+
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimiento, Referencia, ConPreP.CveConcepto, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza) Then
+ IdCtaContable = CtaProveedorComplementaria
+ 'CveCon = ObtConceptoContableProvisionCompra(CveTipoConcepto, DdlTipoComprobante.SelectedValue, DdlMoneda.SelectedValue.ToEntero, True)
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMN - importeMovimiento, Referencia, ConPreP.CveConceptoComplementario, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN - importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=tipoCambioActual) Then
+ ErrorPrepoliza = True
+ Exit Select
+ End If
+ Else
+ ErrorPrepoliza = True
+ Exit Select
+ End If
+
+ 'AMORTIZACIÓN EN EL REGISTRO
+ For Each Gvr As GridViewRow In GvFacturaNC.Rows
+ If Gvr.FCCheckBox("ChkFacturaNC").Checked Then
+ Dim importeMovimientoNC = Gvr.FCTextBox("TxtImporte").Text.ToDecimal
+
+ Dim Pago As New CompraPago
+ Pago.ImportePago = importeMovimientoNC
+ Pago.CveMonedaPago = CompraActual.CveMoneda
+ Pago.CveCompraAmortizacion = CompraActual.CveCompra
+ Pago.Referencia = CompraActual.SerieFolio
+ Pago.TCPago = CompraActual.TC
+ Pago.AplicaAcreditable = False
+ Pago.TipoPago = "NC"
+ Pago.Fecha = CompraActual.Fecha 'toma la misma fecha de la provisión en el pago de NC
+
+ Dim CompraPago As New Compra
+ 'datos de la compra tipodocto:Fac, para sobreescribirlos
+ CompraPago.CveCompra = Gvr.DataKey("CveCompra").ToEntero
+ CompraPago.CveProveedor = Gvr.DataKey("CveProveedor").ToEntero
+ CompraPago.SerieFolio = Gvr.DataKey("SerieFolio")
+ CompraPago.TC = Gvr.DataKey("TipoCambio").ToDecimal
+ CompraPago.Fecha = Gvr.DataKey("Fecha").ToDate
+ CompraPago.CveMoneda = Gvr.DataKey("CveMoneda").ToEntero
+ CompraPago.Total = Gvr.DataKey("Total").ToDecimal
+ CompraPago.CveTipoConceptoProveedor = Gvr.DataKey("CveTipoConcepto").ToEntero
+ CompraPago.CveSubProyecto = CompraActual.CveSubProyecto
+
+ ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraPago, Pago, CvePrePoliza, ObjConta)
+ If ErrorPrepoliza Then
+ Exit For
+ End If
+ End If
+ Next
+
+ If ErrorPrepoliza Then
+ ErrorMovtosCxP = True
+ Exit Select
+ End If
+
+ Else
+ IdCtaContable = CtaProveedor
+
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), Contabilizable:=SeContabiliza) Then
+ For Each Gvr As GridViewRow In GvFacturaNC.Rows
+ If Gvr.FCCheckBox("ChkFacturaNC").Checked Then
+ 'Dim CvePrePolizaTemp = ObjConta.AddPrePolizas("Compras/Registrar", If(EsContado And CvePlantillaPrePoliza = 1, 2, CvePlantillaPrePoliza), ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa))
+ Dim importeMovimientoNC = Gvr.FCTextBox("TxtImporte").Text.ToDecimal
+ Dim importeMNNC = importeMovimientoNC * tipoCambioActual * Multiplicador
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimientoNC, Referencia, 272, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), CveCompraAmortizacion:=CveCompra, Contabilizable:=SeContabiliza) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMovimientoNC, Referencia, 60, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), Contabilizable:=SeContabiliza) Then
ErrorPrepoliza = True
- Exit For
End If
Else
ErrorPrepoliza = True
+ End If
+ 'ObjConta.PrePolizaUnificacion(CvePrePoliza, CvePrePolizaTemp)
+ End If
+ Next
+ End If
+ End If
+ End If
+
+ importeMovimiento = 0
+
+ Case 29 'Funcionarios y Empleados
+ importeMovimiento = importeFE
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador
+
+ If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, CvePersonal) Then
+ If ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContPersonal").ToString.ToEntero
+ End If
+ End If
+
+ If importeMovimiento > 0 Then
+
+ Dim Pago As New CompraPago
+ If DDlCheques.SelectedValue.ToEntero > 0 Then
+ Pago.ImportePago = importeFE
+ Pago.CveIE = DDlCheques.SelectedValue.ToEntero
+ Pago.CvePersonal = CvePersonal
+
+ ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
+ Else
+ Alert("Debe de seleccionar un cheque.", TipoMensaje.MsgAdvertencia)
+ ErrorPrepoliza = True
+ End If
+
+ End If
+
+ Case 21 'Anticipo
+
+ If ArrAnticipos.Count > 0 Then
+
+ Dim PorcentajeImpuestoAnticipo = PorcentajeIVA
+
+ For Each Ant As Compras_Compras.Anticipos In ArrAnticipos
+
+ TipoMovimiento = If(Row("TipoMovto").ToString = "True", True, False)
+
+ Dim ConceptoContableAnticipo, ConceptoContableAnticipoComplementaria As Integer
+ Dim CveCompraNC As Integer = CveCompra
+
+ Select Case Ant.TipoMovto
+ Case "NC", "DEV"
+ ConceptoContableAnticipo = 60
+ ConceptoContableAnticipoComplementaria = 235
+ CveCompraNC = Ant.CveCompra 'cuando es NC, se utiliza la clave de compra de la nota de credito
+ IdCtaContable = CtaProveedor
+ Case "Egsc"
+ ConceptoContableAnticipo = 21
+ IdCtaContable = CtaProveedorAnticipos
+
+ Case "DD"
+ ConceptoContableAnticipo = 37
+ IdCtaContable = CtaProveedorDeudores
+ Case "Ant"
+ ConceptoContableAnticipo = 265
+ ConceptoContableAnticipoComplementaria = 266
+ CveCompraNC = Ant.CveCompra
+ IdCtaContable = CtaProveedorAnticipos
+ End Select
+
+ importeMovimiento = Ant.Importe
+ importeMN = importeMovimiento * tipoCambioActual * Multiplicador
+
+ Dim ImporComisionAnticipo As Decimal = Ant.ImporteComision
+ Dim importeMNComision As Decimal = ImporComisionAnticipo * tipoCambioActual * Multiplicador
+
+ If importeMovimiento <> 0 Then
+ 'Conta ContPAQ
+ If IdCtaContable = 0 Then
+ CuentasContablesInvalidas.Append(" " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString)
+ idCuentaContabilizacion = 0
+ End If
+
+ 'AMORTIZACIÓN NC ESPECIAL COMPLEMENTARIA
+ If ConceptoContableAnticipo.Contiene(60) And DdlMoneda.SelectedValue.ToEntero <> 1 Then
+ Dim importeMovimientoNC = Ant.Importe
+ Dim importeMNNC = 0.0D
+ Dim TipoCambioNC = Ant.TCCompra
+
+ importeMNNC = importeMovimientoNC * TipoCambioNC * Multiplicador
+ IdCtaContable = CtaProveedorExtranjera
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimientoNC, Referencia, 60, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then
+ IdCtaContable = CtaProveedorComplementaria
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMNNC - importeMovimientoNC, Referencia, 235, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
Exit For
End If
+ Else
+ ErrorPrepoliza = True
+ Exit For
+ End If
+ importeMNNC = importeMovimientoNC * tipoCambioActual * Multiplicador
+ IdCtaContable = CtaProveedorExtranjera
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoNC, Referencia, 272, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Ant.CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
+
+ Dim CveConceptoContableComplementaria As Integer = 206
+ If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 310 'cuando es acreedor
+
+ IdCtaContable = CtaProveedorComplementaria
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMNNC - importeMovimientoNC, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+ Else
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ ' FLUCTUACION CAMBIARIA
+ If tipoCambioActual <> TipoCambioNC Then
+ importeMovimiento = (importeMovimientoNC * tipoCambioActual) - (importeMovimientoNC * TipoCambioNC)
+
+ If importeMovimiento > 0 Then
+ ConceptoContable = 64
+ TipoMovimiento = True
+ ElseIf importeMovimiento < 0 Then
+ ConceptoContable = 65
+ TipoMovimiento = False
+ End If
+
+ importeMovimiento = importeMovimiento.Abs.RoundSQL()
+ importeMN = importeMovimiento
+ If importeMovimiento <> 0 Then
+
+ Dim CveSubProyecto6465 As Integer = TmpDT.FiltroPrimeroValor("CveSubProyecto", " CveSubProyecto > 0").ToEntero
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Concepto, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveSubProyecto:=CveSubProyecto6465, CveProveedor:=CveProveedor, CveIE:=CveIE, ImporteMX:=importeMN, CvePrePolizaOriginal:=CvePrePoliza, ImporteME:=0, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+ End If
+ End If
+
+ ElseIf ConceptoContableAnticipo.Contiene(265) And DdlMoneda.SelectedValue.ToEntero <> 1 Then
+ Dim importeMovimientoNC = Ant.Importe
+ Dim importeMNNC = 0.0D
+ Dim TipoCambioNC = Ant.TCCompra
+
+ importeMNNC = importeMovimientoNC * TipoCambioNC * Multiplicador
+ IdCtaContable = CtaProveedorAnticiposExtranjera
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimientoNC, Referencia, 265, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then
+ IdCtaContable = CtaProveedorAnticiposComplementaria
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMNNC - importeMovimientoNC, Referencia, 266, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+ Else
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ If TxtTotal.Text.ToDouble > 0 AndAlso TieneAnticiposXML = False Then
importeMNNC = importeMovimientoNC * tipoCambioActual * Multiplicador
- IdCtaContable = CtaProveedorExtranjera
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoNC, Referencia, 272, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Ant.CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
+ IdCtaContable = CtaProveedorExtranjera ' CtaProveedorAnticiposExtranjera
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoNC, Referencia, 272, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, CveCompraAmortizacion:=CveCompraNC, Contabilizable:=SeContabiliza) Then
Dim CveConceptoContableComplementaria As Integer = 206
If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 310 'cuando es acreedor
- IdCtaContable = CtaProveedorComplementaria
+ IdCtaContable = CtaProveedorExtranjera 'CtaProveedorAnticiposComplementaria
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMNNC - importeMovimientoNC, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
ErrorPrepoliza = True
Exit For
@@ -7306,510 +7337,206 @@ Partial Class Compras_Compras
Exit For
End If
- ' FLUCTUACION CAMBIARIA
- If tipoCambioActual <> TipoCambioNC Then
- importeMovimiento = (importeMovimientoNC * tipoCambioActual) - (importeMovimientoNC * TipoCambioNC)
+ If Ant.TipoMovto.Contiene("Ant") Then
- If importeMovimiento > 0 Then
- ConceptoContable = 64
- TipoMovimiento = True
- ElseIf importeMovimiento < 0 Then
- ConceptoContable = 65
- TipoMovimiento = False
- End If
+ If importeMovimientoNC <> 0 Then
+ Dim Pago As New CompraPago
+ Pago.ImportePago = importeMovimientoNC
+ Pago.CveIE = Ant.CveIE
+ Pago.CveMonedaPago = 1
+ Pago.OtroGastoIngreso = ImporComisionAnticipo
- importeMovimiento = importeMovimiento.Abs.RoundSQL()
- importeMN = importeMovimiento
- If importeMovimiento <> 0 Then
-
- Dim CveSubProyecto6465 As Integer = TmpDT.FiltroPrimeroValor("CveSubProyecto", " CveSubProyecto > 0").ToEntero
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Concepto, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveSubProyecto:=CveSubProyecto6465, CveProveedor:=CveProveedor, CveIE:=CveIE, ImporteMX:=importeMN, CvePrePolizaOriginal:=CvePrePoliza, ImporteME:=0, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- Exit For
- End If
- End If
- End If
-
- ElseIf ConceptoContableAnticipo.Contiene(265) And DdlMoneda.SelectedValue.ToEntero <> 1 Then
- Dim importeMovimientoNC = Ant.Importe
- Dim importeMNNC = 0.0D
- Dim TipoCambioNC = Ant.TCCompra
-
- importeMNNC = importeMovimientoNC * TipoCambioNC * Multiplicador
- IdCtaContable = CtaProveedorAnticiposExtranjera
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimientoNC, Referencia, 265, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then
- IdCtaContable = CtaProveedorAnticiposComplementaria
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMNNC - importeMovimientoNC, Referencia, 266, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- Exit For
- End If
- Else
- ErrorPrepoliza = True
- Exit For
- End If
-
- If TxtTotal.Text.ToDouble > 0 AndAlso TieneAnticiposXML = False Then
- importeMNNC = importeMovimientoNC * tipoCambioActual * Multiplicador
- IdCtaContable = CtaProveedorExtranjera ' CtaProveedorAnticiposExtranjera
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoNC, Referencia, 272, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, CveCompraAmortizacion:=CveCompraNC, Contabilizable:=SeContabiliza) Then
-
- Dim CveConceptoContableComplementaria As Integer = 206
- If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 310 'cuando es acreedor
-
- IdCtaContable = CtaProveedorExtranjera 'CtaProveedorAnticiposComplementaria
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMNNC - importeMovimientoNC, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- Exit For
- End If
- Else
- ErrorPrepoliza = True
- Exit For
- End If
-
- If Ant.TipoMovto.Contiene("Ant") Then
-
- If importeMovimientoNC <> 0 Then
- Dim Pago As New CompraPago
- Pago.ImportePago = importeMovimientoNC
- Pago.CveIE = Ant.CveIE
- Pago.CveMonedaPago = 1
- Pago.OtroGastoIngreso = ImporComisionAnticipo
-
- ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
-
- End If
+ ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
End If
End If
- Else
-
- Dim usacomplementariaAnticipo As Boolean = False
- usacomplementariaAnticipo = If(Ant.TCCompra > 1 And Not UsuarioActual.CveEmpresa.Contiene(13, 83), True, False)
- Dim TipoCambioAnt As Decimal = Ant.TCCompra
-
- Dim ImporteAnt As Decimal = importeMovimiento
- Dim ImporteAntMN As Decimal = ImporteAnt * TipoCambioAnt
-
- If usacomplementariaAnticipo Then
- IdCtaContable = CtaProveedorAnticiposComplementaria
- ImporteAntMN = TipoCambioAnt * ImporteAnt - ImporteAnt
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAnt, Referencia, 266, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=ImporteAntMN, ImporteME:=ImporteAnt, TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- Exit For
- End If
- ImporteAntMN = ImporteAnt
- End If
-
- If TipoCambioAnt > 1 Then
- IdCtaContable = CtaProveedorAnticiposExtranjera
- End If
-
- 'Agregamos el 21/37/60
-
-
- 'Dim ImporComisionAnticipo As Decimal = Ant.ImporteComision
- 'Dim importeMNComision As Decimal = ImporComisionAnticipo * tipoCambioActual * Multiplicador
-
- If Not usacomplementariaAnticipo Then
- ImporteAntMN = TipoCambioAnt * ImporteAnt
- End If
-
- If ImporComisionAnticipo = 0 Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAnt, Referencia, ConceptoContableAnticipo, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteMX:=ImporteAntMN, ImporteME:=If(tipoCambioActual = 1, 0, ImporteAnt), TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- End If
- Else
- Dim ImporteAntMNComision As Decimal = (ImporteAnt + ImporComisionAnticipo) * TipoCambioAnt
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, (ImporteAnt + ImporComisionAnticipo), Referencia, ConceptoContableAnticipo, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteMX:=ImporteAntMNComision, ImporteME:=If(tipoCambioActual = 1, 0, (ImporteAnt + ImporComisionAnticipo)), TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- End If
- End If
-
-
-
- If TxtTotal.Text.ToDouble > 0 AndAlso TieneAnticiposXML = False Then
-
- Dim Pago As New CompraPago
- Pago.ImportePago = importeMovimiento
- Pago.CveIE = Ant.CveIE
- Pago.TCPago = Ant.TCCompra
- Pago.CveMonedaPago = If(Ant.TCCompra > 1, 2, 1)
- Pago.OtroGastoIngreso = ImporComisionAnticipo
-
- ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
-
- End If
-
End If
- '** PRUEBA CUANDO SE AMORTIZA NC ANTES DE QUE SE REGISTRE NO DEBE TENER CONCEPTO 19 ** JM 01/06/2017 SE HIZO ESTO PARA LA FACTURA HRFA-8012831 DE VIGILANCIA
- '[IPP] NC NO DEBE REGISTRAR IMPUESTOS EN AMORTIZACIÓN 27/Agosto/2018
-
- 'If Not Ant.TipoMovto.Contiene("NC", "DEV") Then
-
- ' Dim Pago As New CompraPago
- ' Pago.ImportePago = importeMovimiento
- ' Pago.CveIE = Ant.CveIE
- ' Pago.CveMonedaPago = 1
-
- ' ErrorPrepoliza = AplicaPrePolizaPago(CompraActual, Pago, ObjConta)
-
- 'End If
-
- End If
-
- If UsuarioActual.CveEmpresa.Contiene(83) Then
- 'Unificacion de PrePolizas
- If UsuarioActual.Empresa.Funcionalidad(219) = "1" Then
- If Not ObjConta.PrePolizaUnificacion(Ant.CvePrePoliza, CvePrePoliza) Then
- ErrorPrepoliza = True
- Alert("No se pudo unificar la prepoliza", TipoMensaje.MsgError)
- End If
- End If
-
- 'Simplificacion de PrePolizas
- If UsuarioActual.Empresa.Funcionalidad(220) <> "" Then
-
- If Not ObjConta.UpdatePrePolizasDetalleBloquear(Ant.CvePrePoliza, False) Then
- ErrorPrepoliza = True
- Alert("No se pudo desbloquear los movimientos", TipoMensaje.MsgError)
- End If
-
- If Not ErrorPrepoliza AndAlso Not ObjConta.PrePolizaSimplificacion(Ant.CvePrePoliza, UsuarioActual.CveEmpresa) Then
- ErrorPrepoliza = True
- Alert("No se pudo simplificar los movimientos", TipoMensaje.MsgError)
- End If
- End If
- End If
-
- Next
- importeMovimiento = 0
-
- End If
-
- End Select
-
- If ErrorPrepoliza Then
- Exit For
- End If
- '5, 305, 306, 311
- If importeMovimiento <> 0 Or (CveConceptoOriginal = 5 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Fac", "Ant")) Or (ConceptoContable.Contiene(18) AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") AndAlso Not GuardoConcepto18) Then
- 'Conta ContPAQ
-
-
- If IdCtaContable = 0 Then
- CuentasContablesInvalidas.Append(" " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString)
- idCuentaContabilizacion = 0
- End If
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveSubProyecto:=CveSubProyectoInsertar, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=Math.Round(importeMN, 2, MidpointRounding.AwayFromZero), ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, PorcentajeImpuesto:=PorcentajeImpuesto, Contabilizable:=SeContabiliza) Then
- ErrorPrepoliza = True
- Exit For
- End If
-
- End If
-
- Next
-
- 'EMPIEZA REFACTURACION
- If Not ErrorPrepoliza AndAlso CveCompraRefacturacion > 0 Then
- ErrorBitacora = GuardaRefacturacion(ObjCompras, ObjEventos, CvePrePoliza)
- If ErrorBitacora Then
- Alert("Ocurrió un error al hacer la Refacturación", TipoMensaje.MsgError)
- End If
- End If
-
- 'Simplificacion de PrePolizas
- If Not ErrorPrepoliza AndAlso UsuarioActual.Empresa.Funcionalidad(220) <> "" Then
- If Not ObjConta.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa) Then
- ErrorPrepolizaDescuadre = True
- End If
- End If
-
- If Not ErrorPrepoliza AndAlso ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 4) Then
- If ObjConta.ValorPolizaDescuadre > 0 Then
- GuardaLogAD($"Compras/Compras-Guardar | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
- ErrorPrepolizaDescuadre = True
- End If
- End If
-
- 'Conta ContPAQ
- If ObjContaAC IsNot Nothing AndAlso Not ErrorPrepoliza AndAlso Not ErrorPrepolizaDescuadre AndAlso UsuarioActual.Empresa.Funcionalidad(200).ToString = "1" Then
- If idCuentaContabilizacion > 0 Then
- If ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContaAC) Then
- ' Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion)
- IdPoliza = ObjConta.ContaIdPoliza
- Else
- ErrorPrepoliza = True
- Alert($"Ocurrio un error al contabilizar {ObjConta.AlertaMensaje}", TipoMensaje.MsgAdvertencia)
- End If
- Else
- Alert(String.Format("No se puede contabilizar la Prepoliza debido a que las siguientes cuentas son inválidas: {0}", CuentasContablesInvalidas), TipoMensaje.MsgAdvertencia)
- ErrorPrepoliza = True
- End If
- End If
- End If
-
- '' A N T I C I P O S
- If UsuarioActual.Empresa.UsaAC Then
- If ArrAnticipos.Count > 0 Then
-
- Dim PorcentajePago As Decimal
- Dim ConceptoRenglon As String
-
-
- 'si hay una diferencia entre lo amortizado y el total, se registra la diferencia a proveedores y los ivas por acreditar
- If TxtTotal.Text.ToDouble - ImporteAnticipo > 0 Then
- PorcentajePago = (TxtTotal.Text.ToDecimal - ImporteAnticipo) / TxtTotal.Text.ToDecimal
- ConceptoRenglon = String.Format("GE Fact {0}-{1} {2}", TxtSerie.Text.Trim, TxtFolio.Text.Trim, DdlProveedor.SelectedItem.Text)
- If Not ObjContaAC.AddMovimiento(IdPoliza, CtaProveedor, True, TxtTotal.Text.ToDouble - ImporteAnticipo, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then
- ErrorACMEnsaje.Append(" - si hay una diferencia entre lo amortizado y el total, se registra la diferencia a proveedores y los ivas por acreditar ObjContaAC.AddMovimiento")
- ErrorAC = True
- End If
- End If
-
- 'una vez amortizado, se generan los movimientos presupuestales
- If ImporteAnticipo > 0 Then
- PorcentajePago = ImporteAnticipo / TxtTotal.Text.ToDecimal
- If ObjCompras.GetPresupuestosCompras(CveCompra) AndAlso ObjCompras.DtResultados.Rows.Count > 0 Then
- 'DtAC.Merge(ObjConta.DtResultados)
- For Each dr As DataRow In ObjCompras.DtResultados.Rows
- Total = dr("TotalPresupuesto").ToString.ToDecimal * PorcentajePago
- If Total > 0 Then
-
- 'EJERCIDO
- If True Then
- ConceptoRenglon = String.Format("GE {0} F{1}-{2}", DdlProveedor.SelectedItem.Text, TxtSerie.Text, TxtFolio.Text)
- If ObjContaAC.AddMovimiento(IdPoliza, dr("IdCuentaEjercido").ToString.ToEntero, False, MultiplicadorNC * Total, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then
- 'actualizo el idcuenta del presupuesto
- If Not ObjContaAC.AddMovimiento(IdPoliza, dr("IdCuentaDevengado").ToString.ToEntero, True, MultiplicadorNC * Total, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then
- TieneError = True
- Exit For
- End If
- Else
- TieneError = True
- Exit For
- End If
- End If
-
- 'PAGADO
- ConceptoRenglon = String.Format("GP {0} F{1}-{2}", DdlProveedor.SelectedItem.Text, TxtSerie.Text, TxtFolio.Text)
- If ObjContaAC.AddMovimiento(IdPoliza, dr("IdCuentaPagado").ToString.ToEntero, False, MultiplicadorNC * Total, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then
- 'actualizo el idcuenta del presupuesto
- If Not ObjContaAC.AddMovimiento(IdPoliza, dr("IdCuentaEjercido").ToString.ToEntero, True, MultiplicadorNC * Total, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then
- TieneError = True
- Exit For
- End If
Else
- TieneError = True
- Exit For
+
+ Dim usacomplementariaAnticipo As Boolean = False
+ usacomplementariaAnticipo = If(Ant.TCCompra > 1 And Not UsuarioActual.CveEmpresa.Contiene(13, 83), True, False)
+ Dim TipoCambioAnt As Decimal = Ant.TCCompra
+
+ Dim ImporteAnt As Decimal = importeMovimiento
+ Dim ImporteAntMN As Decimal = ImporteAnt * TipoCambioAnt
+
+ If usacomplementariaAnticipo Then
+ IdCtaContable = CtaProveedorAnticiposComplementaria
+ ImporteAntMN = TipoCambioAnt * ImporteAnt - ImporteAnt
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAnt, Referencia, 266, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=ImporteAntMN, ImporteME:=ImporteAnt, TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+ ImporteAntMN = ImporteAnt
+ End If
+
+ If TipoCambioAnt > 1 Then
+ IdCtaContable = CtaProveedorAnticiposExtranjera
+ End If
+
+ 'Agregamos el 21/37/60
+
+
+ 'Dim ImporComisionAnticipo As Decimal = Ant.ImporteComision
+ 'Dim importeMNComision As Decimal = ImporComisionAnticipo * tipoCambioActual * Multiplicador
+
+ If Not usacomplementariaAnticipo Then
+ ImporteAntMN = TipoCambioAnt * ImporteAnt
+ End If
+
+ If ImporComisionAnticipo = 0 Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAnt, Referencia, ConceptoContableAnticipo, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteMX:=ImporteAntMN, ImporteME:=If(tipoCambioActual = 1, 0, ImporteAnt), TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ End If
+ Else
+ Dim ImporteAntMNComision As Decimal = (ImporteAnt + ImporComisionAnticipo) * TipoCambioAnt
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, (ImporteAnt + ImporComisionAnticipo), Referencia, ConceptoContableAnticipo, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteMX:=ImporteAntMNComision, ImporteME:=If(tipoCambioActual = 1, 0, (ImporteAnt + ImporComisionAnticipo)), TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ End If
+ End If
+
+ If TxtTotal.Text.ToDouble > 0 AndAlso TieneAnticiposXML = False Then
+
+ Dim Pago As New CompraPago
+ Pago.ImportePago = importeMovimiento
+ Pago.CveIE = Ant.CveIE
+ Pago.TCPago = Ant.TCCompra
+ Pago.CveMonedaPago = If(Ant.TCCompra > 1, 2, 1)
+ Pago.OtroGastoIngreso = ImporComisionAnticipo
+
+ ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
+
+ End If
+
End If
End If
- Next
- Else
- ErrorACMEnsaje.Append(" - Error al obtener presupuestos ObjCompras.GetPresupuestosCompras")
- ErrorAC = True
+ If UsuarioActual.CveEmpresa.Contiene(83) Then
+ 'Unificacion de PrePolizas
+ If UsuarioActual.Empresa.Funcionalidad(219) = "1" Then
+ If Not ObjConta.PrePolizaUnificacion(Ant.CvePrePoliza, CvePrePoliza) Then
+ ErrorPrepoliza = True
+ Alert("No se pudo unificar la prepoliza", TipoMensaje.MsgError)
+ End If
+ End If
+
+ 'Simplificacion de PrePolizas
+ If UsuarioActual.Empresa.Funcionalidad(220) <> "" Then
+
+ If Not ObjConta.UpdatePrePolizasDetalleBloquear(Ant.CvePrePoliza, False) Then
+ ErrorPrepoliza = True
+ Alert("No se pudo desbloquear los movimientos", TipoMensaje.MsgError)
+ End If
+
+ If Not ErrorPrepoliza AndAlso Not ObjConta.PrePolizaSimplificacion(Ant.CvePrePoliza, UsuarioActual.CveEmpresa) Then
+ ErrorPrepoliza = True
+ Alert("No se pudo simplificar los movimientos", TipoMensaje.MsgError)
+ End If
+ End If
+ End If
+
+ Next
+ importeMovimiento = 0
+
End If
+ End Select
+
+ If ErrorPrepoliza Then
+ Exit For
+ End If
+ '5, 305, 306, 311
+ If importeMovimiento <> 0 Or (CveConceptoOriginal = 5 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Fac", "Ant")) Or (ConceptoContable.Contiene(18) AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") AndAlso Not GuardoConcepto18) Then
+ 'Conta ContPAQ
+
+
+ If IdCtaContable = 0 Then
+ CuentasContablesInvalidas.Append(" " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString)
+ idCuentaContabilizacion = 0
End If
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveSubProyecto:=CveSubProyectoInsertar, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=Math.Round(importeMN, 2, MidpointRounding.AwayFromZero), ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, PorcentajeImpuesto:=PorcentajeImpuesto, Contabilizable:=SeContabiliza) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ End If
+
+ Next
+
+ 'EMPIEZA REFACTURACION
+ If Not ErrorPrepoliza AndAlso CveCompraRefacturacion > 0 Then
+ ErrorBitacora = GuardaRefacturacion(ObjCompras, ObjEventos, CvePrePoliza)
+ If ErrorBitacora Then
+ Alert("Ocurrió un error al hacer la Refacturación", TipoMensaje.MsgError)
End If
End If
- '' F U N C I O N A R I O S Y E M P L E A D O S
- If RBLContado.SelectedValue = "2" AndAlso DdlFuncionarioEmpleado.SelectedValue.ToEntero > 0 Then
- TxtDocumentoImporte.Text = TxtDocumentoImporteFE.Text
- TxtDocumentoImporteCaja.Text = TxtDocumentoImporteFE.Text
-
+ 'Simplificacion de PrePolizas
+ If Not ErrorPrepoliza AndAlso UsuarioActual.Empresa.Funcionalidad(220) <> "" Then
+ If Not ObjConta.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa) Then
+ ErrorPrepolizaDescuadre = True
+ End If
End If
- Else 'Empresa Prueba
-
- If RBLPago.SelectedValue.ToEntero = 2 AndAlso (RBLContado.SelectedValue = "1" Or RBLContado.SelectedValue = "6") Then 'Contado - Bancos y Caja Chica
- 'se agrego un movimiento de pago
-
- If CveIE > 0 Then
- If ImporteCompra <> 0 Then
- 'inserto los movimientos de la conta para abonar al saldo
- Dim Pago As New CompraPago
- Pago.ImportePago = ImporteCompra
- Pago.CveIE = CveIE
- Pago.CveMonedaPago = 1
- ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
+ If Not ErrorPrepoliza AndAlso ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 4) Then
+ If ObjConta.ValorPolizaDescuadre > 0 Then
+ GuardaLogAD($"Compras/Compras-Guardar | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
+ ErrorPrepolizaDescuadre = True
+ End If
+ End If
+ 'Conta ContPAQ
+ If ObjContaAC IsNot Nothing AndAlso Not ErrorPrepoliza AndAlso Not ErrorPrepolizaDescuadre AndAlso UsuarioActual.Empresa.Funcionalidad(200).ToString = "1" Then
+ If idCuentaContabilizacion > 0 Then
+ If ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContaAC) Then
+ ' Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion)
+ IdPoliza = ObjConta.ContaIdPoliza
+ Else
+ ErrorPrepoliza = True
+ Alert($"Ocurrio un error al contabilizar {ObjConta.AlertaMensaje}", TipoMensaje.MsgAdvertencia)
End If
Else
- ErrorMovtosIE = True
+ Alert(String.Format("No se puede contabilizar la Prepoliza debido a que las siguientes cuentas son inválidas: {0}", CuentasContablesInvalidas), TipoMensaje.MsgAdvertencia)
+ ErrorPrepoliza = True
End If
End If
+ End If
- 'movimiento de compra
- '[IPP] PARCHE PROVISIONAL DE CLASIFICACION Y SUBPROYECTO [CveClasificacion:=TmpDT.FiltroPrimeroValor("CveClasificacion").ToString.ToEntero] [CveSubProyecto:=TmpDT.FiltroPrimeroValor("CveSubProyecto").ToString.ToEntero]
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimientoCompra, TxtSubTotal2.Text.ToDecimal, " ", CveConceptoCompra, " ", TxtFechaPago.Text.ToDate, 0, -1, CveClasificacion:=TmpDT.FiltroPrimeroValor("CveClasificacion").ToString.ToEntero, CveSubProyecto:=TmpDT.FiltroPrimeroValor("CveSubProyecto").ToString.ToEntero, CveCompra:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=TxtSubTotal2.Text.ToDecimal) Then
- ErrorMovtosCxP = True
- End If
-
- 'Se agregan las CxP
- If CveConceptoAfectacion = 37 Then
- For Each rw As GridViewRow In GvDeudores.Rows
- If rw.FCCheckBox("Chk").Checked Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimientoCompra, rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal, " ", CveConceptoAfectacion, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=rw.DataKey("CveIE").ToString.ToEntero, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal) Then
- ErrorMovtosCxP = True
- End If
- End If
- Next
- Else
- If ImporteCompra > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimientoCompra, ImporteCompra, " ", CveConceptoAfectacion, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=ImporteCompra) Then
- ErrorMovtosCxP = True
- End If
- End If
-
-
- If CvePlantillaPrePoliza = 1 Or CvePlantillaPrePoliza = 60 Then
-
- 'Siempre: Se agrega IVA aunque sea cero
- ' If TxtIVA.Text.Replace(", ", "").Trim.ToDouble <> 0 Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimientoImpuestos, TxtIVA.Text.ToDecimal, " ", CveConceptoIVA, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=TxtIVA.Text.ToDecimal) Then
- ErrorMovtosIVA = True
- End If
- 'End If
-
- 'Se agregan las Ret IVA
- If TxtRetIVA.Text.ToDouble <> 0 Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimientoImpuestos, TxtRetIVA.Text.ToDecimal, " ", CveConceptoRetIVA, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=TxtRetIVA.Text.ToDecimal) Then
- ErrorMovtosRetIVA = True
- End If
- End If
-
- 'Se agregan las Ret ISR
- If TxtRetISR.Text.ToDouble > 0 Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimientoImpuestos, TxtRetISR.Text.ToDecimal, " ", CveConceptoRetISR, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=TxtRetISR.Text.ToDecimal) Then
- ErrorMovtosRetISR = True
- End If
- End If
-
- If TxtIEPS.Text.ToDouble > 0 Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimientoImpuestos, TxtIEPS.Text.ToDecimal, " ", CveConceptoRetIEPS, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=TxtIEPS.Text.ToDecimal) Then
- ErrorMovtosRetISR = True
- End If
- End If
-
- If TxtOtrosImpuestos.Text.ToDouble <> 0 Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimientoImpuestos, TxtOtrosImpuestos.Text.ToDecimal, " ", CveConceptoRetOtrosImpuestos, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=TxtOtrosImpuestos.Text.ToDecimal) Then
- ErrorMovtosRetISR = True
- End If
- End If
-
- End If
-
-
- '' A N T I C I P O S
+ '' A N T I C I P O S
+ If UsuarioActual.Empresa.UsaAC Then
If ArrAnticipos.Count > 0 Then
- Dim TotalIVA As Double = TxtIVA.Text.ToDouble
-
- 'Inserto otra poliza del mo
- 'Dim CvePrePolizaAnticipo As Integer = ObjConta.AddPrePolizas("Banc", 10, ImporteAnticipo, ImporteAnticipo, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
-
- ' CveConceptoAfectacion = 21 'Cancelacion Anticipo Proveedores
Dim PorcentajePago As Decimal
- Dim CveConceptoAnt As Integer = 21
- Dim CveCompraNC As Integer
- For Each Ant As Compras_Compras.Anticipos In ArrAnticipos
- CveCompraNC = CveCompra
-
- Dim CveConceptoPago As Integer = 17
- If CveTipoConcepto = 2 Then CveConceptoPago = 308 'cuando es acreedor
- If CveMoneda > 1 Then
- Select Case CveConceptoPago
- Case 17
- CveConceptoPago = 312
- Case 308
- CveConceptoPago = 309
- Case Else
- End Select
- End If
-
- Select Case Ant.TipoMovto
- Case "NC", "DEV"
- CveConceptoAnt = 60
- CveCompraNC = Ant.CveCompra ' cuando es NC, se utiliza la clave de compra de la nota de credito
- CveConceptoPago = 272
- Case "Egsc"
- CveConceptoAnt = 21
- Case "DD"
- CveConceptoAnt = 37
-
- End Select
-
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Ant.Importe, " ", CveConceptoAnt, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteMX:=Ant.Importe) Then
- ' ImporteAnticipo += Ant.Importe ' RESTO DEL IMPORTE POR SI QUEDA DIFERENCIA DE LA SUMA DE LOS ANTICIPOS Y EL PROVEEDOR TIENE QUE PAGAR
- 'movimiento de pago proveedor, --no se regisra porque no se registra el total de la compra como deuda del proveedor, solo lo que queda a deber
- 'si es l moviemiento es de amortizacion con descuento, no registra el pago, ya esta descontado
- 'If TieneAnticiposXML = False AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimientoCompra, Ant.Importe, " ", CveConceptoPago, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteMX:=Ant.Importe, CveCompraAmortizacion:=CveCompraNC) Then
- ' ErrorMovtosCxP = True
- 'End If
-
- Dim Pago As New CompraPago
- Pago.ImportePago = Ant.Importe
- Pago.CveIE = Ant.CveIE
- Pago.CveMonedaPago = 1
- Pago.CveCompraAmortizacion = CveCompraNC
- Pago.CveConceptoPago = CveConceptoPago
- Pago.AplicaAcreditable = If(Ant.TipoMovto.Contiene("NC", "DEV"), False, True) 'SI ES NC, no se acredita
-
- ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
-
- Else
- ErrorMovtosCxP = True
- End If
- Next
-
Dim ConceptoRenglon As String
'si hay una diferencia entre lo amortizado y el total, se registra la diferencia a proveedores y los ivas por acreditar
If TxtTotal.Text.ToDouble - ImporteAnticipo > 0 Then
PorcentajePago = (TxtTotal.Text.ToDecimal - ImporteAnticipo) / TxtTotal.Text.ToDecimal
-
-
- If UsuarioActual.Empresa.UsaAC Then
- If CtaProveedor > 0 Then
- ConceptoRenglon = String.Format("GD Fact {0}-{1} {2}", TxtSerie.Text.Trim, TxtFolio.Text.Trim, DdlProveedor.SelectedItem.Text)
- If Not ObjContaAC.AddMovimiento(IdPoliza, CtaProveedor, True, TxtTotal.Text.ToDouble - ImporteAnticipo, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then
- ErrorAC = True
- ErrorACMEnsaje.Append("- CtaProveedor > 0 ObjContaAC.AddMovimiento")
- End If
- Else
- Alert(" - El proveedor no tiene cuenta contable.", TipoMensaje.MsgAdvertencia)
-
- ErrorAC = True
- End If
+ ConceptoRenglon = String.Format("GE Fact {0}-{1} {2}", TxtSerie.Text.Trim, TxtFolio.Text.Trim, DdlProveedor.SelectedItem.Text)
+ If Not ObjContaAC.AddMovimiento(IdPoliza, CtaProveedor, True, TxtTotal.Text.ToDouble - ImporteAnticipo, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then
+ ErrorACMEnsaje.Append(" - si hay una diferencia entre lo amortizado y el total, se registra la diferencia a proveedores y los ivas por acreditar ObjContaAC.AddMovimiento")
+ ErrorAC = True
End If
End If
'una vez amortizado, se generan los movimientos presupuestales
-
- If UsuarioActual.Empresa.UsaAC AndAlso ImporteAnticipo > 0 Then
-
-
+ If ImporteAnticipo > 0 Then
PorcentajePago = ImporteAnticipo / TxtTotal.Text.ToDecimal
-
If ObjCompras.GetPresupuestosCompras(CveCompra) AndAlso ObjCompras.DtResultados.Rows.Count > 0 Then
'DtAC.Merge(ObjConta.DtResultados)
-
For Each dr As DataRow In ObjCompras.DtResultados.Rows
Total = dr("TotalPresupuesto").ToString.ToDecimal * PorcentajePago
-
If Total > 0 Then
'EJERCIDO
If True Then
-
ConceptoRenglon = String.Format("GE {0} F{1}-{2}", DdlProveedor.SelectedItem.Text, TxtSerie.Text, TxtFolio.Text)
If ObjContaAC.AddMovimiento(IdPoliza, dr("IdCuentaEjercido").ToString.ToEntero, False, MultiplicadorNC * Total, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then
'actualizo el idcuenta del presupuesto
@@ -7817,7 +7544,6 @@ Partial Class Compras_Compras
TieneError = True
Exit For
End If
-
Else
TieneError = True
Exit For
@@ -7841,45 +7567,20 @@ Partial Class Compras_Compras
Next
Else
- ErrorACMEnsaje.Append("- Error al obtener presupuestos 2")
+ ErrorACMEnsaje.Append(" - Error al obtener presupuestos ObjCompras.GetPresupuestosCompras")
ErrorAC = True
End If
+
End If
-
End If
+ End If
+ '' F U N C I O N A R I O S Y E M P L E A D O S
+ If RBLContado.SelectedValue = "2" AndAlso DdlFuncionarioEmpleado.SelectedValue.ToEntero > 0 Then
+ TxtDocumentoImporte.Text = TxtDocumentoImporteFE.Text
+ TxtDocumentoImporteCaja.Text = TxtDocumentoImporteFE.Text
- '' F U N C I O N A R I O S Y E M P L E A D O S
- If RBLContado.SelectedValue = "2" AndAlso DdlFuncionarioEmpleado.SelectedValue.ToEntero > 0 Then
- 'Si es con funcionarios empleados Ya existe un registro en Bancos de Ingresos Egresos
- TxtDocumentoImporte.Text = TxtDocumentoImporteFE.Text
- TxtDocumentoImporteCaja.Text = TxtDocumentoImporteFE.Text
-
- Dim ImportePagadoFE As Decimal = 0
- Dim ImporteAPagarFE As Decimal = TxtDocumentoImporteFE.Text.ToDecimal
- Dim ImportePagar As Decimal = ImporteAPagarFE
-
- If CvePrePoliza > 0 Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImportePagar, ImportePagar, 29, " ", " ", 0, CveCompra:=CveCompra, CvePersonal:=DdlFuncionarioEmpleado.SelectedValue.ToEntero, CveProveedor:=CveProveedorLocal, CveIE:=CveIE) Then
- ErrorMovtosCxP = True
- End If
-
- Dim Pago As New CompraPago
- Pago.ImportePago = ImportePagar
- Pago.CvePersonal = CvePersonal
- Pago.CveIE = CveIE
- Pago.CveMonedaPago = 1
-
- ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
-
- Else
- ErrorMovtosCxP = True
- End If
-
-
- End If
-
- End If 'Empresa Prueba
+ End If
'************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
@@ -8040,15 +7741,13 @@ Partial Class Compras_Compras
Dim Msg As New StringBuilder
Msg.Append("La compra se registró correctamente")
- If Not ErrorPrepoliza AndAlso ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 4) Then
+ If Not ErrorPrepoliza AndAlso UsuarioActual.Empresa.TipoContabilidad = 1 AndAlso ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 4) Then
If ObjConta.ValorPolizaDescuadre > 0 Then
GuardaLogAD($"Compras/Compras-Guardar | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
ErrorPrepolizaDescuadre = True
End If
End If
-
-
'ACTUALIZA CVEFACTURA
If Request("CveFactura") IsNot Nothing Then
@@ -8586,9 +8285,8 @@ Partial Class Compras_Compras
Pago.TCPago = TipoCambioAnt
Pago.CveProveedor = gvr.DataKey("CveProveedor").ToEntero
- If CompraActual.CveMoneda = 1 AndAlso Pago.CveMonedaPago = 2 Then
- CompraActual.TC = Pago.TCPago
- End If
+ If ChkPagarConPesos.Checked Then Pago.TCCambioMoneda = 1 / TipoCambioAnt
+ If ChkPagarConDolares.Checked Then Pago.TCCambioMoneda = TipoCambioAnt
Select Case gvr.DataKey("TipoDocto")
Case "NC", "DEV"
@@ -9444,19 +9142,14 @@ Partial Class Compras_Compras
End If
If RBLContado.SelectedValue = "2" AndAlso DdlFuncionarioEmpleado.SelectedValue.ToEntero > 0 Then
- If EmpresaPrueba Then
- If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then
- CvePlantillaPrePoliza = 60
- Else
- CvePlantillaPrePoliza = 1
- End If
+
+ If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then
+ CvePlantillaPrePoliza = 60
Else
- CvePlantillaPrePoliza = 9
+ CvePlantillaPrePoliza = 1
End If
+
End If
-
-
-
Dim CveMovimientoInventario As Integer = CveMovimientoAlmacen
@@ -10061,7 +9754,7 @@ Partial Class Compras_Compras
e.Row.DBCampo("Saldo"),
If(CveCompra > 0, CompraSaldo, ImporteAmortizacion),
e.Row.DBCampo("CveMoneda"),
- tTCFecha,
+ e.Row.DBCampo("TCCompra").ToDouble,
DdlMoneda.SelectedValue,
IIf(DdlMoneda.SelectedValue = "1", 1, TxtTC.Text))) 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO
@@ -12114,7 +11807,6 @@ Partial Class Compras_Compras
RBLContado.Items(4).Enabled = True
RBLContado.Items(5).Enabled = True
-
If UsuarioActual.Empresa.CvePlataforma = 2 Then
RBLContado.Items.Clear()
RBLContado.Items.Insert(0, New ListItem("Bancos", "1"))
@@ -12122,16 +11814,8 @@ Partial Class Compras_Compras
RBLContado.Items.Insert(2, New ListItem("Deudores", "4"))
RBLContado.SelectedIndex = 0
-
- 'RBLContado.Items.Item(2).Enabled = False
- 'RBLContado.Items.Item(4).Enabled = False
- 'RBLContado.Items.Item(5).Enabled = False
End If
- 'If EmpresaPrueba Then
- ' RBLContado.Items(5).Enabled = False
- 'End If
-
EsContado = True
romCreditosTabla.Visible = False
Case "3" 'Reembolso/Comprobacion
diff --git a/Contabilidad/CatCuentas.aspx.vb b/Contabilidad/CatCuentas.aspx.vb
index a63d13ba8..131ba86cf 100644
--- a/Contabilidad/CatCuentas.aspx.vb
+++ b/Contabilidad/CatCuentas.aspx.vb
@@ -29,6 +29,9 @@ Partial Class Contabilidad_CatCuentas
If Not Page.IsPostBack Then
'inicio()
'RegistraScript("$('#Tsubcuenta').mask('00000-0000-0000-00000');")
+ If UsuarioActual.Empresa.TipoContabilidad = 1 OrElse UsuarioActual.CveEmpresa = 119 Then
+ Server.Transfer("/Contabilidad2/CatCuentas.aspx")
+ End If
If UsuarioActual.Empresa.UsaContabilidad Then
CargaMonedas()
diff --git a/Contabilidad/ContabilizacionCompras.aspx b/Contabilidad/ContabilizacionCompras.aspx
index ab7a04460..9f2eaf940 100644
--- a/Contabilidad/ContabilizacionCompras.aspx
+++ b/Contabilidad/ContabilizacionCompras.aspx
@@ -192,7 +192,7 @@
-
+
@@ -296,7 +296,7 @@
-
+
@@ -386,7 +386,7 @@
-
+
@@ -476,7 +476,7 @@
-
+
diff --git a/Contabilidad/ContabilizacionCompras.aspx.cs b/Contabilidad/ContabilizacionCompras.aspx.cs
index d943a01c3..ce1fe858d 100644
--- a/Contabilidad/ContabilizacionCompras.aspx.cs
+++ b/Contabilidad/ContabilizacionCompras.aspx.cs
@@ -128,7 +128,6 @@ public partial class Contabilidad_ContabilizacionCompras : ClsPaginas
e.Row.FCCheckBox("Chk").Enabled = false;
e.Row.FCCheckBox("Chk").ToolTip = "Póliza ya contabilizada";
}
-
GvD.DataSource = contP.DtResultados;
}
else
@@ -137,22 +136,31 @@ public partial class Contabilidad_ContabilizacionCompras : ClsPaginas
}
}
-
if (TienePermisoEditar)
{
e.Row.FCHyperLink("HplEdicion").Visible = true;
}
-
- e.Row.FCHyperLink("HLPoliza").Visible = TienePermisoVerPoliza & e.Row.DBCampo("IdPoliza").ToEntero() > 0;
-
+
+ if (UsuarioActual.Empresa.TipoContabilidad == 1) // conta SIG
+ {
+ e.Row.FCHyperLink("HLPoliza").Visible = TienePermisoVerPoliza & e.Row.DBCampo("FolioPoliza").ToEntero() > 0;
+ e.Row.FCHyperLink("HLPoliza").NavigateUrl = $"/Contabilidad/RegPrePolizas.aspx?CvePrePoliza={e.Row.DBCampo("CvePrePoliza")}";
+ }
+ else
+ {
+ if (UsuarioActual.Empresa.TipoContabilidad == 2) // conta Contpaq
+ {
+ e.Row.FCHyperLink("HLPoliza").Visible = TienePermisoVerPoliza & e.Row.DBCampo("IdPoliza").ToEntero() > 0;
+ e.Row.FCHyperLink("HLPoliza").NavigateUrl = $"/Contabilidad/RegPoliza.aspx?IdPoliza={e.Row.DBCampo("IdPoliza")}";
+ }
+ }
+
contP.Dispose();
GvD.DataBind();
-
if (e.Row.DBCampo("Moneda") == "USD" && e.Row.FCLinkButton("LBActualizarTC") != null)
{
e.Row.FCLinkButton("LBActualizarTC").Visible = true;
}
-
}
}
diff --git a/Contabilidad/DiarioPagos.aspx.vb b/Contabilidad/DiarioPagos.aspx.vb
index f6e19b1f6..10a005927 100644
--- a/Contabilidad/DiarioPagos.aspx.vb
+++ b/Contabilidad/DiarioPagos.aspx.vb
@@ -109,7 +109,7 @@ Partial Class Contabilidad_DiarioPagos
DdlPolizaTipo.SelectedValue = "2"
'busco si se ocupa el tipo de cambio
- CargaDatos(-1)
+ 'CargaDatos(-1)
Cc.Dispose()
Else
@@ -1066,16 +1066,13 @@ Partial Class Contabilidad_DiarioPagos
End If
-
-
FluctuacionCambiaria += Math.Round((CompraPagadoRetISR * TipoCambioCompra) - (CompraPagadoRetISR * TipoCambioPago), 2) 'FLUCTUACION CAMBIARIA DE ISR
- Dim Dif As Double = (CompraPagadoTotal * TipoCambioPago) - Math.Round(CompraPagadoTotal * TipoCambioCompra, 2) + FluctuacionCambiaria
-
+ Dim Dif As Decimal = (CompraPagadoTotal * TipoCambioPago) - Math.Round(CompraPagadoTotal * TipoCambioCompra, 2) + FluctuacionCambiaria
If Dif < 0 Then
- tempMovto = True ' ganancia cambiaria
+ CtaFluctuacion = If(UsuarioActual.CveEmpresa = 13, 579, 0) : tempMovto = True ' ganancia cambiaria
Else
- tempMovto = False ' perdida cambiaria
+ CtaFluctuacion = If(UsuarioActual.CveEmpresa = 13, 578, 0) : tempMovto = False ' perdida cambiaria
End If
ConceptoDetalle = String.Format("{0} TC:{1} ${2}", gvr.FCTextBox("TxtDescripcion").Text, TipoCambioPago, Math.Abs(Dif).FormatoNumero)
diff --git a/Contabilidad/FiltraPolizas.aspx b/Contabilidad/FiltraPolizas.aspx
index 155ba2d57..df35f97f9 100644
--- a/Contabilidad/FiltraPolizas.aspx
+++ b/Contabilidad/FiltraPolizas.aspx
@@ -81,15 +81,11 @@
-
-
-
+
diff --git a/Contabilidad/RegPrePolizaS.aspx.vb b/Contabilidad/RegPrePolizaS.aspx.vb
index fbcb71590..75068d7ea 100644
--- a/Contabilidad/RegPrePolizaS.aspx.vb
+++ b/Contabilidad/RegPrePolizaS.aspx.vb
@@ -284,32 +284,41 @@ Partial Class ContabilidadC_RegPrePolizaS
If Request("CvePrePoliza") IsNot Nothing AndAlso IsNumeric(Request("CvePrePoliza")) AndAlso Request("CvePrePoliza").ToEntero > 0 Then
- ViewState("CvePrePoliza") = Request("CvePrePoliza").ToEntero
CreaDT()
CreaDTEliminar()
- CargaPrePoliza()
- If IfNull(Request("Tipo"), "").ToString <> "NOMPROV" Then
- GvPrePoliza.Columns(5).Visible = False
- DivTG.Visible = False
- GvMov.Columns(5).Visible = False
- End If
- ValidaCrearAPartirDe()
- DvPlantilla.Visible = False
+ If CargaPrePoliza(Request("CvePrePoliza").ToEntero) Then
+ If IfNull(Request("Tipo"), "").ToString <> "NOMPROV" Then
+ GvPrePoliza.Columns(5).Visible = False
+ DivTG.Visible = False
+ GvMov.Columns(5).Visible = False
+ End If
+ ValidaCrearAPartirDe()
+ DvPlantilla.Visible = False
+ If UsuarioActual.Empresa.TipoContabilidad = 1 Then
+ If Folio.ToEntero > 0 Then
+ BtnDescontabilizar.Visible = True
+ LnkFolioManual.Visible = False
+ Else
+ BtnDescontabilizar.Visible = False
+ LnkFolioManual.Visible = True
+ End If
- If UsuarioActual.Empresa.TipoContabilidad = 1 Then
-
- If Folio.ToEntero > 0 Then
- BtnDescontabilizar.Visible = True
- LnkFolioManual.Visible = False
- Else
- BtnDescontabilizar.Visible = False
- LnkFolioManual.Visible = True
End If
+ Exit Sub
+ Else
+ BtnEliminar.Visible = False
+ LnkExcel.Visible = True
+ LnkImprimirPDF.Visible = False
+ DvPlantilla.Visible = True
+
+ TxtFechaDocumento.Text = Now.ToString("dd/MM/yyyy")
+ TxtFechaelaboracion.Text = Now.ToString("dd/MM/yyyy")
+ TxtConcepto.Enabled = True
+ TxtUsuarioElaboro.Text = UsuarioActual.Usuario
End If
- Exit Sub
ElseIf Request("CvePrePolizaOrigen") IsNot Nothing AndAlso IsNumeric(Request("CvePrePolizaOrigen")) AndAlso Request("CvePrePolizaOrigen").ToEntero > 0 Then
@@ -334,10 +343,6 @@ Partial Class ContabilidadC_RegPrePolizaS
TxtFechaelaboracion.Text = Now.ToString("dd/MM/yyyy")
TxtConcepto.Enabled = True
TxtUsuarioElaboro.Text = UsuarioActual.Usuario
- DvPlantilla.Visible = True
- 'LnkAddConcepto.Visible = False
-
- 'UpPrePoliza.Visible = False
End If
@@ -366,8 +371,6 @@ Partial Class ContabilidadC_RegPrePolizaS
GvMov.Columns(5).Visible = False
End If
-
-
End If
End Sub
@@ -437,14 +440,18 @@ Partial Class ContabilidadC_RegPrePolizaS
End With
DtMovimientosEliminar.AcceptChanges()
End Sub
- Private Sub CargaPrePoliza()
- BtnEliminar.Visible = True
- LblEncabezado.Text = "Edición de Póliza"
-
+ Private Function CargaPrePoliza(tCvePrePoliza As Integer) As Boolean
+ Dim retorno As Boolean = False
Dim ObjContabilidad As New ClsContabilidad
- If ObjContabilidad.GetPrePoliza(CvePrePoliza, UsuarioActual.CveEmpresa) Then
+ If ObjContabilidad.GetPrePoliza(tCvePrePoliza, UsuarioActual.CveEmpresa) Then
+
Dim dr As DataRow = ObjContabilidad.DtResultados.FiltroPrimero("")
If dr IsNot Nothing Then
+ retorno = True
+ BtnEliminar.Visible = True
+ LblEncabezado.Text = "Edición de Póliza"
+
+ ViewState("CvePrePoliza") = tCvePrePoliza
DdlTipoPoliza.SelectedValue = dr("CveTipoPoliza")
TxtFechaDocumento.Text = dr("Fecha")
TxtConcepto.Text = dr("Concepto")
@@ -544,7 +551,8 @@ Partial Class ContabilidadC_RegPrePolizaS
ObjContabilidad.Dispose()
UpPoliza.Update()
- End Sub
+ Return retorno
+ End Function
Private Sub GvPrePoliza_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPrePoliza.RowDataBound
@@ -562,8 +570,8 @@ Partial Class ContabilidadC_RegPrePolizaS
Dim CveConceptoContable As Integer = e.Row.DataKey("CveConceptoContable").ToEntero
- If CveConceptoContable.Contiene(1, 2, 13, 38, 207, 203, 39, 61, 62, 63, 4, 278, 291, 292, 293, 294, 272, 150, 251, 301) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DataKey("CveVenta"))
- If CveConceptoContable.Contiene(5, 6, 17, 18, 14, 19, 25, 26, 60, 205, 225, 234, 235, 240, 305, 306, 307, 308, 309, 310, 311, 312, 201, 206, 341, 342, 304, 272, 259) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DataKey("CveCompra"))
+ If CveConceptoContable.Contiene(1, 2, 12, 91, 13, 38, 207, 203, 39, 61, 62, 63, 4, 278, 291, 292, 293, 294, 272, 150, 251, 301) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DataKey("CveVenta"))
+ If CveConceptoContable.Contiene(5, 6, 17, 18, 14, 19, 25, 26, 60, 205, 225, 234, 235, 240, 305, 306, 307, 308, 309, 310, 311, 312, 201, 206, 341, 342, 343, 344, 304, 272, 259) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DataKey("CveCompra"))
If CveConceptoContable.Contiene(68) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}", e.Row.DBCampo("CveMovimientoAlmacen"))
If CveConceptoContable.Contiene(30, 204, 66, 92) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveIE"))
@@ -1044,7 +1052,7 @@ Partial Class ContabilidadC_RegPrePolizaS
TipoMovto = True
If gvr.DataKey("EsComplementaria") = "True" Then ImporteME = gvr.DataKey("ImporteME").ToDecimal
- If gvr.DataKey("EsMonedaExtranjera") = "True" Then TipoCambio = gvr.DataKey("TC").ToDecimal
+ If gvr.DataKey("EsMonedaExtranjera") = "True" Then TipoCambio = gvr.DataKey("TxtTC").ToDecimal
End If
Else
@@ -1061,7 +1069,7 @@ Partial Class ContabilidadC_RegPrePolizaS
TipoMovto = False
If gvr.DataKey("EsComplementaria") = "True" Then ImporteME = gvr.DataKey("ImporteME").ToDecimal
- If gvr.DataKey("EsMonedaExtranjera") = "True" Then TipoCambio = gvr.DataKey("TC").ToDecimal
+ If gvr.DataKey("EsMonedaExtranjera") = "True" Then TipoCambio = gvr.DataKey("TxtTC").ToDecimal
End If
End If
@@ -1274,7 +1282,7 @@ Partial Class ContabilidadC_RegPrePolizaS
End If
ObjContabilidad.Dispose()
- CargaPrePoliza()
+ CargaPrePoliza(CvePrePoliza)
If Not OcurrioError Then
If IdPoliza > 0 AndAlso contador Then
@@ -2310,7 +2318,7 @@ Partial Class ContabilidadC_RegPrePolizaS
{
.ConceptoAdministrativo = row.Item("ConceptoContable"),
.Cuenta = row.Item("Codigo"),
- .NombreCuenta = row.Item("NombreCuenta"),
+ .NombreCuenta = row.Item("CodigoNombreCuenta"),
.Cargo = "",
.Abono = "",
.Referencia = "",
diff --git a/Contabilidad2/CatCuentasAsignaciones.aspx b/Contabilidad2/CatCuentasAsignaciones.aspx
index 685958e85..13673cbd0 100644
--- a/Contabilidad2/CatCuentasAsignaciones.aspx
+++ b/Contabilidad2/CatCuentasAsignaciones.aspx
@@ -74,7 +74,7 @@
@@ -186,6 +186,10 @@
+
+
+
+
diff --git a/Contabilidad2/CatCuentasAsignaciones.aspx.vb b/Contabilidad2/CatCuentasAsignaciones.aspx.vb
index 009282029..6dfad76ba 100644
--- a/Contabilidad2/CatCuentasAsignaciones.aspx.vb
+++ b/Contabilidad2/CatCuentasAsignaciones.aspx.vb
@@ -180,6 +180,18 @@ Partial Class Contabilidad2_CatCuentasAsignaciones
DdlPersonal.SelectedText = drp
End If
+ If GvRow.DataKey("CveCredito").ToEntero > 0 Then
+ DdlCreditos.Items.Clear()
+ DdlCreditos.ClearSelection()
+ Dim ObjCreditos As New ClsBancos
+ If ObjCreditos.GetCreditos(-1, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then
+ DdlCreditos.DataSource = ObjCreditos.DtResultados.FiltraParametros("", DistinctColumns:={"CveCredito", "Referencia"})
+ End If
+ ObjCreditos.Dispose()
+ DdlCreditos.DataBind()
+ DdlCreditos.SelectedValue = GvRow.DataKey("CveCredito")
+ End If
+
LbAgregar.Text = "Actualizar"
UpModalModulos.Update()
RegistraScript("$('#ModalCat').modal();")
@@ -203,6 +215,7 @@ Partial Class Contabilidad2_CatCuentasAsignaciones
divAlmacen.Visible = Boolean.Parse(Dr("AplicaAlmacen").ToString)
divSubProyectos.Visible = Boolean.Parse(Dr("AplicaSubProyecto").ToString)
divActivoFijo.Visible = Boolean.Parse(Dr("AplicaActivoFijo").ToString)
+ divCredito.Visible = Boolean.Parse(Dr("AplicaCredito").ToString)
DdlActivoFijo.Enabled = False
@@ -215,10 +228,8 @@ Partial Class Contabilidad2_CatCuentasAsignaciones
Else
DdlActivoFijo.Enabled = False
End If
-
End If
-
divConceptoNomina.Visible = Dr("AplicaNomina").ToString = "True"
If CveConceptoContable = 51 Then
@@ -231,6 +242,21 @@ Partial Class Contabilidad2_CatCuentasAsignaciones
If Dr("CveTipoSaldo").ToString = "1" Then
divRegeneraCuenta.Visible = True
End If
+
+ If Dr("AplicaCredito").ToString = "True" Then
+ Dim ObjCreditos As New ClsBancos
+ If ObjCreditos.GetCreditos(-1, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then
+ DdlCreditos.DataSource = ObjCreditos.DtResultados.FiltraParametros("", DistinctColumns:={"CveCredito", "Referencia"})
+ End If
+ ObjCreditos.Dispose()
+ DdlCreditos.DataBind()
+
+ If OpAgregar Then
+ DdlCreditos.Enabled = True
+ Else
+ DdlCreditos.Enabled = False
+ End If
+ End If
End If
End Sub
@@ -322,7 +348,7 @@ Partial Class Contabilidad2_CatCuentasAsignaciones
DdlProveedor.SelectedValue.ToEntero, DdlClientes.SelectedValue.ToEntero, DdlPersonal.SelectedValue.ToEntero,
DdlClasificacion.SelectedValue.ToEntero, DdlAlmacen.SelectedValue.ToEntero, TxtPorcentajeIVA.Text.ToDecimal, CveBancoCuenta:=DdlCuentaBancaria.SelectedValue.ToEntero(),
CveConceptoNomina:=DdlConceptoNomina.SelectedValue.ToEntero(), CveSubProyecto:=DdlSubProyectos.SelectedValue.ToEntero, CveActivoFijo:=DdlActivoFijo.SelectedValue.ToEntero,
- CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, RegeneraCuenta:=chkRegeneraCuenta.Checked) Then
+ CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, CveCredito:=DdlCreditos.SelectedValue.ToEntero, RegeneraCuenta:=chkRegeneraCuenta.Checked) Then
ErrorString = "Error al agregar"
End If
ElseIf HdnCveCuentaAsignacion.Value.ToEntero > 0 Then
@@ -330,7 +356,7 @@ Partial Class Contabilidad2_CatCuentasAsignaciones
DdlProveedor.SelectedValue.ToEntero, DdlClientes.SelectedValue.ToEntero, DdlPersonal.SelectedValue.ToEntero,
DdlClasificacion.SelectedValue.ToEntero, DdlAlmacen.SelectedValue.ToEntero, TxtPorcentajeIVA.Text.ToDecimal, CveBancoCuenta:=DdlCuentaBancaria.SelectedValue.ToEntero(),
CveConceptoNomina:=DdlConceptoNomina.SelectedValue.ToEntero(), CveSubProyecto:=DdlSubProyectos.SelectedValue.ToEntero, CveActivoFijo:=DdlActivoFijo.SelectedValue.ToEntero,
- CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, RegeneraCuenta:=chkRegeneraCuenta.Checked) Then
+ CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, CveCredito:=DdlCreditos.SelectedValue.ToEntero, RegeneraCuenta:=chkRegeneraCuenta.Checked) Then
ErrorString = "Error al actualizar"
End If
End If
diff --git a/Contabilidad2/RepEstadoActividades.aspx b/Contabilidad2/RepEstadoActividades.aspx
index 24eae304f..f65afe649 100644
--- a/Contabilidad2/RepEstadoActividades.aspx
+++ b/Contabilidad2/RepEstadoActividades.aspx
@@ -30,13 +30,14 @@
-
-
+
+
-
-
+
+
+
@@ -53,25 +54,38 @@
- Proyecto:
-
+ Proyecto:
+
+
SubProyecto:
-
+
-
Tipo:
-
+
+
+
+ Normal
+ Consolidado
+
+
+
+
+
+
+
-
-
+
+
+
+
diff --git a/Contabilidad2/RepEstadoActividades.aspx.vb b/Contabilidad2/RepEstadoActividades.aspx.vb
index 6d7b33fa3..67463cddb 100644
--- a/Contabilidad2/RepEstadoActividades.aspx.vb
+++ b/Contabilidad2/RepEstadoActividades.aspx.vb
@@ -86,7 +86,8 @@ Partial Class AC_RepEstadoActividades
ReporteComplementario = False
Else
ReporteComplementario = False
- liTipoReporte.Visible = False
+ DivTipo1.Visible = False
+ DivTipo2.Visible = False
LtTitulo.Text = "Estado de Resultados"
End If
@@ -136,7 +137,7 @@ Partial Class AC_RepEstadoActividades
'Dim ObjConta As New ClsContPAQi(UsuarioActual.Empresa)
Dim ObjConta As New ClsContabilidad
- If ObjConta.GetEstadoActividades(FechaI.ToDate, FechaF.ToDate, TipoReporte, CveProyecto, CveSubProyecto, UsuarioActual.CveEmpresa) Then
+ If ObjConta.GetEstadoActividades(FechaI.ToDate, FechaF.ToDate, TipoReporte, CveProyecto, CveSubProyecto, UsuarioActual.CveEmpresa, Opcion:=DdlOpcion.SelectedValue.ToEntero) Then
DtDatos = ObjConta.DtResultados.FiltraParametros("(ImporteActual <> 0 OR ImporteAcumulado <> 0)")
Else
DtDatos = Nothing
@@ -331,6 +332,10 @@ Partial Class AC_RepEstadoActividades
params.Add(New ReportParameter("SubProyecto", DdlSubproyecto.SelectedItem.Text))
ImprimirPDF("AC/Reportes/RepEstadoActividades.rdlc", lrds, params, "EstadoActividades", Formato)
+
+
+ ' UsuarioActual.Empresa.GrupoEmpresa
+
End Sub
End Class
diff --git a/Contabilidad2/RepMovimientosAuxiliaresCatalogo.aspx b/Contabilidad2/RepMovimientosAuxiliaresCatalogo.aspx
index 2fc415eb8..c17f5d1e9 100644
--- a/Contabilidad2/RepMovimientosAuxiliaresCatalogo.aspx
+++ b/Contabilidad2/RepMovimientosAuxiliaresCatalogo.aspx
@@ -137,26 +137,18 @@
+
diff --git a/Contabilidad2/RepSituacionFinanciera.aspx.vb b/Contabilidad2/RepSituacionFinanciera.aspx.vb
index 477cbc9a4..459796aae 100644
--- a/Contabilidad2/RepSituacionFinanciera.aspx.vb
+++ b/Contabilidad2/RepSituacionFinanciera.aspx.vb
@@ -195,7 +195,7 @@ Partial Class AC2_SituacionFinanciera
Dim CveSubProyecto As String = DdlSubproyecto.SelectedValue.ToString
- If ObjConta.GetSituacionFinanciera("01/01/1900".ToDate, FechaF.ToDate, UsuarioActual.CveEmpresa, CveSubProyecto, TipoReporte) Then
+ If ObjConta.GetSituacionFinanciera("01/01/1900".ToDate, FechaF.ToDate, UsuarioActual.CveEmpresa, CveSubProyecto, TipoReporte, Opcion:=DdlOpcion.SelectedValue.ToEntero) Then
DtDatos = ObjConta.DtResultados
CargaGrids()
diff --git a/Inventarios/EntradasSalidas.aspx b/Inventarios/EntradasSalidas.aspx
index 6005f6427..e66bfc7f7 100644
--- a/Inventarios/EntradasSalidas.aspx
+++ b/Inventarios/EntradasSalidas.aspx
@@ -697,7 +697,7 @@
<%-- --%>
-
+
diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb
index 41ec07a45..5c74dc695 100644
--- a/Inventarios/EntradasSalidas.aspx.vb
+++ b/Inventarios/EntradasSalidas.aspx.vb
@@ -686,8 +686,7 @@ Partial Class Inventarios_EntradasSalidas
TxtFechaLlegada.Text = Now.ToShortDateString
CargarCamiones()
-
- CargaClientesCarta()
+ DdlClienteCarta.setEsWebService(True)
End Sub
Private Sub CargaPS()
@@ -1371,6 +1370,12 @@ Partial Class Inventarios_EntradasSalidas
TieneError = True
End If
+ If Not TieneError Then
+ If Not Conta.UpdatePrePolizasDetalleBloquear(CvePrePoliza, False) Then
+ TieneError = True
+ End If
+ End If
+
If Inv.MovimientoRemove(CveMovimiento, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then
If HdnIdPoliza.Value.ToEntero > 0 Then
If Not ObjConta.RemovePoliza(HdnIdPoliza.Value.ToEntero) Then
@@ -1381,12 +1386,6 @@ Partial Class Inventarios_EntradasSalidas
TieneError = True
End If
- If Not TieneError Then
- If Not Conta.UpdatePrePolizasDetalleBloquear(CvePrePoliza, False) Then
- TieneError = True
- End If
- End If
-
If Not TieneError Then
If ObjConta IsNot Nothing Then ObjConta.Commit()
Inv.Commit()
@@ -5906,18 +5905,11 @@ Partial Class Inventarios_EntradasSalidas
DdlConfigAuto.Items.Clear()
DdlUnidadCamion.Items.Clear()
- 'DdlUnidadCamion.DataSource = GlobalDTInvCamiones(UsuarioActual.CveEmpresa)
- 'DdlUnidadCamion.DataBind()
-
-
-
Using ObjInv As New ClsInventarios
If ObjInv.GetCamiones(-1, UsuarioActual.CveEmpresa, 1, Estatus:=1) Then
DdlUnidadCamion.DataSource = ObjInv.DtResultados
End If
-
-
If ObjInv.GetCamiones(-1, UsuarioActual.CveEmpresa, 2, Estatus:=1) Then
DdlRemolque1.DataSource = ObjInv.DtResultados
End If
@@ -5926,13 +5918,9 @@ Partial Class Inventarios_EntradasSalidas
DdlUnidadCamion.DataBind()
DdlUnidadCamion.Items.Insert(0, New ListItem("Seleccione Uno", "-1"))
-
-
DdlRemolque1.DataBind()
DdlRemolque1.Items.Insert(0, New ListItem("Seleccione Uno", "-1"))
-
-
Using ObjGrales As New ClsGenerales
If ObjGrales.GetCartaPorteConfigAutoTransportes() Then
@@ -5940,27 +5928,9 @@ Partial Class Inventarios_EntradasSalidas
End If
End Using
-
DdlConfigAuto.DataBind()
DdlConfigAuto.Items.Insert(0, New ListItem("Seleccione una", "-1"))
- 'Using ObjGral As New ClsGenerales
- ' If ObjGral.GetCartaPorteConfigAutoTransportes() Then
- ' DdlConfigAuto.DataSource = ObjGral.DtResultados
- ' End If
- 'End Using
-
- 'DdlConfigAuto.DataBind()
-
- End Sub
-
- Private Sub CargaClientesCarta()
- 'DdlClienteCarta.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa)
- 'DdlClienteCarta.DataBind()
-
- 'DdlClienteCarta.Items.Insert(0, New ListItem("Seleccione", "-1"))
- DdlClienteCarta.SelectedValue = "-1"
-
End Sub
Private Sub EmitirTimbrado(CveTimbre As Integer, CveMovimientoTimbrado As Integer, ByRef MensajeAlert As StringBuilder)
diff --git a/Nomina/ConceptoNomina.aspx b/Nomina/ConceptoNomina.aspx
index aea471a02..067ac9bc9 100644
--- a/Nomina/ConceptoNomina.aspx
+++ b/Nomina/ConceptoNomina.aspx
@@ -135,20 +135,7 @@
diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb
index 34f6146c0..3f31bd224 100644
--- a/RH/Personal.aspx.vb
+++ b/RH/Personal.aspx.vb
@@ -1009,6 +1009,11 @@ Partial Class RH_Personal
DVNetoPeriodo.Visible = True
End If
+
+ If UsuarioActual.Empresa.Funcionalidad(712) = "1" Then
+ DvRuta.Visible = True
+ End If
+
End If
AgregarEventosAsincronosGvVacaciones()
End Sub
@@ -7674,6 +7679,9 @@ Partial Class RH_Personal
Dim CorreoUsuario As String = GlobalDTUsuarios(CveUsuario:=UsuarioActual.CveUsuario).FiltroPrimeroValor("Correo")
Dim CCP As String = If(CorreoUsuario.Trim.Length > 0, CorreoUsuario, "")
+ 'Para Pruebas
+ 'CorreoNominista = "oscar.irigoyen@adssistemas.mx"
+
If CorreoNominista = "" Then
Alert("No se envio el correo de notificación a nominas, el nominista no tiene correo electronico", TipoMensaje.MsgAdvertencia)
Exit Sub
@@ -7737,9 +7745,12 @@ Partial Class RH_Personal
Cuerpo.AppendLine("
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index de144aa72..3eb88aaa7 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -2450,7 +2450,7 @@ Partial Class Ventas
UpFacturar.Update()
'CargaTiposDocumentos()
TrEmitir.Visible = False
- If UsuarioActual.CveRol = 1 OrElse UsuarioActual.CveEmpresa.Contiene(13, 83, 172, 173) Then
+ If UsuarioActual.Empresa.Funcionalidad(161) = "1" Then
DivCartaPorte.Visible = True
End If
ViewState("EstablecioFolio") = False
@@ -2734,6 +2734,9 @@ Partial Class Ventas
TmpDT.Columns.Add("TieneProntoPago", GetType(String))
TmpDT.Columns.Add("ImporteProntoPago", GetType(Decimal))
TmpDT.Columns.Add("CveMarca", GetType(Integer))
+ TmpDT.Columns.Add("CvePrecioLista", GetType(Integer))
+ TmpDT.Columns.Add("PrecioLista", GetType(String))
+
GvPS.DataSource = ObjVentas.DtResultados
GvPS.DataBind()
@@ -2758,6 +2761,9 @@ Partial Class Ventas
TmpDT.Columns.Add("TieneProntoPago", GetType(String))
TmpDT.Columns.Add("ImporteProntoPago", GetType(Decimal))
TmpDT.Columns.Add("CveMarca", GetType(Integer))
+ TmpDT.Columns.Add("CvePrecioLista", GetType(Integer))
+ TmpDT.Columns.Add("PrecioLista", GetType(String))
+
GvPS.DataSource = ObjVentas.DtResultados
GvPS.DataBind()
@@ -3125,6 +3131,11 @@ Partial Class Ventas
If Not ExFolioFactura Then SetPermisos()
If CveVenta < 1 Then CargaFolios()
+
+ If CveVenta <= 0 AndAlso UsuarioActual.Empresa.Funcionalidad(360) = "1" Then
+ CargaListasPrecios()
+ End If
+
'SELECCIONA VENDEDOR DEL USUARIO CUANDO SEA VENTA NUEVA Y SIN CLIENTE
'If UsuarioActual.CveVendedor > 0 Then
' If CveVenta = -1 AndAlso Not DdlVendedor.SelectedValue.ToEntero() > 0 Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString())
@@ -3475,6 +3486,21 @@ Partial Class Ventas
End If
End Sub
+
+ Private Sub CargaListasPrecios()
+ DivPrecioLista.Visible = True
+
+ Using ObjVta As New ClsVentas
+ If ObjVta.GetPrecioListas(UsuarioActual.CveEmpresa) Then
+ DdlPrecioLista.DataSource = ObjVta.DtResultados.Copy()
+ End If
+ End Using
+
+ DdlPrecioLista.DataBind()
+ DdlPrecioLista.Items.Insert(0, New ListItem("Seleccione", "-1"))
+
+ UpPS.Update()
+ End Sub
Private Sub BloqueaClasificaciones()
If UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso DdlTipoComprobante.SelectedValue = "Cot" Then
DdlClasificacion.Enabled = False
@@ -6076,12 +6102,6 @@ Partial Class Ventas
End Sub
Private Sub CargaFormaPago(CveMetodoPago As Integer)
- 'EN LA VERSION 4.0 NO PERMITE DESBLOEQUEAR RELACION METODO Y FOMA DE PAGO
- 'If UsuarioActual.Empresa.Funcionalidad(350) <> "1" Then
- ' 'permiso para desbloquear la relación entre Método de pago y forma de pago
- ' If UsuarioActual.TienePermisoProceso(282) Then CveMetodoPago = -1
- 'End If
-
Dim dtt As DataTable = Nothing
If CveMetodoPago > 0 Then
dtt = GlobalDTVtaFormaPago.FiltraParametros(If(CveMetodoPago = 1, " CveFormaPago <> 20 ", "CveFormaPago = 20"))
@@ -6117,22 +6137,13 @@ Partial Class Ventas
'End If
End Sub
Private Sub CargaUsoCFDI()
- If UsuarioActual.Empresa.Funcionalidad(350) <> "1" Then
- RegimenFiscalCliente = "-1"
- End If
-
DdlUsoCFDI.Items.Clear()
DdlSucursalUsoCFDI.Items.Clear()
- If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
- Dim EsPersonaMoral As Boolean = (TipoPersona = True)
+ Dim EsPersonaMoral As Boolean = (TipoPersona = True)
- DdlUsoCFDI.DataSource = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente)
- DdlSucursalUsoCFDI.DataSource = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente)
- Else
- DdlUsoCFDI.DataSource = GlobalDTSATUsosCFDI(UsuarioActual.Empresa.EsPersonaFisica, RegimenFiscalReceptor:=RegimenFiscalCliente)
- DdlSucursalUsoCFDI.DataSource = GlobalDTSATUsosCFDI(UsuarioActual.Empresa.EsPersonaFisica, RegimenFiscalReceptor:=RegimenFiscalCliente)
- End If
+ DdlUsoCFDI.DataSource = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente)
+ DdlSucursalUsoCFDI.DataSource = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente)
DdlUsoCFDI.DataBind()
DdlSucursalUsoCFDI.DataBind()
@@ -6463,12 +6474,10 @@ Partial Class Ventas
ViewState("CliPais") = ObjCliente.Pais
ImprimeNombreSucursal = ObjCliente.ImprimeNombreSucursal
- If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
- RegimenFiscalCliente = ObjCliente.DtResultados(0)("CodigoRegimenFiscal").ToString()
- RegimenSociedad = ObjCliente.DtResultados(0)("RegimenSociedad").ToString()
- TipoPersona = CBool(ObjCliente.DtResultados(0)("TipoPersona"))
- CargaUsoCFDI()
- End If
+ RegimenFiscalCliente = ObjCliente.DtResultados(0)("CodigoRegimenFiscal").ToString()
+ RegimenSociedad = ObjCliente.DtResultados(0)("RegimenSociedad").ToString()
+ TipoPersona = CBool(ObjCliente.DtResultados(0)("TipoPersona"))
+ CargaUsoCFDI()
'ViewState("NumCtaPago") = ObjCliente.NumCtaPago
ViewState("ClienteDesglosaIEPS") = ObjCliente.DesglosaIEPS
If Not ClienteDesglosaIEPS Then
@@ -6527,7 +6536,7 @@ Partial Class Ventas
End If
DdlUsoCFDI.SelectedValueExist(ObjCliente.CveUsoCFDI)
'SI ES RFC GENERICO NO TIENE OBLIGACIONES FISCALES
- If UsuarioActual.Empresa.Funcionalidad(350).Contiene("1") AndAlso LblRFC.Text.Contiene("XAXX010101000", "XEXX010101000") Then
+ If LblRFC.Text.Contiene("XAXX010101000", "XEXX010101000") Then
'S01 Sin efectos fiscales.
DdlUsoCFDI.SelectedValueExist("23")
DdlUsoCFDI.Enabled = False
@@ -7061,7 +7070,7 @@ Partial Class Ventas
Dim ValorAutorizacion As String = UsuarioActual.Empresa.Funcionalidad(595)
'OBLIGAR PAGO DE CONTADO SI EL CLIENTE NO PERMITE CREDITO
- If UsuarioActual.Empresa.Funcionalidad(570) = "1" AndAlso Me.PermiteCredito = False AndAlso ((DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta < 1) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso EsCreaApartirDe) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso CveVenta > 0)) Then
+ If Me.PermiteCredito = False AndAlso ((DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta < 1) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso EsCreaApartirDe) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso CveVenta > 0)) Then
RBLPago.SelectedValue = "2"
RBLPago.Items(0).Enabled = False
RBLPago_SelectedIndexChanged(Nothing, Nothing)
@@ -7459,9 +7468,9 @@ Partial Class Ventas
LblEstado.Text = ObjCliente.DtResultados.Rows(0)("Estado").ToString()
'TxtNumCtaPago.Text = ObjCliente.DtResultados.Rows(0)("NumCtaPago").ToString()
LblTelefono.Text = ObjCliente.DtResultados.Rows(0)("Telefono").ToString()
- If Not UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
- LblCP.Text = ObjCliente.DtResultados.Rows(0)("CP").ToString()
- End If
+ 'If Not UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
+ ' LblCP.Text = ObjCliente.DtResultados.Rows(0)("CP").ToString()
+ 'End If
ViewState("CliLocalidad") = ObjCliente.DtResultados.Rows(0)("Localidad").ToString()
ViewState("CliPais") = ObjCliente.DtResultados.Rows(0)("Pais").ToString()
ViewState("CliNoExt") = ObjCliente.DtResultados.Rows(0)("NoExt").ToString()
@@ -7518,7 +7527,7 @@ Partial Class Ventas
DdlFormaPago33.SelectedValueExist(ObjCliente.DtResultados.Rows(0)("CveFormaPago33").ToString())
DdlUsoCFDI.SelectedValueExist(ObjCliente.DtResultados.Rows(0)("CveUsoCFDI").ToString())
'SI ES RFC GENERICO NO TIENE OBLIGACIONES FISCALES
- If UsuarioActual.Empresa.Funcionalidad(350).Contiene("1") AndAlso LblRFC.Text.Contiene("XAXX010101000", "XEXX010101000") Then
+ If LblRFC.Text.Contiene("XAXX010101000", "XEXX010101000") Then
'S01 Sin efectos fiscales.
DdlUsoCFDI.SelectedValueExist("23")
DdlUsoCFDI.Enabled = False
@@ -7560,7 +7569,7 @@ Partial Class Ventas
DdlFormaPago33.SelectedValueExist(ObjCliente.CveFormaPago33)
DdlUsoCFDI.SelectedValueExist(ObjCliente.CveUsoCFDI)
'SI ES RFC GENERICO NO TIENE OBLIGACIONES FISCALES
- If UsuarioActual.Empresa.Funcionalidad(350).Contiene("1") AndAlso LblRFC.Text.Contiene("XAXX010101000", "XEXX010101000") Then
+ If LblRFC.Text.Contiene("XAXX010101000", "XEXX010101000") Then
'S01 Sin efectos fiscales.
DdlUsoCFDI.SelectedValueExist("23")
DdlUsoCFDI.Enabled = False
@@ -8038,6 +8047,10 @@ Partial Class Ventas
End If
+ If UsuarioActual.Empresa.Funcionalidad(360) = "1" AndAlso e.Row.DBCampo("CvePrecioLista").ToEntero() > 0 Then
+ e.Row.FCLiteral("LtlPrecioLista").Visible = True
+ End If
+
'CANTIDAD FACTURADA
Select Case e.Row.DBCampo("TipoDocto")
Case "Cot"
@@ -8191,7 +8204,7 @@ Partial Class Ventas
Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal
- If Costo = 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
+ If Costo <= 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
ObjInventarios.Dispose()
Dim PrecioMinimo As Decimal = 0
@@ -8748,7 +8761,7 @@ Partial Class Ventas
DtOCTmpDT = TmpDT.Copy
TmpDTError = TmpDT.Copy
- If UsuarioActual.Empresa.Funcionalidad(350) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Egs", "Dev") Then
+ If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Egs", "Dev") Then
If RegimenFiscalCliente.Contiene("-1", "") Then
Alert("El cliente no tiene asignado un régimen fiscal.", TipoMensaje.MsgAdvertencia)
Exit Sub
@@ -8759,6 +8772,7 @@ Partial Class Ventas
Exit Sub
End If
End If
+
If ChkEmitirComercioExterior.Checked AndAlso DdlMoneda.SelectedValue.ToEntero() <> 2 Then
Alert("La moneda de la factura debe ser dolares cuando aplica comercio exterior.", TipoMensaje.MsgAdvertencia)
Exit Sub
@@ -8769,7 +8783,7 @@ Partial Class Ventas
Exit Sub
End If
- If UsuarioActual.Empresa.Funcionalidad(350) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Egs", "Dev") Then
+ If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Egs", "Dev") Then
If LblRFC.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso RegimenFiscalCliente <> "616" Then
Alert("El Regimen fiscal del cliente debe ser '616 - Sin obligaciones fiscales' cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia)
@@ -9396,37 +9410,37 @@ Partial Class Ventas
End If
'Verifica versión 3.3.()
- If (Not UsuarioActual.Empresa.Funcionalidad(350) = "1") AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("Ped", "PeC") Then
- Dim dttsat As DataTable = TmpDT.FiltraParametros("ISNULL(SATClaveProdServ,'') = '' OR ISNULL(SATClaveUM,'') = '' ")
- If dttsat IsNot Nothing AndAlso dttsat.Rows.Count > 0 Then
- Dim str As New StringBuilder
- str.Append("Los siguientes productos no tiene asignado la clave Producto SAT o Unidad Medida SAT
")
- For Each drt As DataRow In dttsat.Rows
- str.AppendFormat("{0} ", drt("CodigoPS"))
- Next
- Alert(str.ToString(), TipoMensaje.MsgAdvertencia)
- dttsat.Dispose()
- str.Clear()
- Exit Sub
- End If
- dttsat.Dispose()
+ 'If (Not UsuarioActual.Empresa.Funcionalidad(350) = "1") AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("Ped", "PeC") Then
+ ' Dim dttsat As DataTable = TmpDT.FiltraParametros("ISNULL(SATClaveProdServ,'') = '' OR ISNULL(SATClaveUM,'') = '' ")
+ ' If dttsat IsNot Nothing AndAlso dttsat.Rows.Count > 0 Then
+ ' Dim str As New StringBuilder
+ ' str.Append("Los siguientes productos no tiene asignado la clave Producto SAT o Unidad Medida SAT
")
+ ' For Each drt As DataRow In dttsat.Rows
+ ' str.AppendFormat("{0} ", drt("CodigoPS"))
+ ' Next
+ ' Alert(str.ToString(), TipoMensaje.MsgAdvertencia)
+ ' dttsat.Dispose()
+ ' str.Clear()
+ ' Exit Sub
+ ' End If
+ ' dttsat.Dispose()
- If UsuarioActual.CveEmpresa = 72 Then
- Dim DtNoEncontrados As DataTable = TmpDT.FiltraParametros("ISNULL(SATClaveProdServ,'') = '01010101' ")
- If DtNoEncontrados IsNot Nothing AndAlso DtNoEncontrados.Rows.Count > 0 Then
- Dim StrNoEncontrados As New StringBuilder
- StrNoEncontrados.Append("Los siguientes productos no existen en el catálogo del SAT
")
- For Each drt As DataRow In DtNoEncontrados.Rows
- StrNoEncontrados.AppendFormat("{0} ", drt("CodigoPS"))
- Next
- Alert(StrNoEncontrados.ToString(), TipoMensaje.MsgAdvertencia)
- DtNoEncontrados.Dispose()
- StrNoEncontrados.Clear()
- Exit Sub
- End If
- DtNoEncontrados.Dispose()
- End If
- End If
+ ' If UsuarioActual.CveEmpresa = 72 Then
+ ' Dim DtNoEncontrados As DataTable = TmpDT.FiltraParametros("ISNULL(SATClaveProdServ,'') = '01010101' ")
+ ' If DtNoEncontrados IsNot Nothing AndAlso DtNoEncontrados.Rows.Count > 0 Then
+ ' Dim StrNoEncontrados As New StringBuilder
+ ' StrNoEncontrados.Append("Los siguientes productos no existen en el catálogo del SAT
")
+ ' For Each drt As DataRow In DtNoEncontrados.Rows
+ ' StrNoEncontrados.AppendFormat("{0} ", drt("CodigoPS"))
+ ' Next
+ ' Alert(StrNoEncontrados.ToString(), TipoMensaje.MsgAdvertencia)
+ ' DtNoEncontrados.Dispose()
+ ' StrNoEncontrados.Clear()
+ ' Exit Sub
+ ' End If
+ ' DtNoEncontrados.Dispose()
+ ' End If
+ 'End If
'CREA UNA COPIA DE SEGURIDAD PARA LOS DATOS DEL TMPDT
If TmpDTError Is Nothing OrElse TmpDTError.Rows.Count = 0 Then
@@ -10068,7 +10082,7 @@ Partial Class Ventas
Try
If AutoConta Then
- If idCuentaContabilizacion > 0 Then
+ If idCuentaContabilizacion > 0 Or UsuarioActual.CveEmpresa.Contiene(7, 11, 12, 122, 145) Then
If ObjConta.ContabilizarPrePoliza(ObjFactura.CvePrePoliza, ObjFactura.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContPaq) Then
If ObjContPaq IsNot Nothing Then ObjContPaq.Commit()
Else
@@ -10643,23 +10657,14 @@ Partial Class Ventas
ObjFacturaDevolucion.Fecha = Now
+ ObjFacturaDevolucion.Version = "4.0"
-
- If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
- ObjFacturaDevolucion.Version = "4.0"
-
- If ObjFacturaDevolucion.Cliente Is Nothing Then
- ObjFacturaDevolucion.Cliente = New Modelos.ClienteModel
- End If
-
- ObjFacturaDevolucion.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal
- ObjFacturaDevolucion.Cliente.RegimenFiscal = ClienteRegimenFiscal
- Else
- ObjFacturaDevolucion.Version = "3.3"
+ If ObjFacturaDevolucion.Cliente Is Nothing Then
+ ObjFacturaDevolucion.Cliente = New Modelos.ClienteModel
End If
-
-
+ ObjFacturaDevolucion.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal
+ ObjFacturaDevolucion.Cliente.RegimenFiscal = ClienteRegimenFiscal
ObjFacturaDevolucion.CveMetodoPago33 = 1
ObjFacturaDevolucion.MetodoPago33 = "Pago en una sola exhibición"
@@ -10942,20 +10947,15 @@ Partial Class Ventas
End If
ObjFacturaBonificacion.Fecha = Now
+ ObjFacturaBonificacion.Version = "4.0"
- If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
- ObjFacturaBonificacion.Version = "4.0"
-
- If ObjFacturaBonificacion.Cliente Is Nothing Then
- ObjFacturaBonificacion.Cliente = New Modelos.ClienteModel
- End If
-
- ObjFacturaBonificacion.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal
- ObjFacturaBonificacion.Cliente.RegimenFiscal = ClienteRegimenFiscal
- Else
- ObjFacturaBonificacion.Version = "3.3"
+ If ObjFacturaBonificacion.Cliente Is Nothing Then
+ ObjFacturaBonificacion.Cliente = New Modelos.ClienteModel
End If
+ ObjFacturaBonificacion.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal
+ ObjFacturaBonificacion.Cliente.RegimenFiscal = ClienteRegimenFiscal
+
ObjFacturaBonificacion.CveMetodoPago33 = 1
ObjFacturaBonificacion.MetodoPago33 = "Pago en una sola exhibición"
ObjFacturaBonificacion.ClaveMetodoPagoSAT = "PUE"
@@ -11368,18 +11368,14 @@ Partial Class Ventas
ObjFactura = New Modelos.Factura
End If
- If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
- ObjFactura.Version = "4.0"
- If ObjFactura.Cliente Is Nothing Then
- ObjFactura.Cliente = New Modelos.ClienteModel
- End If
-
- ObjFactura.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal
- ObjFactura.Cliente.RegimenFiscal = ClienteRegimenFiscal
- Else
- ObjFactura.Version = "3.3"
+ ObjFactura.Version = "4.0"
+ If ObjFactura.Cliente Is Nothing Then
+ ObjFactura.Cliente = New Modelos.ClienteModel
End If
+ ObjFactura.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal
+ ObjFactura.Cliente.RegimenFiscal = ClienteRegimenFiscal
+
ObjFactura.CveUsuario = UsuarioActual.CveUsuario
ObjFactura.CveEmpresa = UsuarioActual.CveEmpresa
ObjFactura.TipoCambio = If(DdlMoneda.SelectedValue.ToEntero() = 1, 1, TxtTipoCambio.Text.Trim.ToDecimal)
@@ -12154,19 +12150,15 @@ Partial Class Ventas
ObjFacturaDevolucion.SerieFolioPadre = HdnFolioFiscalNC.Value.ToString()
- If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
- ObjFacturaDevolucion.Version = "4.0"
+ ObjFacturaDevolucion.Version = "4.0"
- If ObjFacturaDevolucion.Cliente Is Nothing Then
- ObjFacturaDevolucion.Cliente = New Modelos.ClienteModel
- End If
-
- ObjFacturaDevolucion.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal
- ObjFacturaDevolucion.Cliente.RegimenFiscal = ClienteRegimenFiscal
- Else
- ObjFacturaDevolucion.Version = "3.3"
+ If ObjFacturaDevolucion.Cliente Is Nothing Then
+ ObjFacturaDevolucion.Cliente = New Modelos.ClienteModel
End If
+ ObjFacturaDevolucion.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal
+ ObjFacturaDevolucion.Cliente.RegimenFiscal = ClienteRegimenFiscal
+
ObjFacturaDevolucion.CveMetodoPago33 = DdlMetodoPago33.SelectedValue.ToEntero()
ObjFacturaDevolucion.MetodoPago33 = If(DdlMetodoPago33.SelectedValue.ToEntero() > 0, DdlMetodoPago33.SelectedItem.Text, "")
ObjFacturaDevolucion.ClaveMetodoPagoSAT = GlobalDTVtaMetodoPago.FiltroPrimeroValor("ClaveMetodoPagoSAT", $"CveMetodoPago = {DdlMetodoPago33.SelectedValue}")
@@ -12412,7 +12404,7 @@ Partial Class Ventas
Dim Timbre As New CFDITimbre
- Timbre.Comprobante.Version = If(UsuarioActual.Empresa.Funcionalidad(350) = "1", "4.0", "3.3")
+ Timbre.Comprobante.Version = "4.0"
Timbre.Comprobante.TipoComprobante = If(Obj.TipoDocto.Contiene("Ing", "Ant"), "I", If(Obj.TipoDocto.Contiene("Egs", "Dev"), "E", ""))
Timbre.Comprobante.Folio = Obj.Folio.ToString()
@@ -12441,11 +12433,7 @@ Partial Class Ventas
Timbre.Receptor.DomicilioFiscalReceptor = Obj.ClienteSucursal.CP
Else
Timbre.Receptor.RFC = Obj.Cliente.RFC
- If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
- Timbre.Receptor.Nombre = Obj.Cliente.Nombre
- Else
- Timbre.Receptor.Nombre = Obj.Cliente.Nombre + " " + Obj.Cliente.RegimenSociedad
- End If
+ Timbre.Receptor.Nombre = Obj.Cliente.Nombre
Timbre.Receptor.DomicilioFiscalReceptor = Obj.Cliente.CP
End If
@@ -13346,11 +13334,9 @@ Partial Class Ventas
For Each Row As DataRow In TmpDTDetalle.Rows
If Not ObjVentas.AddVentaDetalle(ObjVentas.CveVenta, Row("CvePS").ToString().ToEntero(), Row("Cantidad").ToString().ToDouble, Row("CveUM").ToString().ToEntero(),
Row("PU").ToString().ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)), Row("ImporteIVA").ToString().ToDouble, Math.Round((Row("Total").ToString().ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)) * (1 + Row("PorcentajeIVA").ToString().ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)))), 6),
- Row("Obs").ToString(), Row("Descuento").ToString().ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(),
- TiempoEntrega:=Row("TiempoEntrega").ToString(), CveVentaDetallePadre:=Row("CveVentaDetalle").ToString().ToEntero(), CveContratoDetalle:=Row("CveContratoDetalle").ToString().ToEntero(), CvePromocionDetalle:=Row("CvePromocionDetalle").ToString().ToEntero(),
- IEPS:=Row("ImporteIEPS").ToString().ToDouble, CveMovimientoDetallePedido:=Row("CveMovimientoDetallePedido").ToString().ToEntero(),
- ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDouble, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDouble,
- PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDouble, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDouble, CuentaPredial:=Row("CuentaPredial").ToString()) Then
+ Row("Obs").ToString(), Row("Descuento").ToString().ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(), TiempoEntrega:=Row("TiempoEntrega").ToString(), CveVentaDetallePadre:=Row("CveVentaDetalle").ToString().ToEntero(),
+ CveContratoDetalle:=Row("CveContratoDetalle").ToString().ToEntero(), CvePromocionDetalle:=Row("CvePromocionDetalle").ToString().ToEntero(), IEPS:=Row("ImporteIEPS").ToString().ToDouble, CveMovimientoDetallePedido:=Row("CveMovimientoDetallePedido").ToString().ToEntero(), ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDouble, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDouble,
+ PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDouble, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDouble, CuentaPredial:=Row("CuentaPredial").ToString(), CvePrecioLista:=Row("CvePrecioLista").ToString().ToEntero()) Then
ErrorList.Add("Ocurrió un error al agregar un Producto o Servicio a la Factura. Revise su factura y cualquier detalle comuníquese a Soporte Técnico")
Exit For
Else
@@ -14788,49 +14774,12 @@ Partial Class Ventas
CveVentaAmortizacionAplicar = ObjFactura.CveVenta
End If
- ''Cuando se está amortizando con un anticipo y es la modalidad de NC
- 'If ObjFactura.TipoDocto.Contiene("Ing") AndAlso CveAnticipo > 0 AndAlso DdlTipoAmortizacionAnticipo.SelectedValue = "2" Then
- ' ConceptoContableAplicar = 11
- ' CveVentaAplicar = CveAnticipo
- ' CveVentaAmortizacionAplicar = ObjFactura.CveVenta
- 'End If
-
- ' If UsuarioActual.CveEmpresa = 119 Then
-
- 'código fijo en base el porcentaje iva, que se afecten las clasificaciones
- 'For i = 0 To TmpDTDetalle.Rows.Count - 1
-
- ' 'se excluyen las clasificaciones anteriores para que se asignen las de ingreso
- ' If Not TmpDTDetalle(i)("CveClasificacion").ToString().Contiene("19958", "19933", "18097", "24479") Then
-
- ' 'If TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDecimal > 0 Then
- ' ' If TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDecimal = 0.08 Then
- ' ' TmpDTDetalle(i)("CveClasificacion") = 20242 'clasif: ventas tasa 8%
- ' ' Else
- ' ' TmpDTDetalle(i)("CveClasificacion") = 19929 'clasif: ventas tasa 16%
- ' ' End If
-
- ' ' Else
- ' ' TmpDTDetalle(i)("CveClasificacion") = 19930 'clasif: ventas tasa 0%
- ' ' End If
-
- ' 'reclasifica la clasificación del producto, por la del ingreso correspondiente a su iva
- ' If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDecimal).Rows.Count > 0 Then
- ' TmpDTDetalle(i)("CveClasificacion") = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDecimal).Rows(0)("CveClasificacion").ToString()
- ' End If
-
- ' End If
-
- 'Next
-
- ' End If
-
DT = TmpDTDetalle.FiltraParametros($"CvePS <> {CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto", "PorcentajeIVA"})
If DT.Rows.Count > 0 Then
'Se agrega movimiento separado por la cuenta de ventas (ER)
For Each Row2 As DataRow In DT.Rows
- importeMovimiento = (TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
+ importeMovimiento = (TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1} AND PorcentajeIVA = {2}", Row2("CveClasificacion"), Row2("CveSubProyecto"), Row2("PorcentajeIVA"))).ToString().ToDecimal()) * ValorMultiplicador
importeMX = importeMovimiento * tipoCambio * Multiplicador
FechaMovimiento = ObjFactura.FechaPago
Concepto = $"{ObjFactura.SerieFolio} {If(Row2("CveClasificacion").ToString().ToEntero() > 0, GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = {Row2("CveClasificacion").ToString()}"), "")} - {If(Row2("CveSubProyecto").ToString().ToEntero() > 0, GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa).FiltroPrimeroValor("SubProyecto", $"CveSubProyecto = {Row2("CveSubProyecto").ToString()}"), "Sin SubProyecto Asignado")}"
@@ -14844,8 +14793,6 @@ Partial Class Ventas
End If
- 'CveCuenta = GlobalDTClasificaciones(ObjFactura.CveEmpresa).FiltroPrimeroValor("IdCuentaIngresosSIG", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToEntero()
-
If importeMovimiento <> 0 Then
If IdCtaContable <= 0 Then
@@ -14871,37 +14818,12 @@ Partial Class Ventas
Dim CveVentaAplicar = ObjFactura.CveVenta
Dim CveVentaAmortizacionAplicar = -1
- 'If UsuarioActual.CveEmpresa = 119 Then
-
- ' 'código fijo en base el porcentaje iva, que se afecten las clasificaciones
- ' For i = 0 To TmpDTDetalle.Rows.Count - 1
-
- ' 'se excluyen las clasificaciones anteriores para que se asignen las de ingreso
- ' If Not TmpDTDetalle(i)("CveClasificacion").ToString().Contiene("19958", "19933", "18097") Then
-
- ' If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDouble).Rows.Count > 0 Then
- ' TmpDTDetalle(i)("CveClasificacion") = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDouble).Rows(0)("CveClasificacion").ToString()
- ' End If
-
- ' End If
-
- ' Next
-
- 'End If
-
DT = TmpDTDetalle.FiltraParametros($"CvePS <> {CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto", "PorcentajeIVA"})
If DT.Rows.Count > 0 Then
'Se agrega movimiento separado por la cuenta de ventas (ER)
For Each Row2 As DataRow In DT.Rows
- importeMovimiento = (TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
-
- 'If ObjFactura.TipoDocto = "Egs" Then
- ' importeMovimiento += (TmpDTDetalle.SUM("ImporteIVA", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
- ' importeMovimiento += (TmpDTDetalle.SUM("ImporteIEPS", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
- ' importeMovimiento -= (TmpDTDetalle.SUM("ImporteRetIVA", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
- ' importeMovimiento -= (TmpDTDetalle.SUM("ImporteRetISR", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
- 'End If
+ importeMovimiento = (TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1} AND PorcentajeIVA = {2}", Row2("CveClasificacion"), Row2("CveSubProyecto"), Row2("PorcentajeIVA"))).ToString().ToDecimal) * ValorMultiplicador
importeMX = importeMovimiento * tipoCambio * Multiplicador
FechaMovimiento = ObjFactura.FechaPago
@@ -14917,10 +14839,6 @@ Partial Class Ventas
IdCtaContable = GlobalDTClasificaciones(ObjFactura.CveEmpresa).FiltroPrimeroValor("IdCuentaIngresos", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToEntero()
End If
- If UsuarioActual.CveEmpresa = 119 Then
- If Row2("CveClasificacion").ToString() = "19930" Then IdCtaContable = 1141
- If Row2("CveClasificacion").ToString() = "19929" Then IdCtaContable = 1142
- End If
If importeMovimiento <> 0 Then
@@ -17683,7 +17601,13 @@ Partial Class Ventas
Dim PrecioSugerido As Decimal = 0
Dim tPrecioSugerido As Decimal = 0
tPrecioSugerido = drPS("Precio").ToString().ToDecimal
- PrecioSugerido = CalculaPrecioSugerido(CvePSParametro, drPS("CveClasificacion").ToString().ToEntero())
+ Dim ObjPrecioSugerido = CalculaPrecioSugerido(CvePSParametro, drPS("CveClasificacion").ToString().ToEntero())
+
+ PrecioSugerido = ObjPrecioSugerido.PrecioSugerido
+
+ If ObjPrecioSugerido.CvePrecioLista > 0 AndAlso DivPrecioLista.Visible Then
+ DdlPrecioLista.SelectedValueExist(ObjPrecioSugerido.CvePrecioLista)
+ End If
If PrecioSugerido <= 0 Then PrecioSugerido = tPrecioSugerido
@@ -17723,7 +17647,9 @@ Partial Class Ventas
End Sub
- Private Function CalculaPrecioSugerido(CvePSParametro As Integer, CveClasificacion As Integer) As Decimal
+ Private Function CalculaPrecioSugerido(CvePSParametro As Integer, CveClasificacion As Integer, Optional CvePrecioListaSugerido As Integer = -1) As Modelos.MPrecioSugerido
+ Dim Retorno As New Modelos.MPrecioSugerido
+
Dim PrecioSugerido As Decimal = 0
If UsuarioActual.CveEmpresa.Contiene(1) Then
@@ -17766,6 +17692,10 @@ Partial Class Ventas
End If
+ If DivPrecioLista.Visible AndAlso CvePrecioListaSugerido > 0 Then
+ CvePrecioListaPS = CvePrecioListaSugerido
+ End If
+
If CvePrecioListaPS > 0 Then
Dim ObjPS As New ClsProductosServicios
If ObjPS.GetPSPreciosLista(UsuarioActual.CveEmpresa, CvePrecioListaPS, CvePS:=CvePSParametro) Then
@@ -17785,7 +17715,8 @@ Partial Class Ventas
PrecioSugerido = ((PorcentajePrecio / 100) + 1) * CostoPS
End If
End If
- CvePrecioLista = CvePrecioListaPS
+ Me.CvePrecioLista = CvePrecioListaPS
+ Retorno.CvePrecioLista = CvePrecioListaPS
End If
@@ -17797,7 +17728,10 @@ Partial Class Ventas
PrecioSugerido = PrecioSugerido * ((PrecioBaseCosto / 100) + 1)
End If
End If
- Return PrecioSugerido
+
+ Retorno.PrecioSugerido = PrecioSugerido
+
+ Return Retorno
End Function
Protected Sub DdlPS_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DdlPS.selectedindexchange
DdlPSIndexChange(DdlPS.SelectedValue.ToEntero(), DdlPS)
@@ -18488,7 +18422,7 @@ Partial Class Ventas
Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal
- If Costo = 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
+ If Costo <= 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
ObjInventarios.Dispose()
Dim PrecioMinimo As Decimal = 0
@@ -18884,11 +18818,29 @@ Partial Class Ventas
PU = ObjDescuento.PU
End If
+ Dim CvePrecioListaPS As Integer = -1
+ Dim PrecioListaPS As String = ""
+
+ 'VALIDA LA ASIGNACION DE LISTA DE PRECIOS
+ If DivPrecioLista.Visible Then
+ If DdlPrecioLista.SelectedValue.ToEntero() > 0 AndAlso DdlPrecioLista.SelectedValue.ToEntero() = Me.CvePrecioLista Then
+ CvePrecioListaPS = Me.CvePrecioLista
+ PrecioListaPS = DdlPrecioLista.SelectedItem.Text
+ Else
+ Alert("La lista de precios del producto no coincide con la seleccionada", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+ Else
+ If Me.CvePrecioLista > 0 Then
+ CvePrecioListaPS = Me.CvePrecioLista
+ End If
+ End If
+
AgregarProductoServicio(Cantidad, DdlUnidadMedida.SelectedValue.ToEntero(), DdlUnidadMedida.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero(), DdlClasificacion.SelectedItem.Text,
CvePS, "", TxtObsPS.Text.TrimEnd, PU, ObjDescuento.ImporteDescuento,
DdlProyecto.SelectedValue.ToEntero(), DdlProyecto.SelectedItem.Text, DdlSubProyecto.SelectedValue.ToEntero(), DdlSubProyecto.SelectedItem.Text,
Serie:=If(DIVCod.Visible, TxtCodigoSerie.Text.Trim, ""), TiempoEntrega:=TxtTiempoEntrega.Text, CuentaPredial:=TxtCuentaPredial.Text.Trim, RegeneraIEPS:=ClienteDesglosaIEPS, CvePromocionDetalle:=ObjDescuento.CvePromocionDetalle,
- ImporteProntoPago:=ObjDescuento.ImporteProntoPago, ObjDescuento:=ObjDescuento)
+ ImporteProntoPago:=ObjDescuento.ImporteProntoPago, ObjDescuento:=ObjDescuento, CvePrecioLista:=CvePrecioListaPS, PrecioLista:=PrecioListaPS)
CalculaUsados()
@@ -19079,7 +19031,7 @@ Partial Class Ventas
Optional EntregaDirecta As Integer = 0, Optional CveContratoDetalle As Integer = 0, Optional CveVentaDetalle As Integer = 0, Optional CveMovimientoDetallePedido As Integer = 0,
Optional CveOrdenCompraDetalle As Integer = 0, Optional CveVentaDetalleRemision As Integer = 0, Optional CveVentaDetalleCotizacion As Integer = 0, Optional CuentaPredial As String = "",
Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional SeActualiza As Boolean = False, Optional CvePromocionDetalle As Integer = -1, Optional EsCargo As Boolean = False,
- Optional ImporteProntoPago As Decimal = 0, Optional ByRef ObjDescuento As Modelos.VentaDescuentos = Nothing) As Boolean
+ Optional ImporteProntoPago As Decimal = 0, Optional ByRef ObjDescuento As Modelos.VentaDescuentos = Nothing, Optional CvePrecioLista As Integer = -1, Optional PrecioLista As String = "") As Boolean
Dim Retorno As Boolean = False
Try
@@ -19335,6 +19287,9 @@ Partial Class Ventas
End If
+ Row("CvePrecioLista") = CvePrecioLista
+ Row("PrecioLista") = PrecioLista
+
If UsuarioActual.CveEmpresa.Contiene(119, 13, 83) Then
If Not RemisionesLista.Count > 0 Then 'SI VIENE DE REMISION NO SE CONSIDERA
@@ -19569,6 +19524,9 @@ Partial Class Ventas
TmpDT.Columns.Add("CodigoObjetoImpuesto", GetType(String))
TmpDT.Columns.Add("CveMarca", GetType(Integer))
+ TmpDT.Columns.Add("CvePrecioLista", GetType(Integer))
+ TmpDT.Columns.Add("PrecioLista", GetType(String))
+
TmpDT.Columns("EsOutSourcing").DefaultValue = False
TmpDT.Columns("EsCargo").DefaultValue = False
@@ -22295,7 +22253,7 @@ Partial Class Ventas
Row("PU").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), Row("ImporteIVA").ToString().ToDouble, Math.Round((Row("Total").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)) * (1 + Row("PorcentajeIVA").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)))), 6),
Row("Obs").ToString(), Row("Descuento").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(), PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, IEPS:=Row("ImporteIEPS").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDouble, TiempoEntrega:=Row("TiempoEntrega").ToString(),
CveVentaDetallePadre:=Row("CveVentaDetalle").ToString().ToEntero(), CveContratoDetalle:=Row("CveContratoDetalle").ToString().ToEntero(), CvePromocionDetalle:=If(DtPromociones IsNot Nothing, DtPromociones.FiltroPrimeroValor("CvePromocionDetalle", $"CvePS={Row("CvePS").ToString()}").ToEntero(), -1),
- ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDouble, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDouble, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDouble, CuentaPredial:=Row("CuentaPredial").ToString()) Then
+ ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDouble, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDouble, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDouble, CuentaPredial:=Row("CuentaPredial").ToString(), CvePrecioLista:=Row("CvePrecioLista").ToString().ToEntero()) Then
OcurrioError = True
Exit For
Else
@@ -23478,7 +23436,7 @@ Partial Class Ventas
RFVCiudadC.Visible = False
RFVLocalidadC.Visible = False
RFVSATPais.Visible = False
- divRegimenCliente.Visible = UsuarioActual.Empresa.Funcionalidad(350) = "1"
+ divRegimenCliente.Visible = True
RdTipoPersona.SelectedValue = "0"
@@ -23508,7 +23466,7 @@ Partial Class Ventas
DivCorreoCuentaCliente.Visible = True
DivBotonesAgregarCliente.Visible = True
DivFormaCliente.Visible = True
- divRegimenCliente.Visible = UsuarioActual.Empresa.Funcionalidad(350) = "1"
+ divRegimenCliente.Visible = True
End If
End If
ObjCliente.Dispose()
@@ -23541,17 +23499,13 @@ Partial Class Ventas
Else
Dim RegimenFiscalCliente As String = "-1"
- If UsuarioActual.Empresa.Funcionalidad(350).Contiene("1") AndAlso DdlRegimenFiscalCliente.SelectedValue.ToEntero() > 0 Then
+ If DdlRegimenFiscalCliente.SelectedValue.ToEntero() > 0 Then
RegimenFiscalCliente = GlobalDTRegimenesFiscales().FiltroPrimeroValor("CodigoRegimenFiscal", $"CveRegimenFiscal = {DdlRegimenFiscalCliente.SelectedValue.ToEntero()}")
End If
DdlUsoCFDICliente.Items.Clear()
- If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
- Dim EsPersonaMoral As Boolean = (RdTipoPersona.SelectedValue = "1")
- DdlUsoCFDICliente.DataSource = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente)
- Else
- DdlUsoCFDICliente.DataSource = GlobalDTSATUsosCFDI(UsuarioActual.Empresa.EsPersonaFisica, RegimenFiscalReceptor:=RegimenFiscalCliente)
- End If
+ Dim EsPersonaMoral As Boolean = (RdTipoPersona.SelectedValue = "1")
+ DdlUsoCFDICliente.DataSource = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente)
DdlUsoCFDICliente.DataBind()
DdlUsoCFDICliente.Items.Insert(0, New ListItem("Seleccione", "-1"))
@@ -23573,44 +23527,41 @@ Partial Class Ventas
Dim CveRegimenFiscal As Integer = -1
Dim CveUsoCFDI As Integer = 3
- If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
- CveRegimenFiscal = DdlRegimenFiscalCliente.SelectedValue.ToEntero()
- CveUsoCFDI = DdlUsoCFDICliente.SelectedValue.ToEntero()
+ CveRegimenFiscal = DdlRegimenFiscalCliente.SelectedValue.ToEntero()
+ CveUsoCFDI = DdlUsoCFDICliente.SelectedValue.ToEntero()
- Dim RegimenFiscalCliente As String = "-1"
+ Dim RegimenFiscalCliente As String = "-1"
- If DdlRegimenFiscalCliente.SelectedValue.ToEntero() > 0 Then
- RegimenFiscalCliente = GlobalDTRegimenesFiscales().FiltroPrimeroValor("CodigoRegimenFiscal", $"CveRegimenFiscal = {CveRegimenFiscal}")
- End If
+ If DdlRegimenFiscalCliente.SelectedValue.ToEntero() > 0 Then
+ RegimenFiscalCliente = GlobalDTRegimenesFiscales().FiltroPrimeroValor("CodigoRegimenFiscal", $"CveRegimenFiscal = {CveRegimenFiscal}")
+ End If
- If TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue <> "11" Then
- Alert("El Regimen fiscal del cliente debe ser '616 - Sin obligaciones fiscales' cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
+ If TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue <> "11" Then
+ Alert("El Regimen fiscal del cliente debe ser '616 - Sin obligaciones fiscales' cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
- If TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlUsoCFDICliente.SelectedValue <> "23" Then
- Alert("El uso cfdi del cliente debe ser 'S01 - Sin efectos fiscales' cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
+ If TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlUsoCFDICliente.SelectedValue <> "23" Then
+ Alert("El uso cfdi del cliente debe ser 'S01 - Sin efectos fiscales' cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
- If Not TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue = "11" Then
- Alert("El Regimen fiscal del cliente no puede ser '616 - Sin obligaciones fiscales' si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
+ If Not TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue = "11" Then
+ Alert("El Regimen fiscal del cliente no puede ser '616 - Sin obligaciones fiscales' si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
- If Not TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlUsoCFDICliente.SelectedValue = "23" Then
- Alert("El uso cfdi del cliente no puede ser 'S01 - Sin efectos fiscales' si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
+ If Not TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlUsoCFDICliente.SelectedValue = "23" Then
+ Alert("El uso cfdi del cliente no puede ser 'S01 - Sin efectos fiscales' si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
- Dim EsPersonaMoral As Boolean = (RdTipoPersona.SelectedValue = "1")
- Dim DtUsosCFDI = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente).FiltraParametros($"CveUsoCFDI = {CveUsoCFDI}")
-
- If DtUsosCFDI.Rows.Count = 0 Then
- Alert("El Uso CFDI no corresponde con el tipo de persona (fisca, moral) y el régimen fiscal.", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
+ Dim EsPersonaMoral As Boolean = (RdTipoPersona.SelectedValue = "1")
+ Dim DtUsosCFDI = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente).FiltraParametros($"CveUsoCFDI = {CveUsoCFDI}")
+ If DtUsosCFDI.Rows.Count = 0 Then
+ Alert("El Uso CFDI no corresponde con el tipo de persona (fisca, moral) y el régimen fiscal.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
End If
If DdlSubProyectoDatos.SelectedValue.ToEntero() > 0 Then
@@ -25672,7 +25623,8 @@ Partial Class Ventas
If CvePS > 0 Then
If PrecioUnitario <= 0 Then
- PrecioUnitario = CalculaPrecioSugerido(CvePS, CveClasificacion)
+ Dim ObjPrecioSugerido = CalculaPrecioSugerido(CvePS, CveClasificacion)
+ PrecioUnitario = ObjPrecioSugerido.PrecioSugerido
End If
AgregarProductoServicio(Cantidad, CveUM, UM, -1, "",
@@ -33056,6 +33008,10 @@ Partial Class Ventas
'REMOVER EVENTO PARA RECARGAR ALMACEN
'spanAlmacen.Attributes.Remove("onclick")
+ If UsuarioActual.Empresa.Funcionalidad(360) = "1" Then
+ CargaListasPrecios()
+ End If
+
HdnCargarInventario.Value = "False"
UpParametros.Update()
@@ -34938,19 +34894,15 @@ Partial Class Ventas
ObjFacturaProntoPago.Fecha = Now
- If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
- ObjFacturaProntoPago.Version = "4.0"
+ ObjFacturaProntoPago.Version = "4.0"
- If ObjFacturaProntoPago.Cliente Is Nothing Then
- ObjFacturaProntoPago.Cliente = New Modelos.ClienteModel
- End If
-
- ObjFacturaProntoPago.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal
- ObjFacturaProntoPago.Cliente.RegimenFiscal = ClienteRegimenFiscal
- Else
- ObjFacturaProntoPago.Version = "3.3"
+ If ObjFacturaProntoPago.Cliente Is Nothing Then
+ ObjFacturaProntoPago.Cliente = New Modelos.ClienteModel
End If
+ ObjFacturaProntoPago.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal
+ ObjFacturaProntoPago.Cliente.RegimenFiscal = ClienteRegimenFiscal
+
ObjFacturaProntoPago.CveMetodoPago33 = 1
ObjFacturaProntoPago.MetodoPago33 = "Pago en una sola exhibición"
ObjFacturaProntoPago.ClaveMetodoPagoSAT = "PUE"
@@ -35354,7 +35306,8 @@ Partial Class Ventas
TmpDT.Columns.Add("CveTamaño", GetType(Integer))
TmpDT.Columns.Add("EsCargo", GetType(Boolean))
TmpDT.Columns.Add("CveMarca", GetType(Integer))
-
+ TmpDT.Columns.Add("CvePrecioLista", GetType(Integer))
+ TmpDT.Columns.Add("PrecioLista", GetType(String))
Return TmpDT
End Function
Private Function InicializaDTVentasNCProntoPago() As DataTable
@@ -35653,40 +35606,36 @@ Partial Class Ventas
DVRegimenSociedad.Visible = False
DivRazonSocial2.Attributes.Add("class", "col-md-12")
- If UsuarioActual.Empresa.Funcionalidad(350).Contiene("1", "2") Then
+ DivRazonSocial2.Attributes.Add("class", "col-md-8")
+ DVRegimenSociedad.Visible = True
- DivRazonSocial2.Attributes.Add("class", "col-md-8")
- DVRegimenSociedad.Visible = True
+ If TxtRFCCliente.Text.ToUpper = "XAXX010101000" Then
+ DdlRegimenFiscalCliente.DataSource = GlobalDTRegimenesFiscales().FiltraParametros("CveRegimenFiscal = 11")
+ DdlRegimenFiscalCliente.DataBind()
+ Else
+ Dim dt As DataTable = GlobalDTRegimenesFiscales(RdTipoPersona.SelectedValue.ToEntero).FiltraParametros("", "CodigoRegimenFiscal")
+ Dim Val As String = ""
- If TxtRFCCliente.Text.ToUpper = "XAXX010101000" Then
- DdlRegimenFiscalCliente.DataSource = GlobalDTRegimenesFiscales().FiltraParametros("CveRegimenFiscal = 11")
- DdlRegimenFiscalCliente.DataBind()
- Else
- Dim dt As DataTable = GlobalDTRegimenesFiscales(RdTipoPersona.SelectedValue.ToEntero).FiltraParametros("", "CodigoRegimenFiscal")
- Dim Val As String = ""
-
- If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
- 'verifico que sino existe el valor. lo limpie
- Val = dt.FiltroPrimeroValor("CveRegimenFiscal", "CveRegimenFiscal = " & DdlRegimenFiscalCliente.SelectedValue)
- If Val = "" Then 'sino encuentra valor, lo limpia
- DdlRegimenFiscalCliente.Items.Clear()
- DdlRegimenFiscalCliente.SelectedValue = Nothing
- End If
+ If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
+ 'verifico que sino existe el valor. lo limpie
+ Val = dt.FiltroPrimeroValor("CveRegimenFiscal", "CveRegimenFiscal = " & DdlRegimenFiscalCliente.SelectedValue)
+ If Val = "" Then 'sino encuentra valor, lo limpia
+ DdlRegimenFiscalCliente.Items.Clear()
+ DdlRegimenFiscalCliente.SelectedValue = Nothing
End If
-
- DdlRegimenFiscalCliente.DataSource = dt
- DdlRegimenFiscalCliente.DataBind()
- DdlRegimenFiscalCliente.SelectedValueExist(Val)
-
End If
- DdlRegimenFiscalCliente.Items.Insert(0, New ListItem("Seleccione", "-1"))
-
- DdlUsoCFDICliente.Items.Clear()
- DdlUsoCFDICliente.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ DdlRegimenFiscalCliente.DataSource = dt
+ DdlRegimenFiscalCliente.DataBind()
+ DdlRegimenFiscalCliente.SelectedValueExist(Val)
End If
+ DdlRegimenFiscalCliente.Items.Insert(0, New ListItem("Seleccione", "-1"))
+
+ DdlUsoCFDICliente.Items.Clear()
+ DdlUsoCFDICliente.Items.Insert(0, New ListItem("Seleccione", "-1"))
+
UpAgregarCliente.Update()
End Sub
@@ -36466,7 +36415,7 @@ Partial Class Ventas
PrecioSugerido = ((PorcentajePrecio / 100) + 1) * CostoPS
End If
End If
- CvePrecioLista = CvePrecioListaPS
+ Me.CvePrecioLista = CvePrecioListaPS
End If
@@ -36808,5 +36757,20 @@ Partial Class Ventas
End If
End Sub
+
+ Protected Sub DdlPrecioLista_SelectedIndexChanged(sender As Object, e As EventArgs)
+ If DivPrecioLista.Visible AndAlso DdlPrecioLista.SelectedValue.ToEntero() > 0 Then
+ Dim drPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero()).FiltroPrimero("")
+
+ Dim ObjPrecioSugerido = CalculaPrecioSugerido(drPS("CvePS").ToString().ToEntero(), drPS("CveClasificacion").ToString().ToEntero(), CvePrecioListaSugerido:=DdlPrecioLista.SelectedValue.ToEntero())
+
+ If ObjPrecioSugerido.PrecioSugerido > 0 Then
+ TxtPrecio.Text = ObjPrecioSugerido.PrecioSugerido.ToString("#,###.####")
+ Else
+ Alert("No se encontro un precio para este producto en la lista de precios seleccionada")
+ End If
+
+ End If
+ End Sub
End Class