diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb
index 278d7160a..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
@@ -9443,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
@@ -12113,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"))
@@ -12121,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