From f945b5b486b1fdfcd65528843b7146e1e435d1b3 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Thu, 24 Apr 2025 10:16:32 -0700 Subject: [PATCH] --No validar efectivo en sobrante faltante --- Ventas/PVCobranza.aspx | 75 ++++++++++++++++++++++++++----------- Ventas/PVCobranza.aspx.vb | 79 +++++++++++++++++++++------------------ 2 files changed, 96 insertions(+), 58 deletions(-) diff --git a/Ventas/PVCobranza.aspx b/Ventas/PVCobranza.aspx index 3771565c1..199a92d47 100644 --- a/Ventas/PVCobranza.aspx +++ b/Ventas/PVCobranza.aspx @@ -1581,20 +1581,24 @@ HdnSobranteFaltante.value = "0"; //HdnCambioFaltante.value = "1"; let cambio = total - totalVenta; - if (cambio > 1) { + if (cambio > 1 || totalEfectivo > 0) { $get("TxtFaltante").value = ""; $get("ChkSobFaltante").checked = false; $get("TxtCambio").value = FormatoNumero(cambio); } else { - if (cambio == 'NaN') { - $get("TxtFaltante").value = "0.00"; - } else { - $get("TxtFaltante").value = FormatoNumero(cambio); + //SOLO ACTIVAR SI NO HAY EFECTIVO + if (totalEfectivo == 0) { + if (cambio == 'NaN') { + $get("TxtFaltante").value = "0.00"; + } else { + $get("TxtFaltante").value = FormatoNumero(cambio); + } + + $get("ChkSobFaltante").checked = true; + $get("TxtCambio").value = ""; } - - $get("ChkSobFaltante").checked = true; - $get("TxtCambio").value = ""; + } } else { @@ -1628,13 +1632,27 @@ sobFaltantePermitido = 10; } - if (ToDouble($get("TxtFaltante").value) > sobFaltantePermitido) { - alert("El sobrante/faltante no debe ser mayor a " + sobFaltantePermitido); + let totalEfectivo = $get("TxtImporteEfectivo") ? ToDouble($get("TxtImporteEfectivo").value) : 0; + + if (totalEfectivo > 0) { + sobFaltantePermitido = 0; + } + + if (sobFaltantePermitido > 0) { + if (ToDouble($get("TxtFaltante").value) > sobFaltantePermitido) { + alert("El sobrante/faltante no debe ser mayor a " + sobFaltantePermitido); + $get("TxtFaltante").value = ""; + $get("ChkSobFaltante").checked = false; + } else { + $get("ChkSobFaltante").checked = true; + } + } else { + alert("El sobrante/faltante no esta permitido"); $get("TxtFaltante").value = ""; $get("ChkSobFaltante").checked = false; - } else { - $get("ChkSobFaltante").checked = true; } + + } function CargaSobranteFaltante() { @@ -1645,17 +1663,32 @@ if (<%= If(UsuarioActual.Empresa.CveEmpresa = 189, 1, 0)%> == 1) { sobFaltantePermitido = 10; } - if (ToDouble($get("TxtCambio").value) > sobFaltantePermitido) { - alert("El sobrante/faltante no debe ser mayor a " + sobFaltantePermitido) - $get("ChkSobFaltante").checked = false; - } else { - if ($get("TxtCambio").value == 'NaN') { - $get("TxtFaltante").value = "0.00"; - } else { - $get("TxtFaltante").value = $get("TxtCambio").value; - } + + let totalEfectivo = $get("TxtImporteEfectivo") ? ToDouble($get("TxtImporteEfectivo").value) : 0; + + if (totalEfectivo > 0) { + sobFaltantePermitido = 0; } + if (sobFaltantePermitido > 0) { + if (ToDouble($get("TxtCambio").value) > sobFaltantePermitido) { + alert("El sobrante/faltante no debe ser mayor a " + sobFaltantePermitido) + $get("ChkSobFaltante").checked = false; + } else { + if ($get("TxtCambio").value == 'NaN') { + $get("TxtFaltante").value = "0.00"; + } else { + $get("TxtFaltante").value = $get("TxtCambio").value; + } + } + } else { + alert("El sobrante/faltante no esta permitido"); + $get("TxtFaltante").value = ""; + $get("ChkSobFaltante").checked = false; + } + + + } else { $get("TxtFaltante").value = ""; diff --git a/Ventas/PVCobranza.aspx.vb b/Ventas/PVCobranza.aspx.vb index f4754e316..63bc511e8 100644 --- a/Ventas/PVCobranza.aspx.vb +++ b/Ventas/PVCobranza.aspx.vb @@ -1704,12 +1704,9 @@ Partial Class Ventas_PVCobranza If ChkSobFaltante.Checked AndAlso SobranteFaltante <> 0 Then 'SOBRANTE If SobranteFaltante > 0 Then - 'SI ES EL SOBRANTE EN EFECTIVO SUMAR EL SOBRANTE/FALTANTE + 'EL SOBRANTE/FALTANTE NO PUEDE SER EN EFECTIVO If Metodo = 13 Then - ImporteIE += SobranteFaltante - Pago.OtroGastoIngreso = SobranteFaltante.ToString().ToDecimal() - 'LIMPIAR SOBRANTE/FALTANTE - SobranteFaltante = 0 + Retorno = "Error en aplicación de sobrante/faltante" Else 'AJUSTAR DONDE EL IMPORTE A BANCOS SEA MAYOR EN EL DE LA VENTA If ImporteBancos.RoundSQL(2) >= ImporteAbonoVenta.RoundSQL(2) Then @@ -1722,52 +1719,60 @@ Partial Class Ventas_PVCobranza 'FALTANTE If SobranteFaltante < 0 Then - 'METER LO QUE FALTA COMO GASTO - If (ImporteBancos.RoundSQL(2) + Math.Abs(SobranteFaltante)) = ImporteAbonoVenta.RoundSQL(2) Then - Pago.OtroGastoIngreso = SobranteFaltante.ToString().ToDecimal() + 'EL SOBRANTE/FALTANTE NO PUEDE SER EN EFECTIVO + If Metodo = 13 Then + Retorno = "Error en aplicación de sobrante/faltante" + Else 'METER LO QUE FALTA COMO GASTO + If (ImporteBancos.RoundSQL(2) + Math.Abs(SobranteFaltante)) = ImporteAbonoVenta.RoundSQL(2) Then + Pago.OtroGastoIngreso = SobranteFaltante.ToString().ToDecimal() - 'SUMAR AL PAGO - If ImporteBancos < ImporteAbonoVenta Then - ImporteBancos += Math.Abs(SobranteFaltante) + 'SUMAR AL PAGO + If ImporteBancos < ImporteAbonoVenta Then + ImporteBancos += Math.Abs(SobranteFaltante) + End If + + 'LIMPIAR SOBRANTE/FALTANTE + SobranteFaltante = 0 End If - - 'LIMPIAR SOBRANTE/FALTANTE - SobranteFaltante = 0 End If + End If End If - CveIEPago = ObjIE.AddBancos_IE(CveBancoCuenta, Metodo, Fecha, "-1", VentaActual.ClienteNombre, ImporteIE, 1, 1, Obs, "", False, True, 0, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCorte:=tCveCorte, CveAutorizacion:=CveAutorizacion, CveSubProyecto:=CveSubProyecto) - If CveIEPago > 0 Then - Dim tImportePago As Decimal = If(ImporteBancos > ImporteAbonoVenta, ImporteAbonoVenta, ImporteBancos) 'toma el importe menor para la factura + If String.IsNullOrEmpty(Retorno) Then + CveIEPago = ObjIE.AddBancos_IE(CveBancoCuenta, Metodo, Fecha, "-1", VentaActual.ClienteNombre, ImporteIE, 1, 1, Obs, "", False, True, 0, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCorte:=tCveCorte, CveAutorizacion:=CveAutorizacion, CveSubProyecto:=CveSubProyecto) + If CveIEPago > 0 Then + Dim tImportePago As Decimal = If(ImporteBancos > ImporteAbonoVenta, ImporteAbonoVenta, ImporteBancos) 'toma el importe menor para la factura - If ImporteIE > 0 Then + If ImporteIE > 0 Then - Pago.ImportePagoVenta = tImportePago - Pago.ImportePago = ImporteIE - Pago.CveIE = CveIEPago - Pago.CveMonedaPago = VentaActual.CveMoneda - Pago.Fecha = NowADS() - Pago.Referencia = VentaActual.SerieFolio - If Pago.CveMonedaPago > 1 Then Pago.TCPago = GlobalTipoCambio(Now).ToDecimal + Pago.ImportePagoVenta = tImportePago + Pago.ImportePago = ImporteIE + Pago.CveIE = CveIEPago + Pago.CveMonedaPago = VentaActual.CveMoneda + Pago.Fecha = NowADS() + Pago.Referencia = VentaActual.SerieFolio + If Pago.CveMonedaPago > 1 Then Pago.TCPago = GlobalTipoCambio(Now).ToDecimal - ErrorConta = AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjConta) - End If + ErrorConta = AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjConta) + End If - If ErrorConta Then - Retorno = "Error en aplicación de pago" - End If - Dim MetodoPago As Integer = If(Metodo = 13, 1, If(Metodo = 12, 4, If(Metodo = 11, 5, If(Metodo = 3, 2, 3)))) - If Not ErrorConta AndAlso Not ObjVentas.AddVta_VentaPago(VentaActual.CveVenta, MetodoPago, ImporteBancos) Then - Retorno = "Error en aplicación de pago.." + If ErrorConta Then + Retorno = "Error en aplicación de pago" + End If + Dim MetodoPago As Integer = If(Metodo = 13, 1, If(Metodo = 12, 4, If(Metodo = 11, 5, If(Metodo = 3, 2, 3)))) + If Not ErrorConta AndAlso Not ObjVentas.AddVta_VentaPago(VentaActual.CveVenta, MetodoPago, ImporteBancos) Then + Retorno = "Error en aplicación de pago.." + ErrorConta = True + End If + HdnCveIE.Value = CveIEPago.ToString + Else + Retorno = "Pago en Bancos no registrado" ErrorConta = True End If - HdnCveIE.Value = CveIEPago.ToString - Else - Retorno = "Pago en Bancos no registrado" - ErrorConta = True End If + Else Retorno = "No se ha especificado la cuenta" End If