-- mejora en 8.5 prorrateo sobre la compra registrada
This commit is contained in:
@@ -6618,112 +6618,112 @@ Partial Class Compras_Compras
|
||||
End If
|
||||
|
||||
If importeMovimiento > 0 Or TxtTotal.Text.ToDecimal = 0 Then
|
||||
RegistroCuentaPuente = True
|
||||
Dim ImporteTransito As Decimal = 0
|
||||
'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
|
||||
RegistroCuentaPuente = True
|
||||
Dim ImporteTransito As Decimal = 0
|
||||
'SI ES GASTO DE ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68
|
||||
If DdlTipoCompra.SelectedValue = "10" AndAlso ConceptoContabilizacionNC = 68 Then
|
||||
SeContabiliza = False
|
||||
IdCtaContable = 0
|
||||
End If
|
||||
Else
|
||||
Dim DiferenciaDevolucion As Decimal = importeMovimiento - TotalRealDevolucion
|
||||
If TotalRealDevolucion <> 0 Then
|
||||
|
||||
If Math.Abs(DiferenciaDevolucion) > 0 Then
|
||||
Dim tMovto As Boolean = False
|
||||
If UsuarioActual.CveEmpresa = 119 Then
|
||||
tMovto = True
|
||||
Else
|
||||
DiferenciaDevolucion = -DiferenciaDevolucion
|
||||
'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
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, DiferenciaDevolucion.RoundSQL(), Referencia, 69, Concepto, FechaMovimiento, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=DiferenciaDevolucion, ImporteME:=If(tipoCambioActual = 1, 0, DiferenciaDevolucion), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=tCveSubProyecto, CveClasificacion:=tCveClasif) Then
|
||||
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
|
||||
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, CveClasificacion:=tCveClasif, CveSubProyecto:=tCveSubProyecto, Contabilizable:=SeContabiliza) Then
|
||||
Dim DiferenciaDevolucion As Decimal = importeMovimiento - TotalRealDevolucion
|
||||
If TotalRealDevolucion <> 0 Then
|
||||
|
||||
If Math.Abs(DiferenciaDevolucion) > 0 Then
|
||||
Dim tMovto As Boolean = False
|
||||
If UsuarioActual.CveEmpresa = 119 Then
|
||||
tMovto = True
|
||||
Else
|
||||
DiferenciaDevolucion = -DiferenciaDevolucion
|
||||
End If
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, DiferenciaDevolucion.RoundSQL(), Referencia, 69, Concepto, FechaMovimiento, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=DiferenciaDevolucion, ImporteME:=If(tipoCambioActual = 1, 0, DiferenciaDevolucion), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=tCveSubProyecto, CveClasificacion:=tCveClasif) 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, CveClasificacion:=tCveClasif, CveSubProyecto:=tCveSubProyecto, 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.Contiene("11") Then 'clasificación de Bonificación, no se incluirá en el neteo
|
||||
ContienePSNeteoBonif = True
|
||||
Exit For
|
||||
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
|
||||
ErrorPrepoliza = True
|
||||
End If
|
||||
Else
|
||||
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.Contiene("11") Then 'clasificación de Bonificación, no se incluirá en el neteo
|
||||
ContienePSNeteoBonif = True
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
'ChkNCInvNC
|
||||
|
||||
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
|
||||
ErrorPrepoliza = True
|
||||
End If
|
||||
Else
|
||||
ErrorPrepoliza = True
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
'ChkNCInvNC
|
||||
|
||||
If Not RegistroCuentaPuente AndAlso Not ChkNCInvNC.Checked Then
|
||||
If Not RegistroCuentaPuente AndAlso Not ChkNCInvNC.Checked Then
|
||||
'GASTO
|
||||
If UsuarioActual.CveEmpresa = 119 Then
|
||||
DT = TmpDT
|
||||
@@ -20451,6 +20451,7 @@ Partial Class Compras_Compras
|
||||
nRowAgrupado("PS") = psPSCodigo
|
||||
nRowAgrupado("CveClasificacion") = psCveClasificacion
|
||||
nRowAgrupado("Clasificacion") = psClasificacion
|
||||
nRowAgrupado("CveTipoPS") = rowPS("CveTipoPS").ToString
|
||||
|
||||
nRowAgrupado("IVAPorcentaje") = drIva("IVAPorcentaje")
|
||||
nRowAgrupado("RetIVAPorcentaje") = drIva("RetIVAPorcentaje")
|
||||
@@ -20514,6 +20515,7 @@ Partial Class Compras_Compras
|
||||
dRow91_5("PS") = psPSCodigo
|
||||
dRow91_5("CveClasificacion") = psCveClasificacion
|
||||
dRow91_5("Clasificacion") = psClasificacion
|
||||
dRow91_5("CveTipoPS") = rowPS("CveTipoPS").ToString
|
||||
|
||||
dRow91_5("Consec") = Consec + 1
|
||||
dRow91_5("PU") = dRow91_5("PU").ToString.ToDecimal * Mul91_5
|
||||
@@ -20535,6 +20537,12 @@ Partial Class Compras_Compras
|
||||
Consec = Consec + 2
|
||||
Next
|
||||
DTProtateo.AcceptChanges()
|
||||
'recorrer
|
||||
If CveCompra > 0 Then
|
||||
For Each dbrow As DataRow In TmpDT.Rows
|
||||
ClavesBorradas.Add(dbrow("CveCompraDetalle").ToString.ToEntero)
|
||||
Next
|
||||
End If
|
||||
TmpDT = DTProtateo
|
||||
|
||||
BtnProrateoDeducible.Visible = False
|
||||
|
||||
Reference in New Issue
Block a user