diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index fb9ffeae2..4adaacd27 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -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