ProveedoresAbonar Descuento escalonado

This commit is contained in:
rakcsle
2023-08-22 08:10:57 -07:00
parent 2394941fc9
commit 94f63102f7
3 changed files with 188 additions and 104 deletions

View File

@@ -368,108 +368,131 @@
</asp:UpdatePanel> </asp:UpdatePanel>
<asp:UpdatePanel ID="UPCompras" runat="server" UpdateMode="Conditional"> <asp:UpdatePanel ID="UPCompras" runat="server" UpdateMode="Conditional">
<ContentTemplate> <ContentTemplate>
<asp:GridView ID="GvCxP" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontraron Cuentas X Pagar Pendientes" <asp:GridView ID="GvCxP" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontraron Cuentas X Pagar Pendientes"
DataKeyNames="CveCompra,ImporteProgramo,Saldo,SubTotal,IVA,IVADeducible,IVANoDeducible,IEPS,RetIVA,RetISR,Total,UUID,RFC,CveFactura,SerieFolio,Descripcion,CvePrePoliza,Fecha,EstatusInventario,CveProveedor,TipoCambio,TipoCambioOriginal, CveMoneda,CveRetIVAConcepto,IVAPorPagar,IVAPorPagarDeducible,IVAPorPagarNoDeducible,IEPSPorPagar,CveRetISRConcepto,PorcentajeIVA,CveTipoConcepto,CveSubProyecto,TotalOriginal,EsImportacion,NoDeducible" DataKeyNames="CveCompra,ImporteProgramo,Saldo,SubTotal,IVA,IVADeducible,IVANoDeducible,IEPS,RetIVA,RetISR,Total,UUID,RFC,CveFactura,SerieFolio,Descripcion,CvePrePoliza,Fecha,EstatusInventario,CveProveedor,TipoCambio,TipoCambioOriginal, CveMoneda,CveRetIVAConcepto,IVAPorPagar,IVAPorPagarDeducible,IVAPorPagarNoDeducible,IEPSPorPagar,CveRetISRConcepto,PorcentajeIVA,CveTipoConcepto,CveSubProyecto,TotalOriginal,EsImportacion,NoDeducible"
Width="100%" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" Style="text-align: center;" GridLines="None"> Width="100%" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" Style="text-align: center;" GridLines="None">
<Columns> <Columns>
<asp:TemplateField> <%-- 0 --%>
<HeaderTemplate></HeaderTemplate> <asp:TemplateField>
<ItemTemplate> <HeaderTemplate></HeaderTemplate>
<asp:CheckBox ID="Chk" runat="server"></asp:CheckBox> <ItemTemplate>
</ItemTemplate> <asp:CheckBox ID="Chk" runat="server"></asp:CheckBox>
</asp:TemplateField> </ItemTemplate>
<asp:TemplateField ItemStyle-Width="115px"> </asp:TemplateField>
<HeaderTemplate>Factura</HeaderTemplate> <%-- 1 --%>
<ItemTemplate> <asp:TemplateField ItemStyle-Width="115px">
<asp:HyperLink ID="HplF" CssClass="Texto" NavigateUrl='<%# Eval("CveCompra", "/Compras/Compras.aspx?CveCompra={0}")%>' Text='<%# Eval("SerieFolio")%>' runat="server"></asp:HyperLink> <HeaderTemplate>Factura</HeaderTemplate>
</ItemTemplate> <ItemTemplate>
</asp:TemplateField> <asp:HyperLink ID="HplF" CssClass="Texto" NavigateUrl='<%# Eval("CveCompra", "/Compras/Compras.aspx?CveCompra={0}")%>' Text='<%# Eval("SerieFolio")%>' runat="server"></asp:HyperLink>
<%--<asp:HyperLinkField DataNavigateUrlFields="CveCompra" DataNavigateUrlFormatString="/Compras/Compras.aspx?CveCompra={0}" DataTextField="SerieFolio" HeaderText="Factura" ControlStyle-CssClass="Texto" />--%> </ItemTemplate>
<asp:TemplateField> </asp:TemplateField>
<HeaderTemplate>Aplica NC</HeaderTemplate> <%-- 2 --%>
<ItemTemplate> <asp:TemplateField>
<asp:HyperLink ID="HplNC" Visible='<%# Eval("AplicaNotaCredito").ToString = "True"%>' ToolTip="Aplica Nota de Crédito" ImageUrl="/Imagenes/flag_blue.png" NavigateUrl='<%# Eval("CveCompra", "/Compras/Compras.aspx?CveCompra={0}")%>' runat="server"></asp:HyperLink> <HeaderTemplate>Aplica NC</HeaderTemplate>
</ItemTemplate> <ItemTemplate>
</asp:TemplateField> <asp:HyperLink ID="HplNC" Visible='<%# Eval("AplicaNotaCredito").ToString = "True"%>' ToolTip="Aplica Nota de Crédito" ImageUrl="/Imagenes/flag_blue.png" NavigateUrl='<%# Eval("CveCompra", "/Compras/Compras.aspx?CveCompra={0}")%>' runat="server"></asp:HyperLink>
<asp:TemplateField HeaderText="Alm." ItemStyle-Width="10%" Visible="false"> </ItemTemplate>
<ItemTemplate> </asp:TemplateField>
<asp:Label data-toggle="tooltip" data-html="true" Text='' ID="LbEstatusInv" runat="server" /> <%-- 3 --%>
</ItemTemplate> <asp:TemplateField HeaderText="Alm." ItemStyle-Width="10%" Visible="false">
</asp:TemplateField> <ItemTemplate>
<asp:TemplateField> <asp:Label data-toggle="tooltip" data-html="true" Text='' ID="LbEstatusInv" runat="server" />
<HeaderTemplate>Descripción</HeaderTemplate> </ItemTemplate>
<ItemTemplate> </asp:TemplateField>
<asp:Literal ID="LtlDescripcion" runat="server" Text='<%# Eval("Descripcion") %>'></asp:Literal>&nbsp; <%-- 4 --%>
</ItemTemplate> <asp:TemplateField>
<ItemStyle HorizontalAlign="Left" /> <HeaderTemplate>Descripción</HeaderTemplate>
</asp:TemplateField> <ItemTemplate>
<asp:TemplateField> <asp:Literal ID="LtlDescripcion" runat="server" Text='<%# Eval("Descripcion") %>'></asp:Literal>&nbsp;
<HeaderTemplate>Fecha Compra</HeaderTemplate>
<ItemTemplate> </ItemTemplate>
<asp:Literal ID="LtlFecha" runat="server" Text='<%# Eval("Fecha", "{0:d}") %>'></asp:Literal> <ItemStyle HorizontalAlign="Left" />
</ItemTemplate> </asp:TemplateField>
</asp:TemplateField> <%-- 5 --%>
<asp:TemplateField> <asp:TemplateField>
<HeaderTemplate>Vencimiento</HeaderTemplate> <HeaderTemplate>Fecha Compra</HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LtlFechaVenci" runat="server" Text='<%# Eval("FechaVencimiento", "{0:d}") %>'></asp:Literal> <asp:Literal ID="LtlFecha" runat="server" Text='<%# Eval("Fecha", "{0:d}") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField> <%-- 6 --%>
<HeaderTemplate>Días Vencidos</HeaderTemplate> <asp:TemplateField>
<ItemTemplate> <HeaderTemplate>Vencimiento</HeaderTemplate>
<asp:Literal ID="LtlDiasVencido" runat="server" Text='<%# Eval("DiasVencidos", "{0}") %>'></asp:Literal>&nbsp; <ItemTemplate>
</ItemTemplate> <asp:Literal ID="LtlFechaVenci" runat="server" Text='<%# Eval("FechaVencimiento", "{0:d}") %>'></asp:Literal>
</asp:TemplateField> </ItemTemplate>
<asp:TemplateField> </asp:TemplateField>
<HeaderTemplate>Monto Compra</HeaderTemplate> <%-- 7 --%>
<ItemTemplate> <asp:TemplateField>
<asp:Literal ID="LtlSaldoOriginal" runat="server" Text='<%# Eval("Original", "{0:N2}") %>'></asp:Literal>&nbsp; <HeaderTemplate>Días Vencidos</HeaderTemplate>
</ItemTemplate> <ItemTemplate>
</asp:TemplateField> <asp:Literal ID="LtlDiasVencido" runat="server" Text='<%# Eval("DiasVencidos", "{0}") %>'></asp:Literal>&nbsp;
<asp:TemplateField>
<HeaderTemplate>Abonado</HeaderTemplate> </ItemTemplate>
<ItemTemplate> </asp:TemplateField>
<asp:Literal ID="LtlAbonado" runat="server" Text='<%# Eval("Abonado", "{0:N2}") %>'></asp:Literal>&nbsp; <%-- 8 --%>
</ItemTemplate> <asp:TemplateField>
</asp:TemplateField> <HeaderTemplate>Monto Compra</HeaderTemplate>
<asp:TemplateField> <ItemTemplate>
<HeaderTemplate>Saldo</HeaderTemplate> <asp:Literal ID="LtlSaldoOriginal" runat="server" Text='<%# Eval("Original", "{0:N2}") %>'></asp:Literal>&nbsp;
<ItemTemplate>
<asp:Literal ID="LtlSaldo" runat="server" Text='<%# Eval("Saldo", "{0:N2}") %>'></asp:Literal>&nbsp; </ItemTemplate>
</ItemTemplate> </asp:TemplateField>
</asp:TemplateField> <%-- 9 --%>
<asp:TemplateField> <asp:TemplateField>
<HeaderTemplate>Abonar</HeaderTemplate> <HeaderTemplate>Abonado</HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:TextBox ID="TxtAbonar" Width="80px" runat="server" Style="text-align: right;" onkeyup="FormatoMoneda(this)"></asp:TextBox> <asp:Literal ID="LtlAbonado" runat="server" Text='<%# Eval("Abonado", "{0:N2}") %>'></asp:Literal>&nbsp;
<asp:RangeValidator ID="RVAbonar" runat="server" Enabled="false" Type="Currency" MinimumValue="0" MaximumValue='<%# Eval("Saldo", "{0:N2}") %>' ErrorMessage="*" ControlToValidate="TxtAbonar" Display="Dynamic"></asp:RangeValidator>
<%-- <ajax:FilteredTextBoxExtender ID="FTBEA" runat="server" </ItemTemplate>
TargetControlID="TxtAbonar" </asp:TemplateField>
FilterType="Custom, Numbers" <%-- 10 --%>
ValidChars="+-.," />--%> <asp:TemplateField>
</ItemTemplate> <HeaderTemplate>Saldo</HeaderTemplate>
</asp:TemplateField> <ItemTemplate>
<asp:TemplateField Visible="false"> <asp:Literal ID="LtlSaldo" runat="server" Text='<%# Eval("Saldo", "{0:N2}") %>'></asp:Literal>&nbsp;
<HeaderTemplate>Comisión</HeaderTemplate>
<ItemTemplate> </ItemTemplate>
<asp:TextBox ID="TxtComision" Width="50px" runat="server" Style="text-align: right;"></asp:TextBox> </asp:TemplateField>
<asp:RangeValidator ID="RVComision" runat="server" Enabled="false" Type="Currency" MinimumValue='<%# CType(Eval("Saldo", "{0:N2}"), Integer) * -1 %>' MaximumValue='<%# Eval("Saldo", "{0:N2}") %>' ErrorMessage="*" ControlToValidate="TxtComision" Display="Dynamic"></asp:RangeValidator> <%-- 11 --%>
<asp:TemplateField Visible="false">
</ItemTemplate> <HeaderTemplate>Aplica<br>Desc.</HeaderTemplate>
</asp:TemplateField> <ItemTemplate>
<asp:TemplateField> <asp:TextBox ID="TxtDescuento" Width="60px" runat="server" Style="text-align: right;" MaxLength="5"></asp:TextBox>
<HeaderTemplate>Auxiliar</HeaderTemplate> <ajax:FilteredTextBoxExtender runat="server" TargetControlID="TxtDescuento" ValidChars="1234567890+" FilterType="Custom" />
<ItemTemplate>
<asp:Literal ID="LtlAux" runat="server"></asp:Literal> </ItemTemplate>
</ItemTemplate> </asp:TemplateField>
</asp:TemplateField> <%-- 12 --%>
</Columns> <asp:TemplateField>
<HeaderTemplate>Abonar</HeaderTemplate>
</asp:GridView> <ItemTemplate>
<asp:TextBox ID="TxtAbonar" Width="80px" runat="server" Style="text-align: right;" onkeyup="FormatoMoneda(this)"></asp:TextBox>
</ContentTemplate> <asp:RangeValidator ID="RVAbonar" runat="server" Enabled="false" Type="Currency" MinimumValue="0" MaximumValue='<%# Eval("Saldo", "{0:N2}") %>' ErrorMessage="*" ControlToValidate="TxtAbonar" Display="Dynamic"></asp:RangeValidator>
</ItemTemplate>
</asp:TemplateField>
<%-- 13 --%>
<asp:TemplateField Visible="false">
<HeaderTemplate>Comisión</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TxtComision" Width="50px" runat="server" Style="text-align: right;"></asp:TextBox>
<asp:RangeValidator ID="RVComision" runat="server" Enabled="false" Type="Currency" MinimumValue='<%# CType(Eval("Saldo", "{0:N2}"), Integer) * -1 %>' MaximumValue='<%# Eval("Saldo", "{0:N2}") %>' ErrorMessage="*" ControlToValidate="TxtComision" Display="Dynamic"></asp:RangeValidator>
</ItemTemplate>
</asp:TemplateField>
<%-- 14 --%>
<asp:TemplateField>
<HeaderTemplate>Auxiliar</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlAux" runat="server"></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel> </asp:UpdatePanel>
@@ -700,5 +723,58 @@
} }
} }
function calculaDescuentoEscalonado(saldo, TxtDescuento, TxtAbonar) {
let idTxtDescuento = TxtDescuento.id
let idTxtAbonar = TxtAbonar.id
let descuentoValue = $("#" + idTxtDescuento).val().trim();
let descuentoParts = descuentoValue.split('+');
let abonarConDescuento = 0.0;
if (descuentoParts.length === 1) {
if (isNaN(parseFloat(descuentoParts[0])) || descuentoParts[0] == "0") {
$("#" + idTxtAbonar).val(saldo.toFixed(2));
} else {
let descuento = saldo * (parseFloat(descuentoParts[0]) / 100);
abonarConDescuento = saldo - descuento;
$("#" + idTxtAbonar).val(FormatoNumero(abonarConDescuento.toFixed(2),2));
}
} else if (descuentoParts.length === 2) {
if (isNaN(parseFloat(descuentoParts[0]))) {
$("#" + idTxtAbonar).val("");
return;
}
let descuento1 = saldo * (parseFloat(descuentoParts[0]) / 100);
if (isNaN(parseFloat(descuentoParts[1]))) {
let descuento = saldo * (parseFloat(descuentoParts[0]) / 100);
abonarConDescuento = saldo - descuento;
$("#" + idTxtAbonar).val(FormatoNumero(abonarConDescuento.toFixed(2), 2));
return;
}
let descuento = saldo * (parseFloat(descuentoParts[0]) / 100);
abonarConDescuento = saldo - descuento;
let abonarConDescuento2 = abonarConDescuento - (abonarConDescuento * (parseFloat(descuentoParts[1]) / 100));
$("#" + idTxtAbonar).val(FormatoNumero(abonarConDescuento2.toFixed(2), 2));
} else {
$("#" + idTxtAbonar).val("");
}
}
</script> </script>
</asp:Content> </asp:Content>

View File

@@ -315,6 +315,10 @@ Partial Class Bancos_ProveedoresAbonar
LnkExcelSolicitud.Visible = True LnkExcelSolicitud.Visible = True
End If End If
If UsuarioActual.CveRol = 1 Then
GvCxP.Columns(11).Visible = True
End If
End If End If
End Sub End Sub
@@ -533,6 +537,10 @@ Partial Class Bancos_ProveedoresAbonar
e.Row.FCCheckBox("Chk").Enabled = False e.Row.FCCheckBox("Chk").Enabled = False
End If End If
e.Row.FCTextBox("TxtDescuento").Attributes.Add("onkeyup", $"calculaDescuentoEscalonado({e.Row.DBCampo("Saldo")},{e.Row.FCTextBox("TxtDescuento").ClientID},{e.Row.FCTextBox("TxtAbonar").ClientID})")
Else
e.Row.FCTextBox("TxtDescuento").Visible = False
End If End If
End If End If
End Sub End Sub
@@ -1354,12 +1362,12 @@ Partial Class Bancos_ProveedoresAbonar
DdlProsepago.Visible = False DdlProsepago.Visible = False
TxtOtrosImportes.Visible = True TxtOtrosImportes.Visible = True
TxtTotal.Visible = True TxtTotal.Visible = True
GvCxP.Columns(12).Visible = True GvCxP.Columns(13).Visible = True
Else Else
DdlProsepago.Visible = False DdlProsepago.Visible = False
TxtOtrosImportes.Visible = False TxtOtrosImportes.Visible = False
TxtTotal.Visible = False TxtTotal.Visible = False
GvCxP.Columns(12).Visible = False GvCxP.Columns(13).Visible = False
TxtOtrosImportes.Text = "" TxtOtrosImportes.Text = ""
TxtTotal.Text = "" TxtTotal.Text = ""
RegistraScript("$get('TxtImporte').value = FormatoNumero(SumaValores(), 2);") RegistraScript("$get('TxtImporte').value = FormatoNumero(SumaValores(), 2);")