- mejora en aplicación de NC en ME.

This commit is contained in:
2024-05-03 16:32:22 -07:00
parent 0e7811358a
commit 200e0b80f6

View File

@@ -6711,10 +6711,32 @@ Partial Class Compras_Compras
For Each Gvr As GridViewRow In GvFacturaNC.Rows
If Gvr.FCCheckBox("ChkFacturaNC").Checked Then ' recorro la seleccion y tomo el TC de cada aplicación
AplicadoenFactura = True
Dim timporteMovimientoNC As Decimal = (Gvr.FCTextBox("TxtImporte").Text.ToDecimal * Gvr.DataKey("SubTotal").ToDecimal / Gvr.DataKey("Saldo").ToDecimal).RoundSQL
Dim timporteMovimientoNC As Decimal = (Gvr.FCTextBox("TxtImporte").Text.ToDecimal) '* Gvr.DataKey("SubTotal").ToDecimal / Gvr.DataKey("Saldo").ToDecimal).RoundSQL
Dim TCNC As Decimal = Gvr.DataKey("TipoCambio").ToDecimal
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, timporteMovimientoNC, (timporteMovimientoNC * TCNC * Multiplicador).RoundSQL, ConceptoContabilizacionNC, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=TCNC, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveClasificacion:=tCveClasif, CveSubProyecto:=tCveSubProyecto, Contabilizable:=SeContabiliza) Then
ErrorPrepoliza = True
Else
'validación de flcutuacción
If CompraActual.TC <> TCNC Then
Dim tConceptoContable As Integer
Dim tTipoMovimiento As Boolean
Dim Diferencia As Decimal = 0
If CompraActual.TC > TCNC Then
tConceptoContable = 64
tTipoMovimiento = True
Else
tConceptoContable = 65
tTipoMovimiento = False
End If
Diferencia = (timporteMovimientoNC * (CompraActual.TC - TCNC)).RoundSQL 'Añadimos la diferencia de perdida en la venta
If Diferencia <> 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tTipoMovimiento, Diferencia, Diferencia, tConceptoContable, Referencia, Concepto, CveCompra:=CveCompra, CveSubProyecto:=CompraActual.CveSubProyecto, CveProveedor:=CompraActual.CveProveedor) Then
ErrorPrepoliza = True
End If
End If
End If
End If
End If
Next
@@ -9206,15 +9228,10 @@ Partial Class Compras_Compras
End If
Dim CveMovimientoInventario As Integer = CveMovimientoAlmacen
Dim DT As DataTable
Dim tipoCambioActual, tipoCambioPago As Decimal
Dim FechaMovimiento As Date = TxtFecha.Text.ToDate
If DdlMoneda.SelectedValue.ToString.ToEntero = 2 Then
tipoCambioActual = GlobalTipoCambio(FechaMovimiento).ToString.ToDecimal
tipoCambioActual = If(DivTC.Visible Or TipoCambio > 0, TipoCambio, tipoCambioActual)
@@ -9247,17 +9264,20 @@ Partial Class Compras_Compras
Dim CveProveedorConcepto As Integer = 0, CveIE As Integer = 0, CveCreditoDetalle As Integer = 0
Dim ConceptoPersonal As String = "", Concepto As String = ""
Dim tUsaInventarios As Boolean = UsuarioActual.Empresa.UsaInventarios
If (UsuarioActual.CveEmpresa.Contiene(13, 83)) Then tUsaInventarios = False
If Not ObjConta.GetPrePolizasDetalleCompra(CveCompra, UsuarioActual.CveEmpresa) Then
ErrorPrepoliza = True
Else
DtPrePolizas = ObjConta.DtResultados.FiltraParametros("CveConceptoContable IN (6,68,49,205,176)")
DtPrePolizas = ObjConta.DtResultados.FiltraParametros("CveConceptoContable IN (6,68,49,205,176,5,305,311)")
If DtPrePolizas.Rows.Count > 0 Then
CveProveedorConcepto = ObjConta.DtResultados.FiltraParametros("CveConceptoContable = 6 OR CveConceptoContable = 68 OR CveConceptoContable = 49 OR CveConceptoContable = 205 OR CveConceptoContable = 176").Rows(0)("CveProveedor").ToString.ToEntero
CveIE = ObjConta.DtResultados.FiltraParametros("CveConceptoContable = 6 OR CveConceptoContable = 68 OR CveConceptoContable = 49 OR CveConceptoContable = 205 OR CveConceptoContable = 176").Rows(0)("CveIE").ToString.ToEntero
CveCreditoDetalle = ObjConta.DtResultados.FiltraParametros("CveConceptoContable = 6 OR CveConceptoContable = 68 OR CveConceptoContable = 49 OR CveConceptoContable = 205 OR CveConceptoContable = 176").Rows(0)("CveCreditoDetalle").ToString.ToEntero
Concepto = ObjConta.DtResultados.FiltraParametros("CveConceptoContable = 6 OR CveConceptoContable = 68 OR CveConceptoContable = 49 OR CveConceptoContable = 205 OR CveConceptoContable = 176").Rows(0)("Concepto").ToString
Dim drr As DataRow = ObjConta.DtResultados.FiltraParametros("CveConceptoContable in(6,68,49,205,176,5,305,311)").FiltroPrimero("")
CveProveedorConcepto = drr("CveProveedor").ToString.ToEntero
CveIE = drr("CveIE").ToString.ToEntero
CveCreditoDetalle = drr("CveCreditoDetalle").ToString.ToEntero
Concepto = drr("Concepto").ToString
End If
End If
@@ -9296,7 +9316,7 @@ Partial Class Compras_Compras
If ObjCompra.GetCompras(CveCompra, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) AndAlso ObjCompra.DtResultados.Rows.Count > 0 Then
CveConceptoContableAlmacen = ObjCompra.DtResultados.FiltroPrimeroValor("CveConceptoContableAlmacen").ToEntero
If CveConceptoContableAlmacen = 0 Then
If CveConceptoContableAlmacen = 0 AndAlso tUsaInventarios Then
If Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then
If (CveImportacion > 0 Or CveFlete > 0) Then
CveConceptoContableAlmacen = CveConceptoContableAlmacen
@@ -9315,10 +9335,6 @@ Partial Class Compras_Compras
End If
End If
If UsuarioActual.CveEmpresa.Contiene(7, 11, 12, 122, 145, 13, 83) AndAlso CveConceptoContableAlmacen = 205 Then
CveConceptoContableAlmacen = 6
End If
'AF
DT = TmpDT.FiltraParametros("ISNULL(TipoAF,0) = 2")
If DT.Rows.Count > 0 AndAlso DdlTipoComprobante.SelectedValue <> "NC" Then
@@ -9338,7 +9354,7 @@ Partial Class Compras_Compras
importeMovimiento = 0
'COSTO ALMACEN
Dim DtAlmacenes As DataTable = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
If UsuarioActual.Empresa.UsaInventarios And CveConceptoContableAlmacen = 0 Or DdlTipoCompra.SelectedValue.ToEntero = 10 Then
If tUsaInventarios And CveConceptoContableAlmacen = 0 Or DdlTipoCompra.SelectedValue.ToEntero = 10 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
@@ -9369,7 +9385,7 @@ Partial Class Compras_Compras
importeMovimiento = 0
'INV [MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA) ]
If DdlTipoCompra.SelectedValue.ToEntero <> 10 AndAlso UsuarioActual.Empresa.UsaInventarios And Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") And CveConceptoContableAlmacen.Contiene(176, 205) Then
If DdlTipoCompra.SelectedValue.ToEntero <> 10 AndAlso tUsaInventarios And Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") And CveConceptoContableAlmacen.Contiene(176, 205) Then
importeMovimiento = TmpDT.SUM("Total", $"ISNULL(TipoAF,0) <> 2 AND ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveTipoPS = 2").ToString.ToDecimal
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
@@ -9383,7 +9399,7 @@ Partial Class Compras_Compras
'NC CON PRODUCTOS - CUENTA PUENTE
If UsuarioActual.Empresa.UsaInventarios And Not DdlTipoComprobante.SelectedValue.Contiene("Ant") And CveConceptoContableAlmacen.Contiene(225) Then
If tUsaInventarios And Not DdlTipoComprobante.SelectedValue.Contiene("Ant") And CveConceptoContableAlmacen.Contiene(225) Then
importeMovimiento = TmpDT.SUM("Total", $"ISNULL(TipoAF,0) <> 2 AND ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveTipoPS = 2").ToString.ToDecimal
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
@@ -9412,7 +9428,7 @@ Partial Class Compras_Compras
If DdlTipoCompra.SelectedValue.ToEntero <> 10 Then
'QUITA 1-[MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA)] 2-[NC CON PRODUCTOS]
If UsuarioActual.Empresa.UsaInventarios And CveConceptoContableAlmacen > 0 Then
If tUsaInventarios And CveConceptoContableAlmacen > 0 Then
DT = DT.FiltraParametros("CveTipoPS <> 2")
End If
End If