", 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)
diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb
index 51106972c..f210359db 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)
@@ -5986,7 +5989,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 +6012,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 +6032,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 +6053,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/ClsPaginas.vb b/App_Code/ClsPaginas.vb
index 8413198cf..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
@@ -7668,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
@@ -7678,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
@@ -7699,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
@@ -7887,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
@@ -8038,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
@@ -8082,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
@@ -8402,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/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/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/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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -168,6 +155,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Nomina/ConceptoNomina.aspx.cs b/Nomina/ConceptoNomina.aspx.cs
index 37f978e04..b89504546 100644
--- a/Nomina/ConceptoNomina.aspx.cs
+++ b/Nomina/ConceptoNomina.aspx.cs
@@ -225,7 +225,7 @@ public partial class Nomina_CatConcepto : ClsPaginas
}
protected void CargaConceptoContable()
{
- DdlConceptoContable.DataSource = get_GlobalDTContaConceptosContables(-1);
+ DdlConceptoContable.DataSource = get_GlobalDTContaConceptosContables(-1).FiltraParametros("Tipo = 'Nom'");
DdlConceptoContable.DataBind();
DdlConceptoContable.Items.Insert(0, new ListItem("Seleccione", "-1"));
DdlConceptoContable.SelectedValueExist("-1");
diff --git a/Ventas/ClientesAbonar.aspx b/Ventas/ClientesAbonar.aspx
index 1a276b46f..a968aba58 100644
--- a/Ventas/ClientesAbonar.aspx
+++ b/Ventas/ClientesAbonar.aspx
@@ -644,7 +644,7 @@
-
+
diff --git a/Ventas/ClientesAbonar.aspx.vb b/Ventas/ClientesAbonar.aspx.vb
index 1d4659597..169cb891c 100644
--- a/Ventas/ClientesAbonar.aspx.vb
+++ b/Ventas/ClientesAbonar.aspx.vb
@@ -2443,7 +2443,7 @@ Partial Class Ventas_ClientesAbonar
Dim ConceptoPartida As String = TxtObsSaldarIncobrable.Text.Trim & " " & gr.DataKey("SerieFolio").ToString
If CveConceptoDeduccion = 255 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(266).ToEntero
- If CveConceptoDeduccion = 211 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(559).ToEntero
+ If CveConceptoDeduccion = 179 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(559).ToEntero
If CveConceptoDeduccion = 263 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(537).ToEntero
If CveConceptoDeduccion = 252 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(581).ToEntero
If CveConceptoDeduccion = 78 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.IdCuentaOtrosIngresos
@@ -2476,22 +2476,18 @@ Partial Class Ventas_ClientesAbonar
Else
IdCtaContable = IdCuentaCliente
End If
+ Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(6, tCveMoneda, True, 1)
+
+ 'normal
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, gr.DataKey("SerieFolio").ToString, ConPreP.CveConcepto, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContable, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, Saldo), TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then
+ MsgError = "Ocurrio un error al saldar el movimiento"
+ End If
If UsaComplementaria AndAlso tCveMoneda = 2 Then
- 'normal
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, gr.DataKey("SerieFolio").ToString, CveConceptoCliente, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContable, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, Saldo), TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then
- MsgError = "Ocurrio un error al saldar el movimiento"
- End If
'complementaria
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, 0, gr.DataKey("SerieFolio").ToString, 207, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContComplementaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, (Saldo * TCVenta) - Saldo).RoundSQL, ImporteME:=Saldo, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, 0, gr.DataKey("SerieFolio").ToString, ConPreP.CveConceptoComplementario, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContComplementaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, (Saldo * TCVenta) - Saldo).RoundSQL, ImporteME:=Saldo, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then
MsgError = "Ocurrio un error al saldar el movimiento"
End If
-
- Else
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, gr.DataKey("SerieFolio").ToString, CveConceptoCliente, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContable, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, Saldo * TCVenta), TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then
- MsgError = "Ocurrio un error al saldar el movimiento"
- End If
-
End If
'fluctuación.
@@ -2519,27 +2515,15 @@ Partial Class Ventas_ClientesAbonar
End If
- ' iva
- Dim PorcentajeImpuesto As Decimal = gr.DataKey("PorcentajeIVA").ToDecimal
-
- Dim IdCtaIVAXTrasladar As Integer = 0
- Dim CveCuentaIVAxTrasladar As Integer = 0
-
- 'If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows.Count > 0 Then
- ' IdCtaIVAXTrasladar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVAXTrasladar").ToString.ToEntero
- ' CveCuentaIVAxTrasladar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("CveCuentaIVAxTrasladar").ToString.ToEntero
- 'End If
-
-
- If (IVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And IVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IVA, gr.DataKey("SerieFolio").ToString, 13, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IVA, IVA * TCVenta), PorcentajeImpuesto:=PorcentajeImpuesto, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then
+ If (IVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And IVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IVA, gr.DataKey("SerieFolio").ToString, 13, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IVA, IVA * TCVenta), PorcentajeImpuesto:=gr.DataKey("PorcetajeIVA").ToDecimal, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then
MsgError = "Ocurrio un error al saldar el movimiento"
End If
- If (RETIVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And RETIVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, RETIVA, gr.DataKey("SerieFolio").ToString, 8, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContRetIVA, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, RETIVA, RETIVA * TCVenta), PorcentajeImpuesto:=PorcentajeImpuesto, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then
+ If (RETIVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And RETIVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, RETIVA, gr.DataKey("SerieFolio").ToString, 8, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContRetIVA, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, RETIVA, RETIVA * TCVenta), TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then
MsgError = "Ocurrio un error al saldar el movimiento"
End If
- If IEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IEPS, gr.DataKey("SerieFolio").ToString, 38, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IEPS, IEPS * TCVenta), PorcentajeImpuesto:=PorcentajeImpuesto, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then
+ If IEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IEPS, gr.DataKey("SerieFolio").ToString, 38, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IEPS, IEPS * TCVenta), TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then
MsgError = "Ocurrio un error al saldar el movimiento"
End If
diff --git a/Ventas/RepAnticipo-NC-IXCDetalle.aspx b/Ventas/RepAnticipo-NC-IXCDetalle.aspx
index 2ba2f08ee..06c7486cd 100644
--- a/Ventas/RepAnticipo-NC-IXCDetalle.aspx
+++ b/Ventas/RepAnticipo-NC-IXCDetalle.aspx
@@ -152,7 +152,7 @@
diff --git a/Ventas/RepAnticipo-NC-IXCDetalle.aspx.cs b/Ventas/RepAnticipo-NC-IXCDetalle.aspx.cs
index baf38dc5a..54a1a7722 100644
--- a/Ventas/RepAnticipo-NC-IXCDetalle.aspx.cs
+++ b/Ventas/RepAnticipo-NC-IXCDetalle.aspx.cs
@@ -1,4 +1,5 @@
using System;
+using System.Activities.Expressions;
using System.Collections.Generic;
using System.Data;
using System.Linq;
@@ -324,80 +325,103 @@ public partial class Ventas_RepAnticipo_NC_IXCDetalle : ClsPaginas
{
ClsContabilidad ObjConta = new ClsContabilidad();
ObjConta.IniciaTransacSQL();
- int CvePrePoliza = 0, ConceptoContable1 = 0, ConceptoContable2 = 0, CveVenta = -1, CveIE = -1;
+ int CvePrePoliza = 0, CveVenta = -1, CveIE = -1;
decimal Saldo = 0;
- string MsgError = "";
- if (Tipo == 2)
- {
- ConceptoContable1 = 91;
- ConceptoContable2 = 12;
- }
- else if (Tipo == 1)
- {
- ConceptoContable1 = 11;
- ConceptoContable2 = 3;
- }
- else if (Tipo == 3)
- {
- ConceptoContable1 = 92;
- ConceptoContable2 = 92;
- }
+ decimal ImporteTotalGasto = 0;
+ string MsgError = "";
+
+ CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepNCXAplicar", 6, 0, 0, 1, TxtFecha.Text.ToDate(), TxtConcepto.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa);
- foreach (GridViewRow Gv in GvDatos.Rows)
- {
- if (Gv.FCCheckBox("Chk").Checked)
+ if (CvePrePoliza > 0)
+ {
+ foreach (GridViewRow Gv in GvDatos.Rows)
{
- if (Tipo == 1 || Tipo == 2)
- {
- CveVenta = Gv.DataKey("CveVenta").ToEntero();
- Saldo = -Gv.DataKey("Saldo").ToDecimal();
- }
- else if (Tipo == 3)
- {
- CveIE = Gv.DataKey("CveIE").ToEntero();
- Saldo = Gv.DataKey("Saldo").ToDecimal();
- }
-
- int IdCtaContable = 0;
- if (ObjConta.GetRetCuenta(ConceptoContable1, Gv.DataKey("CveCliente").ToEntero()))
- {
- if (ObjConta.DtResultados.Rows.Count > 0)
+ ConceptosTipoSaldo ConPreP = new ConceptosTipoSaldo();
+ if (Gv.FCCheckBox("Chk").Checked)
+ {
+ if (Tipo == 2)
+ {
+ ConPreP = ClsPaginas.get_ObtenerCveConceptoPrePoliza(6, Gv.DataKey("CveMoneda").ToEntero(), false, 2);
+ }
+ else if (Tipo == 1)
+ {
+ ConPreP.CveConcepto = 3;
+ }
+
+ if (Tipo == 1 || Tipo == 2)
{
- if (Tipo == 1 || Tipo == 2)
- {
- IdCtaContable = ObjConta.DtResultados.Rows[0]["IdCtaContable"].ToString().ToEntero();
- }
- else if (Tipo == 3)
- {
- IdCtaContable = ObjConta.DtResultados.Rows[0]["IdCtaContClientes"].ToString().ToEntero();
+ CveVenta = Gv.DataKey("CveVenta").ToEntero();
+ Saldo = -Gv.DataKey("Saldo").ToDecimal();
+ }
+ else if (Tipo == 3)
+ {
+ ConPreP.CveConcepto = 92;
+ CveIE = Gv.DataKey("CveIE").ToEntero();
+ Saldo = Gv.DataKey("Saldo").ToDecimal();
+ }
+
+ int IdCtaContable = 0;
+ if (UsuarioActual.Empresa.TipoContabilidad == 2)
+ {
+ if (UsuarioActual.Empresa.TipoContabilidad == 2 && ObjConta.GetRetCuenta(ConPreP.CveConcepto, Gv.DataKey("CveCliente").ToEntero()))
+ {
+ if (ObjConta.DtResultados.Rows.Count > 0)
+ {
+ if (Tipo == 1 || Tipo == 2)
+ {
+ IdCtaContable = ObjConta.DtResultados.Rows[0]["IdCtaContable"].ToString().ToEntero();
+ }
+ else if (Tipo == 3)
+ {
+ IdCtaContable = ObjConta.DtResultados.Rows[0]["IdCtaContClientes"].ToString().ToEntero();
+ }
+ }
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ ImporteTotalGasto += Saldo;
+ if (!ObjConta.AddPrePolizasDetalle(CvePrePoliza, true, Saldo, Gv.DataKey("SerieFolio").ToString(), ConPreP.CveConcepto, TxtConcepto.Text, TxtFecha.Text.ToDate(), IdCtaContable, -1, CveIE, CveVenta, CveCliente: Gv.DataKey("CveCliente").ToEntero(), ImporteMX: Saldo))
+ {
+ MsgError = "Ocurrio un error al saldar el movimiento";
+ break;
+ }
+ if (Gv.DataKey("CveMoneda").ToEntero() > 1 )
+ {
+ decimal ImporteMN = (Saldo * Gv.DataKey("TipoCambio").ToDecimal() - Saldo).RoundSQL();
+ ImporteTotalGasto += ImporteMN;
+ if (!ObjConta.AddPrePolizasDetalle(CvePrePoliza, true, Saldo, Gv.DataKey("SerieFolio").ToString(), ConPreP.CveConceptoComplementario, TxtConcepto.Text, TxtFecha.Text.ToDate(), IdCtaContable, -1, CveIE, CveVenta, CveCliente: Gv.DataKey("CveCliente").ToEntero(), ImporteME: Saldo, ImporteMX: ImporteMN, TipoCambio: Gv.DataKey("TipoCambio").ToDecimal()))
+ {
+ MsgError = "Ocurrio un error al saldar el movimiento";
+ break;
}
}
- }
- else
+ }
+ }
+
+ if (ImporteTotalGasto != 0)
+ {
+ ImporteTotalGasto = ImporteTotalGasto * -1; // se invierte el valor, para cuadre de prepoliza
+ if (!ObjConta.AddPrePolizasDetalle(CvePrePoliza, true, ImporteTotalGasto, "", 78, TxtConcepto.Text, TxtFecha.Text.ToDate(), UsuarioActual.Empresa.IdCuentaOtrosIngresos, -1, CveIE, CveVenta, ImporteMX: ImporteTotalGasto, CveSubProyecto: DdlSubProyectoSaldar.SelectedValue.ToEntero()))
{
- break;
- }
- CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepNCXAplicar", 6, Gv.DataKey("Saldo").ToDouble(), Gv.DataKey("Saldo").ToDouble(), Gv.DataKey("CveMoneda").ToEntero(), TxtFecha.Text.ToDate(), "Saldo de NC por Sistema", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa);
-
- if (!ObjConta.AddPrePolizasDetalle(CvePrePoliza, true, Saldo, Gv.DataKey("Folio").ToString(), ConceptoContable2, TxtConcepto.Text, TxtFecha.Text.ToDate(), IdCtaContable, -1, CveIE, CveVenta, CveCliente: Gv.DataKey("CveCliente").ToEntero(), ImporteMX: Saldo))
- {
- MsgError = "Ocurrio un error al saldar el movimiento";
- break;
- }
-
- if (!ObjConta.AddPrePolizasDetalle(CvePrePoliza, true, Gv.DataKey("Saldo").ToDecimal(), Gv.DataKey("Folio").ToString(), 78, TxtConcepto.Text, TxtFecha.Text.ToDate(), UsuarioActual.Empresa.IdCuentaOtrosIngresos, -1, CveIE, CveVenta, ImporteMX: Gv.DataKey("Saldo").ToDecimal(), CveSubProyecto: DdlSubProyectoSaldar.SelectedValue.ToEntero()))
- {
MsgError = "Ocurrio un error al saldar el movimiento";
- break;
}
-
+ }
+ else
+ {
+ MsgError = "Poliza no insertada";
}
}
if (MsgError == "")
{
ObjConta.Commit();
- Alert("Los movimientos se saldaron correctamente.");
+ string Msg = "Los movimientos se saldaron correctamente.";
+ Msg = Msg + $"
Ver Póliza ";
+ Alert(Msg);
}
else
{
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index 9b2e0372c..1afe33093 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
@@ -8204,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
@@ -18422,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