Activar carga por excel con datos de prorrateo
This commit is contained in:
@@ -33,6 +33,10 @@
|
||||
.ajax__tab_xp .ajax__tab_body {
|
||||
font-size: 12px !important;
|
||||
}
|
||||
|
||||
.addropzone {
|
||||
min-height: 170px;
|
||||
}
|
||||
</style>
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
|
||||
@@ -933,61 +937,86 @@
|
||||
<asp:UpdatePanel runat="server" ID="UpModalProrrateoGasolina" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
|
||||
<%-- <div class="row">
|
||||
<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 class="row">
|
||||
<div class="col-md-12">
|
||||
<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>
|
||||
<label runat="server" id="Label10" for="<%= DdlSubProyectoProrrateoGasolina.ClientID.ToString()%>">
|
||||
<asp:Label runat="server" ID="LblSubProyectoProrrateoGasolina"></asp:Label>:
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-12">
|
||||
<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="GprAgregaPSProrateo"></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()%>">Porcentaje:</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group form-md-line-input input-iconright">
|
||||
<asp:Label runat="server" ID="LblTotalProrrateoGasolina" CssClass="form-control" Text="100%"></asp:Label>
|
||||
<label for="<%= LblTotalProrrateoGasolina.ClientID.ToString()%>">Porcentaje:</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" style="margin-top:10px;text-align:center">
|
||||
<asp:LinkButton ID="LnkAgregarProrrateoGasolina" OnClick="LnkAgregarProrrateoGasolina_Click" runat="server" Text="Agregar" CssClass="btn btn-primary" ValidationGroup="GprAgregaPSProrateo" > </asp:LinkButton>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>--%>
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6" style="text-align:right">
|
||||
<asp:LinkButton runat="server" ID="LnkDecargaPlatilla" OnClick="LnkDecargaPlatilla_Click" CssClass="btn btn-warning"><i class="fa fa-arrow-down" aria-hidden="true"></i> Formato</asp:LinkButton>
|
||||
</div>
|
||||
<div class="col-md-6" style="text-align:left">
|
||||
<asp:Button Text="Agregar" CssClass="btn btn-success" ID="BrnAgregarPlantilla" OnClick="BrnAgregarPlantilla_Click" runat="server" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-21" style="margin-left: 5px; margin-right: 5px;">
|
||||
<asp:TextBox ID="TxtExcel" CssClass="ADSdropzone hidden" Text="" data-maxFile="1" runat="server"></asp:TextBox>
|
||||
</div>
|
||||
</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="GprAgregaPSProrateo"></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()%>">Porcentaje:</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" Text="100%"></asp:Label>
|
||||
<label for="<%= LblTotalProrrateoGasolina.ClientID.ToString()%>">Porcentaje:</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 class="row" style="margin-top:10px">
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
@@ -1018,6 +1047,9 @@
|
||||
</div>
|
||||
|
||||
</ContentTemplate>
|
||||
<Triggers>
|
||||
<asp:PostBackTrigger ControlID="LnkDecargaPlatilla" />
|
||||
</Triggers>
|
||||
</asp:UpdatePanel>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
@@ -1565,9 +1597,6 @@
|
||||
<ajax:TabPanel runat="server" HeaderText="Historial" ID="TabHistorial">
|
||||
<ContentTemplate>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<asp:GridView ID="GVSolicitudesHistorial" runat="server" GridLines="None" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" AutoGenerateColumns="False" OnRowDataBound="GVSolicitudesHistorial_RowDataBound"
|
||||
@@ -1634,26 +1663,11 @@
|
||||
</asp:GridView>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ContentTemplate>
|
||||
</ajax:TabPanel>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ajax:TabContainer>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -5587,13 +5587,13 @@ Partial Class Compras_eFacturas
|
||||
|
||||
|
||||
If DdlSubProyectoProrrateoGasolina.SelectedValue.ToEntero > 0 Then
|
||||
AgregarProrrateoGasolina(DdlSubProyectoProrrateoGasolina.SelectedValue.ToEntero, DdlSubProyectoProrrateoGasolina.SelectedItem.Text, CvePs, CveUM, UM, CveClasificacion, Clasificacion)
|
||||
AgregarProrrateoGasolina(DdlSubProyectoProrrateoGasolina.SelectedValue.ToEntero, DdlSubProyectoProrrateoGasolina.SelectedItem.Text, CvePs, CveUM, UM, CveClasificacion, Clasificacion, TxtPrecioProrrateoGasolina.Text.ToDecimal)
|
||||
Else
|
||||
DTProrrateoTmp.Rows.Clear()
|
||||
|
||||
For Each item As ListItem In DdlSubProyectoProrrateoGasolina.Items
|
||||
If item.Value.ToEntero > 0 Then
|
||||
AgregarProrrateoGasolina(item.Value.ToEntero, item.Text, CvePs, CveUM, UM, CveClasificacion, Clasificacion)
|
||||
AgregarProrrateoGasolina(item.Value.ToEntero, item.Text, CvePs, CveUM, UM, CveClasificacion, Clasificacion, TxtPrecioProrrateoGasolina.Text.ToDecimal)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
@@ -5605,7 +5605,7 @@ Partial Class Compras_eFacturas
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub AgregarProrrateoGasolina(CveSubProyecto As Integer, SubProyecto As String, CvePS As Integer, CveUM As Integer, UM As String, CveClasificacion As Integer, Clasificacion As String)
|
||||
Private Sub AgregarProrrateoGasolina(CveSubProyecto As Integer, SubProyecto As String, CvePS As Integer, CveUM As Integer, UM As String, CveClasificacion As Integer, Clasificacion As String, Porcentaje As Decimal)
|
||||
|
||||
''' este prco3eso compratira todo esto se debe de llevar a la genracion de la factura por porcentaje
|
||||
|
||||
@@ -5615,7 +5615,7 @@ Partial Class Compras_eFacturas
|
||||
Dim RetIVAOriginal As Decimal = 0D 'TxtRetIVA.Text.ToDecimal
|
||||
Dim TotalOriginal As Decimal = 1
|
||||
|
||||
Dim totalParcialDeseado As Decimal = TxtPrecioProrrateoGasolina.Text.ToDecimal
|
||||
Dim totalParcialDeseado As Decimal = Porcentaje
|
||||
Dim PorcentajeCalculado As Decimal = totalParcialDeseado / TotalOriginal
|
||||
|
||||
Dim subtotalParcial As Decimal = SubTotalOriginal * PorcentajeCalculado
|
||||
@@ -5643,7 +5643,7 @@ Partial Class Compras_eFacturas
|
||||
|
||||
nRow("Total") = totalParcialDeseado.RoundSQL(4)
|
||||
nRow("PorcentajeIVA") = (ivaParcial / subtotalParcial).RoundSQL(4)
|
||||
nRow("Porcentaje") = TxtPrecioProrrateoGasolina.Text.ToDecimal '((totalParcialDeseado.RoundSQL(4) * 100) / TotalOriginal).RoundSQL(2)
|
||||
nRow("Porcentaje") = Porcentaje '((totalParcialDeseado.RoundSQL(4) * 100) / TotalOriginal).RoundSQL(2)
|
||||
|
||||
'nRow("RetIVAPorcentaje") = (retIvaParcial / subtotalParcial).RoundSQL(4)
|
||||
'nRow("RetISRPorcentaje") = (retIsrParcial / subtotalParcial).RoundSQL(4)
|
||||
@@ -6213,6 +6213,113 @@ Partial Class Compras_eFacturas
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Protected Sub LnkDecargaPlatilla_Click(sender As Object, e As EventArgs)
|
||||
|
||||
Dim rutaArchivoPlantilla As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\CargaProrrateoPorcentaje.xlsx"
|
||||
|
||||
Dim nombreArchivo As String = "CargaProrrateoPorcentaje.xlsx"
|
||||
|
||||
' Configurar la respuesta HTTP
|
||||
Response.Clear()
|
||||
Response.ContentType = "application/octet-stream"
|
||||
Response.AppendHeader("Content-Disposition", "attachment; filename=" & nombreArchivo)
|
||||
|
||||
Dim contenido As Byte() = System.IO.File.ReadAllBytes(rutaArchivoPlantilla)
|
||||
Response.BinaryWrite(contenido)
|
||||
|
||||
Response.Flush()
|
||||
Response.End()
|
||||
|
||||
End Sub
|
||||
|
||||
Protected Sub BrnAgregarPlantilla_Click(sender As Object, e As EventArgs)
|
||||
|
||||
If TxtExcel.getfiles().Archivos.Count > 0 Then
|
||||
Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
|
||||
Dim Directorio As String = Server.MapPath("~") & file.path
|
||||
Dim Tipo As String = If(file.Extension.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
|
||||
|
||||
Dim DTPlantilla As DataTable = ReadExcelFile(Directorio + file.filename, True)
|
||||
|
||||
ProcesaPlantilla(DTPlantilla)
|
||||
|
||||
Else
|
||||
Alert("No existe el archivo.Favor de subir un archivo csv o excel a la plataforma", TipoMensaje.MsgError)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Function ProcesaPlantilla(DTPlantilla As DataTable) As Boolean
|
||||
|
||||
|
||||
Dim CvePs As Integer = DdlPS.SelectedValue.ToEntero
|
||||
|
||||
If Not CvePs > 0 Then
|
||||
Alert("Debe seleccionar un producto", TipoMensaje.MsgAdvertencia)
|
||||
Return False
|
||||
End If
|
||||
|
||||
Dim PsRow As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePs).FiltroPrimero("")
|
||||
|
||||
If PsRow Is Nothing Then
|
||||
Alert("No se encontro el producto", TipoMensaje.MsgAdvertencia)
|
||||
Return False
|
||||
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 TotalPorcentaje As Decimal
|
||||
Dim ErrorProceso As Boolean = False
|
||||
Dim SbSubProyectosNoencontrados As New StringBuilder
|
||||
|
||||
For Each dRow As DataRow In DTPlantilla.Rows
|
||||
If dRow("Porcentaje").ToString.ToDecimal < 0 Then
|
||||
Alert("No se admiten porcentajes negativos.", TipoMensaje.MsgAdvertencia)
|
||||
Return False
|
||||
End If
|
||||
TotalPorcentaje = TotalPorcentaje + dRow("Porcentaje").ToString.ToDecimal
|
||||
Next
|
||||
|
||||
TotalPorcentaje = TotalPorcentaje.RoundSQL
|
||||
If TotalPorcentaje <> 100 Then
|
||||
Alert($"La suma de porcentaje es diferente de 100%, el porcetaje actual es de {TotalPorcentaje}%", TipoMensaje.MsgAdvertencia)
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Not DTPlantilla.Columns.Contains("CveSubProyecto") Then
|
||||
DTPlantilla.Columns.Add("CveSubProyecto", GetType(Integer))
|
||||
End If
|
||||
|
||||
|
||||
For Each dRow As DataRow In DTPlantilla.Rows
|
||||
Dim CveSubProyecto As Integer = GlobalDTSubProyectos(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $" SubProyecto = '{dRow("CentroCosto").ToString}' ").ToEntero
|
||||
If CveSubProyecto > 0 Then
|
||||
dRow("CveSubProyecto") = CveSubProyecto
|
||||
Else
|
||||
ErrorProceso = True
|
||||
SbSubProyectosNoencontrados.AppendLine($"{dRow("CentroCosto").ToString}<br>")
|
||||
End If
|
||||
Next
|
||||
|
||||
If ErrorProceso AndAlso SbSubProyectosNoencontrados.Length > 0 Then
|
||||
Alert($"No se encontraron los siguientes centros de costo <br>{SbSubProyectosNoencontrados.ToString}", TipoMensaje.MsgAdvertencia)
|
||||
End If
|
||||
|
||||
For Each dRow As DataRow In DTPlantilla.Rows
|
||||
AgregarProrrateoGasolina(dRow("CveSubProyecto").ToString.ToEntero, dRow("CentroCosto").ToString, CvePs, CveUM, UM, CveClasificacion, Clasificacion, dRow("Porcentaje").ToString.ToDecimal)
|
||||
Next
|
||||
|
||||
TxtExcel.Text = "[]"
|
||||
Return True
|
||||
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user