1 Conta: Prorrateo gasolina, como admin, pedir a rene que te lo explique

This commit is contained in:
rakcsle
2025-01-17 08:59:01 -07:00
parent 1fa6dba94c
commit 499ed63929
2 changed files with 367 additions and 1 deletions

View File

@@ -128,6 +128,20 @@
</ContentTemplate>
</asp:UpdatePanel>
<%--2021-04-15 contratos de obra--%>
<asp:UpdatePanel ID="UpAccionesProrrateoGasolina" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<li style="text-align: left!important" >
<asp:LinkButton runat="server" ID="LnkProrrateoGasolina" CssClass="" data-toggle="tooltip" data-placement="left" title="Prorrateo Gasolina" OnClick="LnkProrrateoGasolina_Click" Visible="false" >
<i class="fa fa-list" aria-hidden="true"></i> Prorrateo Gasolina
</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
@@ -4576,7 +4590,6 @@
<label runat="server" id="LblSubProyectoEx" for="<%= DdlSubProyecto.ClientID.ToString()%>">
<asp:Label runat="server" id="LblSubProyecto"></asp:Label>:
</label>
</div>
</div>
<div class="col-md-4">
@@ -5703,6 +5716,120 @@
</div>
<div id="DVModalProrrateoGasolina" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Prorratear Gasolina</h4>
</div>
<div class="modal-body">
<asp:UpdatePanel runat="server" ID="UpModalProrrateoGasolina" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<ADS:Dropdownlost runat="server" ID="DdlPSProrrateoGasolina" CssStyle="width:100%" CssClass="form-control input-sm DdlPS" CssClassDdl="select2me" DataTextField="PSCodigo" DataValueField="CvePS" />
<label for="<%= DdlPSProrrateoGasolina.ClientID.ToString()%>">
Productos / Servicio:
<label>
</div>
</div>
</div>
<div class="row" style="margin-top:10px">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlSubProyectoProrrateoGasolina" CssClass=" form-control input-sm select2me" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="SubProyecto" DataValueField="CveSubProyecto">
<asp:ListItem Selected="true" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RfvDdlSubProyectoProrrateoGasolina" runat="server" ControlToValidate="DdlSubProyectoProrrateoGasolina" CssClass="help-block errorimput" InitialValue="-1"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo es necesario, por favor ingréselo." ValidationGroup="GprAgregaPSProrateo">
</asp:RequiredFieldValidator>
<label runat="server" id="Label10" for="<%= DdlSubProyectoProrrateoGasolina.ClientID.ToString()%>">
<asp:Label runat="server" id="LblSubProyectoProrrateoGasolina"></asp:Label>:
</label>
</div>
</div>
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtPrecioProrrateoGasolina" ClientIDMode="Static" runat="server" CssClass=" form-control " CausesValidation="true" MaxLength="12" ValidationGroup="GprAgregaPS"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilTxtPrecioProrrateoGasolina" runat="server" TargetControlID="TxtPrecioProrrateoGasolina" FilterType="Custom, Numbers" ValidChars="." />
<asp:RequiredFieldValidator ID="RfvTxtPrecioProrrateoGasolina" runat="server" ControlToValidate="TxtPrecioProrrateoGasolina" CssClass="help-block errorimput"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Precio''</b> es necesario, por favor ingréselo." ValidationGroup="GprAgregaPSProrateo">
</asp:RequiredFieldValidator>
<label for="<%= TxtPrecioProrrateoGasolina.ClientID.ToString()%>">Importe:</label>
</div>
</div>
<div class="col-md-4" style="margin-top:10px;text-align:right">
<asp:LinkButton ID="LnkAgregarProrrateoGasolina" OnClick="LnkAgregarProrrateoGasolina_Click" runat="server" Text="Agregar" CssClass="btn btn-primary" ValidationGroup="GprAgregaPSProrateo" > </asp:LinkButton>
</div>
</div>
<div class="row" style="margin-top:10px">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:Label runat="server" ID="LblTotalProrrateoGasolina" CssClass="form-control" ></asp:Label>
<label for="<%= LblTotalProrrateoGasolina.ClientID.ToString()%>">Total:</label>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:Label runat="server" ID="LblRestoProrrateoGasolina" CssClass="form-control"></asp:Label>
<label for="<%= LblRestoProrrateoGasolina.ClientID.ToString()%>">Restante:</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvProrrateoGasolina" runat="server" AutoGenerateColumns="false" GridLines="none" BorderWidth="0"
DataKeyNames=""
CssClass="table GvPS table-striped table-hover table-advance Widthall ScrollAD mysmallbtn">
<Columns>
<asp:BoundField DataField="SubProyecto" HeaderText="SubProyecto" />
<asp:BoundField DataField="Subtotal" HeaderText="Subtotal" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:#,##0.####}" />
<asp:BoundField DataField="IVA" HeaderText="IVA" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:#,##0.######}" />
<asp:BoundField DataField="RetIVA" HeaderText="Ret. IVA" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:#,##0.####}" />
<asp:BoundField DataField="RetISR" HeaderText="RetISR" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:#,##0.####}" />
<asp:BoundField DataField="Total" DataFormatString="{0:#,##0.00##}" HeaderText="Total" ItemStyle-HorizontalAlign="Right" />
<asp:TemplateField HeaderText="Eliminar">
<ItemTemplate>
<asp:LinkButton ID="LnkEliminarProrrateoGasolina" runat="server"
CssClass="btn btn-circle btn-xs red" OnClick="LnkEliminarProrrateoGasolina_Click"
Text="<i class='icon-trash'></i>" data-toggle="confirmation"
data-popout="true" data-original-title="¿Seguro que desea eliminar el prorrateo?" data-btn-ok-label="si">
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button ID="BtnGuardarProrrateoGasolina" OnClick="BtnGuardarProrrateoGasolina_Click" runat="server" Text="Guardar" CssClass="btn btn-primary" />
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
<div style="display:none">
<asp:UpdatePanel runat="server">

View File

@@ -1667,6 +1667,12 @@ Partial Class Compras_Compras
End If
If Not CveCompra > 0 Then
LnkProrrateoGasolina.Visible = True
InicializaDTProrrateoGasolina()
End If
End If
'SE OCUPAN AFUERA DEL POSTBACK ??
@@ -22326,6 +22332,239 @@ Partial Class Compras_Compras
End Sub
#Region "PRORRATEO GASOLINA"
Property DTProrrateoGasolina As DataTable
Get
If ViewState("DTProrrateoGasolina") Is Nothing Then
ViewState("DTProrrateoGasolina") = New DataTable
End If
Return DirectCast(ViewState("DTProrrateoGasolina"), DataTable)
End Get
Set(value As DataTable)
ViewState("DTProrrateoGasolina") = value
End Set
End Property
Private Sub InicializaDTProrrateoGasolina()
Dim TmpDTProrrateoGasolina As New DataTable
TmpDTProrrateoGasolina.Columns.Add("CvePS", GetType(Integer))
TmpDTProrrateoGasolina.Columns.Add("CveSubProyecto", GetType(Integer))
TmpDTProrrateoGasolina.Columns.Add("SubProyecto", GetType(String))
TmpDTProrrateoGasolina.Columns.Add("SubTotal", GetType(Decimal))
TmpDTProrrateoGasolina.Columns.Add("IVA", GetType(Decimal))
TmpDTProrrateoGasolina.Columns.Add("RetIVA", GetType(Decimal))
TmpDTProrrateoGasolina.Columns.Add("RetISR", GetType(Decimal))
TmpDTProrrateoGasolina.Columns.Add("Total", GetType(Decimal))
TmpDTProrrateoGasolina.Columns.Add("PorcentajeIVA", GetType(Decimal))
TmpDTProrrateoGasolina.Columns.Add("CveUM", GetType(Integer))
TmpDTProrrateoGasolina.Columns.Add("CveClasificacion", GetType(Integer))
TmpDTProrrateoGasolina.Columns.Add("UM", GetType(String))
TmpDTProrrateoGasolina.Columns.Add("Clasificacion", GetType(String))
TmpDTProrrateoGasolina.Columns.Add("PS", GetType(String))
DTProrrateoGasolina = TmpDTProrrateoGasolina
End Sub
Protected Sub LnkProrrateoGasolina_Click(sender As Object, e As EventArgs)
InicializaDTProrrateoGasolina()
CargarCentrosDeCosto(Nothing, Nothing, Nothing, LblSubProyectoProrrateoGasolina)
DdlSubProyectoProrrateoGasolina.Items.Clear()
DdlSubProyectoProrrateoGasolina.DataSource = If(Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveProyecto:=-1))
DdlSubProyectoProrrateoGasolina.DataBind()
DdlSubProyectoProrrateoGasolina.Items.Insert(0, New ListItem("Seleccione", "-1"))
LblTotalProrrateoGasolina.Text = TxtTotal.Text
CargaProrratePS(-1)
RegistraScript("$('#DVModalProrrateoGasolina').modal();")
UpModalProrrateoGasolina.Update()
End Sub
Private Sub CargaProrratePS(CveClasificacion As Integer)
DdlPSProrrateoGasolina.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlPSProrrateoGasolina.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
DdlPSProrrateoGasolina.SelectedText = ""
DdlPSProrrateoGasolina.SelectedValue = "-1"
Else
DdlPSProrrateoGasolina.ddl.Items.Clear()
'DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion)
If UsuarioActual.TienePermisoProceso(300) Or UsuarioActual.TienePermisoProceso(301) Then
Dim DTTemp As New DataTable
DTTemp.Columns.Add("CvePS", GetType(Integer))
DTTemp.Columns.Add("PSCodigo", GetType(String))
DTTemp.Columns.Add("CveClasificacion", GetType(Integer))
For Each dRow As DataRow In GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).Rows
For Each drowCla As DataRow In DTClasificacionesComprobaciones.Rows
If drowCla("CveClasificacion").ToString.ToEntero = dRow("CveClasificacion").ToString.ToEntero Then
Dim InRow As DataRow = DTTemp.NewRow
InRow("CvePS") = dRow("CvePS").ToString.ToEntero
InRow("PSCodigo") = dRow("PSCodigo").ToString
InRow("CveClasificacion") = dRow("CveClasificacion").ToString.ToEntero
DTTemp.Rows.Add(InRow)
End If
Next
Next
DdlPSProrrateoGasolina.DataSource = If(CveClasificacion > 0, DTTemp.FiltraParametros($"CveClasificacion = {CveClasificacion}"), DTTemp)
Else
DdlPSProrrateoGasolina.DataSource = If(CveClasificacion > 0, GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltraParametros($"CveClasificacion = {CveClasificacion}"), GlobalDTPSSimplificado(UsuarioActual.CveEmpresa))
End If
DdlPSProrrateoGasolina.ddl.DataBind()
DdlPSProrrateoGasolina.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
End If
End Sub
Private Sub GvProrrateoGasolinaBind()
GvProrrateoGasolina.DataSource = DTProrrateoGasolina
GvProrrateoGasolina.DataBind()
UpModalProrrateoGasolina.Update()
End Sub
Protected Sub LnkEliminarProrrateoGasolina_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
DTProrrateoGasolina.Rows.RemoveAt(GvRow.RowIndex)
DTProrrateoGasolina.AcceptChanges()
ProrateoCalculaRestante()
GvProrrateoGasolinaBind()
End Sub
Protected Sub LnkAgregarProrrateoGasolina_Click(sender As Object, e As EventArgs)
Dim CvePs As Integer = DdlPSProrrateoGasolina.SelectedValue.ToEntero
If Not CvePs > 0 Then
Alert("Debe seleccionar un producto", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim PsRow As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePs).FiltroPrimero("")
If PsRow Is Nothing Then
Alert("No se encontro el producto", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim CveUM As Integer = PsRow("CveUM").ToString.ToEntero
Dim UM As String = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa).FiltroPrimeroValor("UnidadMedida", $" CveUnidadMedida = {CveUM} ")
Dim CveClasificacion As Integer = PsRow("CveClasificacion").ToString.ToEntero
Dim Clasificacion As String = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $" CveClasificacion = {CveClasificacion} ")
Dim SubTotalOriginal As Decimal = TxtSubTotal.Text.ToDecimal
Dim IVAOriginal As Decimal = TxtIVA.Text.ToDecimal
Dim RetISROriginal As Decimal = TxtRetISR.Text.ToDecimal
Dim RetIVAOriginal As Decimal = TxtRetIVA.Text.ToDecimal
Dim TotalOriginal As Decimal = TxtTotal.Text.ToDecimal
Dim totalParcialDeseado As Decimal = TxtPrecioProrrateoGasolina.Text.ToDecimal
Dim PorcentajeCalculado As Decimal = totalParcialDeseado / TotalOriginal
Dim subtotalParcial As Decimal = SubTotalOriginal * PorcentajeCalculado
Dim ivaParcial As Decimal = IVAOriginal * PorcentajeCalculado
Dim retIsrParcial As Decimal = RetISROriginal * PorcentajeCalculado
Dim retIvaParcial As Decimal = RetIVAOriginal * PorcentajeCalculado
Dim nRow As DataRow = DTProrrateoGasolina.NewRow
nRow("CvePS") = DdlPSProrrateoGasolina.SelectedValue.ToEntero
nRow("CveSubProyecto") = DdlSubProyectoProrrateoGasolina.SelectedValue.ToEntero
nRow("SubProyecto") = DdlSubProyectoProrrateoGasolina.SelectedItem.Text
nRow("SubTotal") = subtotalParcial
If CveFactura > 0 Then
nRow("IVA") = ivaParcial
nRow("RetIVA") = retIvaParcial
nRow("RetISR") = retIsrParcial
Else
nRow("IVA") = (ivaParcial / subtotalParcial)
nRow("RetIVA") = (retIvaParcial / subtotalParcial)
nRow("RetISR") = (retIsrParcial / subtotalParcial)
End If
nRow("Total") = totalParcialDeseado
nRow("PorcentajeIVA") = (ivaParcial / subtotalParcial)
nRow("CveUM") = CveUM
nRow("UM") = UM
nRow("CveClasificacion") = CveClasificacion
nRow("Clasificacion") = Clasificacion
nRow("PS") = DdlPSProrrateoGasolina.txtText.Value
DTProrrateoGasolina.Rows.Add(nRow)
DdlSubProyectoProrrateoGasolina.SelectedValueExist(-1)
TxtPrecioProrrateoGasolina.Text = ""
ProrateoCalculaRestante()
GvProrrateoGasolinaBind()
End Sub
Private Sub ProrateoCalculaRestante()
LblRestoProrrateoGasolina.Text = (TxtTotal.Text.ToDecimal - DTProrrateoGasolina.SUM("Total")).ToString("###,###,###.00")
End Sub
Protected Sub BtnGuardarProrrateoGasolina_Click(sender As Object, e As EventArgs)
If DTProrrateoGasolina.Rows.Count > 0 Then
TmpDT.Rows.Clear()
For Each dRow As DataRow In DTProrrateoGasolina.Rows
AddPS(1, dRow("CveUM").ToString.ToEntero, dRow("UM").ToString, dRow("CveClasificacion").ToString.ToEntero, dRow("Clasificacion").ToString, dRow("CvePS").ToString.ToEntero, dRow("PS").ToString, 1, dRow("CveSubProyecto").ToString, dRow("SubProyecto").ToString, "",
"-1", "", dRow("SubTotal").ToString.ToDecimal, dRow("Total").ToString.ToDecimal, dRow("PorcentajeIVA").ToString.ToDecimal, dRow("RetIVA").ToString.ToDecimal, dRow("RetISR").ToString.ToDecimal, 0, 0, 0, PorcentajeIVA:=dRow("PorcentajeIVA").ToString.ToDecimal)
Next
AddPS2()
End If
RegistraScript("$('#DVModalProrrateoGasolina').modal('hide');")
End Sub
#End Region
End Class