From 6de72804a7d788c592f5b71b9355cc08e78533c2 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Wed, 10 Jul 2024 17:14:41 -0700 Subject: [PATCH 1/2] Pago Acreedores --- Bancos/PagoAcreedor.aspx | 59 ++++++++++++++++++++++++++++++++++--- Bancos/PagoAcreedor.aspx.cs | 45 ++++++++++++++++++++++++++-- 2 files changed, 97 insertions(+), 7 deletions(-) diff --git a/Bancos/PagoAcreedor.aspx b/Bancos/PagoAcreedor.aspx index 704c2ed38..56deee488 100644 --- a/Bancos/PagoAcreedor.aspx +++ b/Bancos/PagoAcreedor.aspx @@ -272,7 +272,8 @@
- + +
@@ -284,7 +285,7 @@
- +
@@ -637,7 +638,21 @@ txt.value = ""; } - $get('TxtImporte').value = FormatoNumero(SumaValores(CveMonedaPago), 2); + let Suma = SumaValores(CveMonedaPago); + let TxtDDImporte; + if ($('#TxtDDImporte').length > 0) { + TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, '')); + } else { + TxtDDImporte = 0; // Asigna un valor por defecto si el elemento no existe + } + + //let TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, '')); + + if (!isNaN(TxtDDImporte)) { + Suma = Suma + TxtDDImporte; + } + + $get('TxtImporte').value = FormatoNumero(Suma, 2); } function FnCambia(chk, txt, saldo, op, text, CveMonedaPago) { @@ -653,7 +668,21 @@ txt.value = saldo; alert(text); } - var Suma = SumaValores(CveMonedaPago); + + let Suma = SumaValores(CveMonedaPago); + + //let TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, '')); + let TxtDDImporte; + if ($('#TxtDDImporte').length > 0) { + TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, '')); + } else { + TxtDDImporte = 0; // Asigna un valor por defecto si el elemento no existe + } + + if (!isNaN(TxtDDImporte) ) { + Suma = Suma + TxtDDImporte; + } + $get('TxtImporte').value = FormatoNumero(Suma, 2); if ($get('TxtTotal') != null) { @@ -720,6 +749,28 @@ return Importe } } + + + function validaDeudoresDiversos(CveMoneda) { + + $get('TxtImporte').value = FormatoNumero(SumaValores(CveMoneda), 2) + + let TxtImporte = parseFloat($get('TxtImporte').value.replace(/,/g, '')); + let TxtDDImporte = parseFloat($get('TxtDDImporte').value.replace(/,/g, '')); + + + + if (isNaN(TxtImporte) || isNaN(TxtDDImporte)) { + return; + } + let resultado = TxtImporte + TxtDDImporte; + + $get('TxtImporte').value = resultado.toFixed(2); + // $('#TxtDDImporte').val(TxtDDImporte.toFixed(2)); + + + } + diff --git a/Bancos/PagoAcreedor.aspx.cs b/Bancos/PagoAcreedor.aspx.cs index d72929c9c..dbae5d93f 100644 --- a/Bancos/PagoAcreedor.aspx.cs +++ b/Bancos/PagoAcreedor.aspx.cs @@ -6,6 +6,7 @@ using System.Text; using System.Web; using System.Web.UI.WebControls; using static Extensiones.ModExtensiones; +using static Microsoft.EntityFrameworkCore.DbLoggerCategory; public partial class Bancos_PagoAcreedor : ClsPaginas { @@ -140,6 +141,10 @@ public partial class Bancos_PagoAcreedor : ClsPaginas Folio = bancos.GetNextFolio(DdlCuenta.SelectedValue.ToEntero(), DdlTipoTransaccion.SelectedValue.ToEntero()); bancos.Dispose(); TxtFolio.Text = Folio.ToString(); + + + TxtDDImporte.Attributes.Add("onblur",$"validaDeudoresDiversos({CveMonedaCuentaPago});FormatoMoneda(this);"); + UpDatos.Update(); } protected void DdlProveedores_selectedindexchange(object sender, EventArgs e) @@ -345,12 +350,13 @@ public partial class Bancos_PagoAcreedor : ClsPaginas MsgError = "No se pudo insertar concepto de diferencia cambiaria"; } - if (ImporteComision != 0 && MsgError == "") + if (ImporteComision != 0 && MsgError == "" && DdlOtrosPagos.SelectedValue == "2" ) { + ImporteComisionMN = (ImporteComision * TCPago).RoundSQL(); int tTipoConceptoOtro = 255; - if (DdlOtrosPagos.SelectedValue == "3") tTipoConceptoOtro = 43; //deudores diversos + //if (DdlOtrosPagos.SelectedValue == "3") tTipoConceptoOtro = 43; //deudores diversos if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoComision, ImporteComision, ImporteComisionMN, tTipoConceptoOtro, Ref, Conc, CveIE: CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(),CveIEDevolucion: gvr.DataKey("CveIE").ToEntero(), TipoCambio: TC, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero())) { MsgError = "No se pudo insertar concepto de pago acreedor"; @@ -360,6 +366,39 @@ public partial class Bancos_PagoAcreedor : ClsPaginas } } + if (TxtDDImporte.Text.ToDecimal() != 0 && MsgError == "" && DdlOtrosPagos.SelectedValue == "3") + { + ImporteComision = TxtDDImporte.Text.ToDecimal(); + ImporteComisionMN = ImporteComision; + + if (TxtDDImporte.Text.ToDecimal() < 0) + { + TipoMovtoComision = true; + ImporteComision = ImporteComision * -1; + ImporteComisionMN = ImporteComisionMN * -1; + } + else + { + TipoMovtoComision = false; + } + + //Decimal TC = get_GlobalTipoCambio(TxtFechaDocumento.Text.ToDate()).ToDecimal(); + //int tCveMoneda = get_GlobalDTBancosCuentas(-1, DdlCuenta.SelectedValue.ToEntero()).FiltroPrimeroValor("CveMoneda").ToEntero(); + //CveMonedaPago + + ImporteComision = ImporteComision.RoundSQL(); + ImporteComisionMN = (ImporteComision * TCPago).RoundSQL() ; + + ImporteComisionMN = (ImporteComision * TCPago).RoundSQL(); + + + int tTipoConceptoOtro = 43; //deudores diversos + if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoComision, ImporteComision, ImporteComisionMN, tTipoConceptoOtro, Ref, Conc, CveIE: CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), TipoCambio: TCPago, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero())) + { + MsgError = "No se pudo insertar concepto de pago acreedor"; + } + } + if (CveMonedaPago != 1) { ImporteComplementaria = (ImporteBanco * TCPago - ImporteBanco).RoundSQL(); @@ -767,7 +806,7 @@ public partial class Bancos_PagoAcreedor : ClsPaginas divDD.Visible = false; if (DdlOtrosPagos.SelectedValue == "2") { - TxtOtrosImportes.Visible = true; + TxtOtrosImportes.Visible = true; TxtTotal.Visible = true; GvMovAcreedor.Columns[8].Visible = true; TxtOtrosImportes.Text = ""; From 30eca403e7c08a2d75d054c697e1b7abf6bd3cd9 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Fri, 12 Jul 2024 17:36:21 -0700 Subject: [PATCH 2/2] --FIX validacion de costo para cotizaciones --- Ventas/Ventas.aspx.vb | 65 ++++++++++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 22 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index c9326985c..1b81cae90 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -8915,8 +8915,18 @@ Partial Class Ventas End If If CveUM <> CveUMInicial Then ValidaExistencia = True + 'SOLO VALIDA EXISTENCIAS Y COSTO: SI USA INVENTARIOS, SOLO PRODUCTOS TIPO PRODUCTO, SOLO REMISIONES E INGRESOS - If UsuarioActual.Empresa.UsaInventarios AndAlso CveTipoPS = 2 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "PA") Or (DdlTipoComprobante.SelectedValue.Contiene("Cot") And UsuarioActual.CveEmpresa.Contiene(119))) Then + Dim ValidaExistenciasCosto As Boolean = UsuarioActual.Empresa.UsaInventarios AndAlso CveTipoPS = 2 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "PA") Or (DdlTipoComprobante.SelectedValue.Contiene("Cot") And UsuarioActual.CveEmpresa.Contiene(119))) + + 'VALIDA COSTO PARA LAS COTIZACIONES + If Not ValidaExistenciasCosto Then + If DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso (UsuarioActual.Empresa.Funcionalidad(382) = "1" OrElse UsuarioActual.CveEmpresa = 1) Then + ValidaExistenciasCosto = True + End If + End If + + If ValidaExistenciasCosto Then Dim ObjInventarios As New ClsInventarios Dim Existencia As Decimal If ValidaExistencia Then @@ -18839,33 +18849,24 @@ Partial Class Ventas ' NO VALIDA EXISTENCIAS NI COSTO - PERMISO PARA NO VALIDAR If Not UsuarioActual.TienePermisoProceso(169) AndAlso RBLTipoVenta.SelectedValue.ToEntero <> 5 Then 'SOLO VALIDA EXISTENCIAS Y COSTO: SI USA INVENTARIOS, SOLO PRODUCTOS TIPO PRODUCTO, SOLO REMISIONES E INGRESOS - If UsuarioActual.Empresa.UsaInventarios AndAlso CveTipoPS = 2 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "PA") OrElse ((DdlTipoComprobante.SelectedValue.Contiene("Cot") And UsuarioActual.CveEmpresa.Contiene(119)) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Ped") And UsuarioActual.CveEmpresa.Contiene(186)))) Then + Dim ValidaExistenciasCosto As Boolean = UsuarioActual.Empresa.UsaInventarios AndAlso CveTipoPS = 2 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "PA") OrElse ((DdlTipoComprobante.SelectedValue.Contiene("Cot") And UsuarioActual.CveEmpresa.Contiene(119)) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Ped") And UsuarioActual.CveEmpresa.Contiene(186)))) + + 'VALIDA COSTO PARA LAS COTIZACIONES + If Not ValidaExistenciasCosto Then + If DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso (UsuarioActual.Empresa.Funcionalidad(382) = "1" OrElse UsuarioActual.CveEmpresa = 1) Then + ValidaExistenciasCosto = True + End If + End If + + If ValidaExistenciasCosto Then Dim ObjInventarios As New ClsInventarios - Dim BuscarEnTabla As Boolean = If(UsuarioActual.Empresa.Funcionalidad(715) = "1", True, False) - - - Dim Existencia As Decimal = 0D - - If RBLTipoVenta.SelectedValue.ToEntero = 6 Then - Existencia = ObjInventarios.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, CveAlamcenFiltroDdl, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=-1, - CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=0, PendientePorSurtir:=1, - RestringirAlmacenes:=1, ExcluyeApartados:=-1, BuscarEnTabla:=BuscarEnTabla) - Else - Existencia = ObjInventarios.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), - CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, PendientePorSurtir:=1, - RestringirAlmacenes:=1, ExcluyeApartados:=-1, BuscarEnTabla:=BuscarEnTabla) - End If - - - - Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1) - 'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal If Costo <= 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1) ObjInventarios.Dispose() + Dim PrecioMinimo As Decimal = 0 'RMF. condicion temporal, para reubicación, precio mínimo If UsuarioActual.CveEmpresa = 119 Then @@ -18881,9 +18882,29 @@ Partial Class Ventas End If - If DdlTipoComprobante.SelectedValue <> "Cot" And ChkSinExistencia.Checked = False Or UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 Then + Dim ValidaExistencia As Boolean = (DdlTipoComprobante.SelectedValue <> "Cot" And ChkSinExistencia.Checked = False) Or UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 + + If ValidaExistencia Then + 'VALIDA EXISTENCIA If UsuarioActual.CveEmpresa.Contiene({72, 80, 119, 153, 140, 186, 190}) Then + + Dim BuscarEnTabla As Boolean = If(UsuarioActual.Empresa.Funcionalidad(715) = "1", True, False) + + Dim Existencia As Decimal = 0D + + Using ObjInv2 As New ClsInventarios + If RBLTipoVenta.SelectedValue.ToEntero = 6 Then + Existencia = ObjInv2.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, CveAlamcenFiltroDdl, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=-1, + CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=0, PendientePorSurtir:=1, + RestringirAlmacenes:=1, ExcluyeApartados:=-1, BuscarEnTabla:=BuscarEnTabla) + Else + Existencia = ObjInv2.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), + CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, PendientePorSurtir:=1, + RestringirAlmacenes:=1, ExcluyeApartados:=-1, BuscarEnTabla:=BuscarEnTabla) + End If + End Using + If CveVenta <= 0 OrElse Me.EsCreaApartirDe Then If Existencia - TmpDT.SUM("Cantidad", $"CvePS = {CvePS} AND (EntregaDirecta IS NULL OR EntregaDirecta < 1)") < (If(CantidadModal > 0, CantidadModal, TxtCantidad.Text.ToDouble)) Then Alert("No cuenta con la cantidad suficiente en inventario. Cuenta con " + Existencia.FormatoNumero(2) + ".", TipoMensaje.MsgAdvertencia)