This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2024-07-25 17:03:54 -07:00
parent fed72cbc38
commit cf85a20406
3 changed files with 712 additions and 193 deletions

View File

@@ -673,7 +673,7 @@ Public Class ClsNominas
' End Try
' Return retorno
'End Function
Public Function GetDispersionnomina(CvePeriodo As Int32, CveEmpresa As Int32, CveSATBanco As Int32) As Boolean
Public Function GetDispersionNomina(CvePeriodo As Int32, CveEmpresa As Int32, CveSATBanco As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_Nom_Dispersionnomina", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters

View File

@@ -149,13 +149,14 @@
padding-top: 2px;
padding-bottom: 2px;
}
#ModalConceptos table.table > tbody > tr > td,
#ModalConceptos table.table > tbody > tr > th,
#ModalConceptos table.table > thead > tr > td,
#ModalConceptos table.table > thead > tr > th {
font-size: 11px;
padding-top: 2px;
padding-bottom: 2px;
padding-bottom: 2px;
}
.GvConceptos.table > tbody > tr.ConceptosTotales td {
@@ -215,7 +216,7 @@
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel ID="UpAccciones" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkAutorizar" Visible="false" OnClick="LnkAutorizar_Click" runat="server"><i class="fa fa-thumbs-up" aria-hidden="true"></i>Autorizar</asp:LinkButton>
</li>
@@ -288,6 +289,9 @@
<li>
<asp:LinkButton ID="LnkFormatoTabular" Visible="false" OnClick="LnkFormatoTabular_Click" CssClass="" runat="server"><i class="fa fa-file-excel"></i> Nómina tabular</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkPersonalizarNomina" Visible="false" OnClick="LnkPersonalizarNomina_Click" CssClass="" runat="server"><i class="fa fa-file-excel"></i> Nómina Personalizar</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkFormatoFiscal" Visible="false" OnClick="LnkFormatoFiscal_Click" CssClass="" runat="server"><i class="fa fa-file-excel"></i> Nómina Fiscal</asp:LinkButton>
</li>
@@ -305,7 +309,8 @@
</li>
<li>
<asp:LinkButton ID="LnkProcesarModal" OnClick="LnkProcesarModal_Click" runat="server"><i class="fa fa-check"></i> Procesar archivo SUA EBA PDF</asp:LinkButton>
</li><%--
</li>
<%--
<li>
<asp:LinkButton ID="LnkOpenCancelarTimbre" OnClick="LnkOpenCancelarTimbre_Click" runat="server"><i class="fa fa-download"></i> CancelarTimbre</asp:LinkButton>
</li>--%>
@@ -1438,7 +1443,7 @@
</asp:GridView>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
@@ -3826,8 +3831,8 @@
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:LinkButton ID="LnkCargarAsistenciaMasiva" OnClick="LnkCargarAsistenciaMasiva_Click" CssClass="btn btn-primary" runat="server">Cargar</asp:LinkButton>
<asp:CheckBox ID="chhkCargarSistenciaMasiva" Text="¿Volver a calcular la nómina?" runat="server" />
<asp:CheckBox ID="chhkCargarSistenciaMasiva" Text="¿Volver a calcular la nómina?" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
@@ -4929,7 +4934,7 @@
</asp:UpdatePanel>
</div>
<div id="divdOrdenempleados" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="upModalOrdenEmpleados" class="modal-dialog modal" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
@@ -4945,7 +4950,7 @@
<div class="modal-body">
<div class="portlet light bordered xspadding" id="portletorden">
<div class="portlet-title">
<div class="caption font-green">
@@ -4957,12 +4962,12 @@
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body" >
<div class="portlet-body">
<div class="row">
<div class="col-md-6" runat="server" id="div1">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlOrdenColumna" runat="server" CssClass="form-control Widthall select2me" style="width:100%"
<asp:DropDownList ID="DdlOrdenColumna" runat="server" CssClass="form-control Widthall select2me" Style="width: 100%"
DataTextField="Columna" DataValueField="ColumnaDB" ValidationGroup="GrpGuardarOrder">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
@@ -4972,8 +4977,8 @@
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DDlOrdenTipo" runat="server" CssClass="form-control Widthall select2me" ValidationGroup="GrpGuardarOrder" style="width:100%" >
<asp:ListItem Text="Ascendente" Value="ASC" Selected="True" ></asp:ListItem>
<asp:DropDownList ID="DDlOrdenTipo" runat="server" CssClass="form-control Widthall select2me" ValidationGroup="GrpGuardarOrder" Style="width: 100%">
<asp:ListItem Text="Ascendente" Value="ASC" Selected="True"></asp:ListItem>
<asp:ListItem Text="Descendente" Value="DESC"></asp:ListItem>
</asp:DropDownList>
<asp:Label ID="Label8" Text="Tipo:" AssociatedControlID="DDlOrdenTipo" runat="server"></asp:Label>
@@ -4981,7 +4986,7 @@
</div>
</div>
</div>
<div class="text-right">
<asp:LinkButton ID="LnkAgregarOrden" OnClick="LnkAgregarOrden_Click" CssClass="btn btn-primary" runat="server">Agregar</asp:LinkButton>
</div>
@@ -5013,7 +5018,7 @@
</asp:UpdatePanel>
</div>
<div id="divdMostrarOcultarConceptos" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UpMostrarOcultarConceptos" class="modal-dialog modal" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
@@ -5029,7 +5034,7 @@
<div class="modal-body">
<div class="portlet light bordered xspadding" id="portletMostrarOcultar">
<div class="portlet-title">
<div class="caption font-green">
@@ -5041,12 +5046,12 @@
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body" >
<div class="portlet-body">
<div class="row">
<div class="col-md-6" runat="server" id="div2">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlMOColumna" runat="server" CssClass="form-control Widthall select2me" style="width:100%"
<asp:DropDownList ID="DdlMOColumna" runat="server" CssClass="form-control Widthall select2me" Style="width: 100%"
DataTextField="Columna" DataValueField="ColumnaDB" ValidationGroup="GrpGuardarOrder">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
@@ -5056,8 +5061,8 @@
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlMOTipo" runat="server" CssClass="form-control Widthall select2me" ValidationGroup="GrpGuardarOrder" style="width:100%">
<asp:ListItem Text="Mostrar" Value="1" Selected="True" ></asp:ListItem>
<asp:DropDownList ID="DdlMOTipo" runat="server" CssClass="form-control Widthall select2me" ValidationGroup="GrpGuardarOrder" Style="width: 100%">
<asp:ListItem Text="Mostrar" Value="1" Selected="True"></asp:ListItem>
<asp:ListItem Text="Ocultar" Value="0"></asp:ListItem>
</asp:DropDownList>
<asp:Label ID="Label11" Text="Tipo:" AssociatedControlID="DdlMOTipo" runat="server"></asp:Label>
@@ -5065,7 +5070,7 @@
</div>
</div>
</div>
<div class="text-right">
<asp:LinkButton ID="LnkMoAgregar" OnClick="LnkMoAgregar_Click" CssClass="btn btn-primary" runat="server">Agregar</asp:LinkButton>
</div>
@@ -5096,138 +5101,224 @@
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div id="ModalMovtoPermanente" class="modal ADS fade" role="dialog">
<div id="divPersonalizarNomina" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UpPersonalizarxls" class="modal-dialog modal" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content rowpadding">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="H4" runat="server">
<asp:Label runat="server" ID="Label12" Text="Personalizar"></asp:Label>
</h4>
</div>
<div class="modal-body">
<asp:UpdatePanel ID="UpMovtosPermanentesModal" UpdateMode="Conditional" class="modal-dialog" runat="server">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" onclick="$('#ModalMovtoPermanente').modal('hide');return;">&times;</button><h4 class="modal-title">Movimiento permanente</h4>
</div>
<div class="modal-body">
<asp:Panel runat="server" Visible="false" CssClass="portlet light xspadding bordered " ID="pnlAddupMovto">
<div class="portlet-title">
<div class="caption ">
<i class="icon-pin font-yellow-gold"></i>
<span class="caption-subject font-yellow-gold bold uppercase">
<asp:Literal ID="LtlMovtoPermanenteaddup" runat="server"></asp:Literal></span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body ">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtDescripcion" CssClass="form-control" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TxtDescripcion" CssClass="help-block errorimput"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descripción''</b> es necesario "
ValidationGroup="GrpGuardarMovyoPerma"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Descripción:" AssociatedControlID="TxtDescripcion"></asp:Label>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:Label runat="server" Text="Tipo Concepto:" AssociatedControlID=""></asp:Label>
<asp:DropDownList ID="DdlTipo" runat="server" AppendDataBoundItems="True" OnSelectedIndexChanged="DdlTipo_SelectedIndexChanged" AutoPostBack="true" DataTextField="TipoGasto" DataValueField="TipoGasto" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar">
<asp:ListItem Value="P" Text="Percepciones"></asp:ListItem>
<asp:ListItem Value="D" Selected="True" Text="Deducciones"></asp:ListItem>
<asp:ListItem Value="O" Text="Obligaciones"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:Label runat="server" Text="Concepto:" AssociatedControlID=""></asp:Label>
<asp:DropDownList ID="DdlConcepto" runat="server" DataTextField="CodigoConcepto" DataValueField="CveConcepto" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar"></asp:DropDownList>
</div>
</div>
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:Label runat="server" Text="Tipo Descuento:" AssociatedControlID=""></asp:Label>
<asp:DropDownList ID="DdlTipoDescto" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlTipoDescto_SelectedIndexChanged" DataTextField="CodigoConcepto" DataValueField="CveConcepto" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar">
<asp:ListItem Value="1" Text="Importe"></asp:ListItem>
<asp:ListItem Value="2" Text="Porcentaje"></asp:ListItem>
<asp:ListItem Value="3" Text="Importe(Tope Monto)"></asp:ListItem>
<asp:ListItem Value="4" Text="Porcentaje(Tope Monto)"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtValor" CssClass="form-control" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvValor" runat="server" ControlToValidate="TxtValor" CssClass="help-block errorimput"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Valor''</b> es necesario "
ValidationGroup="GrpGuardarMovyoPerma"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Valor:" AssociatedControlID="TxtValor"></asp:Label>
</div>
</div>
<asp:Panel runat="server" ID="pnlVecesAplicar" CssClass="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtVecesAplicar" CssClass="form-control" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvVecesAplicar" runat="server" ControlToValidate="TxtVecesAplicar" CssClass="help-block errorimput"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Veces por Aplicar''</b> es necesario "
ValidationGroup="GrpGuardarMovyoPerma"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Veces por Aplicar:" AssociatedControlID="TxtVecesAplicar"></asp:Label>
</div>
</asp:Panel>
<asp:Panel runat="server" ID="pnlMonto" CssClass="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtMontoLimite" CssClass="form-control" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvMontoLimite" runat="server" ControlToValidate="TxtMontoLimite" CssClass="help-block errorimput"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Monto Limite''</b> es necesario "
ValidationGroup="GrpGuardarMovyoPerma"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Monto Limite:" AssociatedControlID="TxtMontoLimite"></asp:Label>
</div>
</asp:Panel>
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtFechaAplicacion" runat="server" CausesValidation="True" CssClass="form-control"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvFechaAplicacion" runat="server" ControlToValidate="TxtFechaAplicacion" CssClass="help-block errorimput"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha de Baja''</b> es necesario "
ValidationGroup="GrpGuardarMovyoPerma"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Fecha de Aplicación: " AssociatedControlID="TxtFechaAplicacion"></asp:Label>
<ajax:MaskedEditExtender ID="MKEFechaAplicacion" runat="server" TargetControlID="TxtFechaAplicacion" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left" BehaviorID="_content_MKEFechaBaja" Century="2000" CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" CultureThousandsPlaceholder="" CultureTimePlaceholder=""></ajax:MaskedEditExtender>
<ajax:CalendarExtender ID="CEFechaAplicacion" runat="server" TargetControlID="TxtFechaAplicacion" PopupButtonID="ImgFechaBaja" PopupPosition="BottomRight" BehaviorID="_content_CEFechaBaja"></ajax:CalendarExtender>
<asp:CompareValidator ID="CVFechaAplicacion" runat="server" ControlToValidate="TxtFechaAplicacion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha de Baja''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar" Visible="False"></asp:CompareValidator>
<div class="portlet light bordered xspadding" id="portletpersonalizarxls" style="display:none;">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Personal Excel</span>
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body">
</div>
</div>
<div class="row">
<div class="row">
<div class="col-md-6" runat="server" id="div3">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlMOPXColumna" runat="server" CssClass="form-control Widthall select2me" Style="width: 100%"
DataTextField="Columna" DataValueField="ColumnaDB" ValidationGroup="GrpGuardarOrder">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:Label ID="Label13" runat="server" Text="Columna:" AssociatedControlID="DdlMOPXColumna"></asp:Label>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input form-md-floating-label input-iconright">
<asp:Label runat="server" Text="Cuenta contable" AssociatedControlID="DdlCtaContable"></asp:Label>
<asp:DropDownList ID="DdlCtaContable" runat="server" AppendDataBoundItems="True" DataTextField="CtaCodigo" DataValueField="CveCuenta" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar"></asp:DropDownList>
</div>
</div>
<div class="col-md-3">
<div style="padding-top: 10px; padding-bottom: 14px;">
¿Activo?
</div>
<asp:CheckBox ID="ChkEstatus" CssClass="chksino " Text=" " runat="server" />
</div>
<div class="col-md-3">
</div>
</div>
<div class="text-right"></div>
</div>
</asp:Panel>
<asp:GridView ID="GVMovtoPermanenteSaldos" runat="server" GridLines="None" CssClass ="table table-hover table-striped ScrollAD Widthall" AutoGenerateColumns="False"
datakeynames="CveTipo,Nombre,Concepto,CveMovtoPermanente,FechaFin,CvePeriodo,NoPagos,ImportePagos,Pagado,Total,Saldo,Fecha">
<Columns>
<asp:TemplateField HeaderText="Nombre">
<ItemTemplate>
<asp:Label ID="lblnombre" runat="server" Text='<%# Eval("Nombre")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<%--<asp:TemplateField HeaderText="Concepto">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<%--<asp:DropDownList ID="DropDownList3" runat="server" CssClass="form-control Widthall select2me" ValidationGroup="GrpGuardarOrder" Style="width: 100%">
<asp:ListItem Text="Mostrar" Value="1" Selected="True"></asp:ListItem>
<asp:ListItem Text="Ocultar" Value="0"></asp:ListItem>
</asp:DropDownList>
<asp:Label ID="Label14" Text="Tipo:" AssociatedControlID="DdlMOTipo" runat="server"></asp:Label>--%>
</div>
</div>
</div>
<div class="text-right">
<asp:LinkButton ID="LnkMoPXAgregar" OnClick="LnkMoPXAgregar_Click" CssClass="btn btn-primary" runat="server">Agregar</asp:LinkButton>
</div>
</div>
</div>
<asp:GridView ID="GvPersonalizarExcel" DataKeyNames="Columna,ColumnaDB,Tipo,TipoDB" runat="server" GridLines="None" Width="100%" CellSpacing="0"
CssClass="table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" data-sort="true" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Columna" HeaderText="Columna" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left" />
<%--<asp:BoundField DataField="Tipo" HeaderText="Tipo" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left" />--%>
<asp:TemplateField HeaderStyle-Width="30">
<ItemTemplate>
<div style="min-width: 30px; text-align: right; white-space: nowrap; padding-right: 10px;">
<asp:LinkButton runat="server" ID="LnkEliminarPersonalizar" OnClick="LnkEliminarPersonalizar_Click" CssClass="btn btn-circle btn-sm btn-xs red mysmallbtn" Text="<i class='icon-trash'></i>"
data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea eliminar el Orden?" data-btn-ok-label="si" />
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div class="modal-footer">
<asp:LinkButton ID="LnkFormatoPersonalizado" OnClick="LnkFormatoPersonalizado_Click" runat="server" CssClass="btn btn-primary" ValidationGroup="grpno-validacion"> Descargar</asp:LinkButton>
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="LnkFormatoPersonalizado" />
</Triggers>
</asp:UpdatePanel>
</div>
<div id="ModalMovtoPermanente" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UpMovtosPermanentesModal" UpdateMode="Conditional" class="modal-dialog" runat="server">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" onclick="$('#ModalMovtoPermanente').modal('hide');return;">&times;</button><h4 class="modal-title">Movimiento permanente</h4>
</div>
<div class="modal-body">
<asp:Panel runat="server" Visible="false" CssClass="portlet light xspadding bordered " ID="pnlAddupMovto">
<div class="portlet-title">
<div class="caption ">
<i class="icon-pin font-yellow-gold"></i>
<span class="caption-subject font-yellow-gold bold uppercase">
<asp:Literal ID="LtlMovtoPermanenteaddup" runat="server"></asp:Literal></span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body ">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtDescripcion" CssClass="form-control" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TxtDescripcion" CssClass="help-block errorimput"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descripción''</b> es necesario "
ValidationGroup="GrpGuardarMovyoPerma"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Descripción:" AssociatedControlID="TxtDescripcion"></asp:Label>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:Label runat="server" Text="Tipo Concepto:" AssociatedControlID=""></asp:Label>
<asp:DropDownList ID="DdlTipo" runat="server" AppendDataBoundItems="True" OnSelectedIndexChanged="DdlTipo_SelectedIndexChanged" AutoPostBack="true" DataTextField="TipoGasto" DataValueField="TipoGasto" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar">
<asp:ListItem Value="P" Text="Percepciones"></asp:ListItem>
<asp:ListItem Value="D" Selected="True" Text="Deducciones"></asp:ListItem>
<asp:ListItem Value="O" Text="Obligaciones"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:Label runat="server" Text="Concepto:" AssociatedControlID=""></asp:Label>
<asp:DropDownList ID="DdlConcepto" runat="server" DataTextField="CodigoConcepto" DataValueField="CveConcepto" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar"></asp:DropDownList>
</div>
</div>
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:Label runat="server" Text="Tipo Descuento:" AssociatedControlID=""></asp:Label>
<asp:DropDownList ID="DdlTipoDescto" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlTipoDescto_SelectedIndexChanged" DataTextField="CodigoConcepto" DataValueField="CveConcepto" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar">
<asp:ListItem Value="1" Text="Importe"></asp:ListItem>
<asp:ListItem Value="2" Text="Porcentaje"></asp:ListItem>
<asp:ListItem Value="3" Text="Importe(Tope Monto)"></asp:ListItem>
<asp:ListItem Value="4" Text="Porcentaje(Tope Monto)"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtValor" CssClass="form-control" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvValor" runat="server" ControlToValidate="TxtValor" CssClass="help-block errorimput"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Valor''</b> es necesario "
ValidationGroup="GrpGuardarMovyoPerma"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Valor:" AssociatedControlID="TxtValor"></asp:Label>
</div>
</div>
<asp:Panel runat="server" ID="pnlVecesAplicar" CssClass="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtVecesAplicar" CssClass="form-control" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvVecesAplicar" runat="server" ControlToValidate="TxtVecesAplicar" CssClass="help-block errorimput"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Veces por Aplicar''</b> es necesario "
ValidationGroup="GrpGuardarMovyoPerma"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Veces por Aplicar:" AssociatedControlID="TxtVecesAplicar"></asp:Label>
</div>
</asp:Panel>
<asp:Panel runat="server" ID="pnlMonto" CssClass="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtMontoLimite" CssClass="form-control" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvMontoLimite" runat="server" ControlToValidate="TxtMontoLimite" CssClass="help-block errorimput"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Monto Limite''</b> es necesario "
ValidationGroup="GrpGuardarMovyoPerma"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Monto Limite:" AssociatedControlID="TxtMontoLimite"></asp:Label>
</div>
</asp:Panel>
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtFechaAplicacion" runat="server" CausesValidation="True" CssClass="form-control"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvFechaAplicacion" runat="server" ControlToValidate="TxtFechaAplicacion" CssClass="help-block errorimput"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha de Baja''</b> es necesario "
ValidationGroup="GrpGuardarMovyoPerma"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Fecha de Aplicación: " AssociatedControlID="TxtFechaAplicacion"></asp:Label>
<ajax:MaskedEditExtender ID="MKEFechaAplicacion" runat="server" TargetControlID="TxtFechaAplicacion" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left" BehaviorID="_content_MKEFechaBaja" Century="2000" CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" CultureThousandsPlaceholder="" CultureTimePlaceholder=""></ajax:MaskedEditExtender>
<ajax:CalendarExtender ID="CEFechaAplicacion" runat="server" TargetControlID="TxtFechaAplicacion" PopupButtonID="ImgFechaBaja" PopupPosition="BottomRight" BehaviorID="_content_CEFechaBaja"></ajax:CalendarExtender>
<asp:CompareValidator ID="CVFechaAplicacion" runat="server" ControlToValidate="TxtFechaAplicacion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha de Baja''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar" Visible="False"></asp:CompareValidator>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input form-md-floating-label input-iconright">
<asp:Label runat="server" Text="Cuenta contable" AssociatedControlID="DdlCtaContable"></asp:Label>
<asp:DropDownList ID="DdlCtaContable" runat="server" AppendDataBoundItems="True" DataTextField="CtaCodigo" DataValueField="CveCuenta" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar"></asp:DropDownList>
</div>
</div>
<div class="col-md-3">
<div style="padding-top: 10px; padding-bottom: 14px;">
¿Activo?
</div>
<asp:CheckBox ID="ChkEstatus" CssClass="chksino " Text=" " runat="server" />
</div>
<div class="col-md-3">
</div>
</div>
<div class="text-right"></div>
</div>
</asp:Panel>
<asp:GridView ID="GVMovtoPermanenteSaldos" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall" AutoGenerateColumns="False"
DataKeyNames="CveTipo,Nombre,Concepto,CveMovtoPermanente,FechaFin,CvePeriodo,NoPagos,ImportePagos,Pagado,Total,Saldo,Fecha">
<Columns>
<asp:TemplateField HeaderText="Nombre">
<ItemTemplate>
<asp:Label ID="lblnombre" runat="server" Text='<%# Eval("Nombre")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<%--<asp:TemplateField HeaderText="Concepto">
<ItemTemplate>
<asp:Label ID="lblconcepto" runat="server" Text='<%# Eval("Concepto")%>'> </asp:Label>
</ItemTemplate>
@@ -5237,61 +5328,61 @@
<asp:Label ID="lblcveMovtoPermanente" runat="server" Text='<%# Eval("CveMovtoPermanente")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>--%>
<%--<asp:TemplateField HeaderText="Fecha Fin">
<%--<asp:TemplateField HeaderText="Fecha Fin">
<ItemTemplate>
<asp:Label ID="lblfechaFin" runat="server" Text='<%# Eval("FechaFin")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>--%>
<%--<asp:TemplateField HeaderText="Cve Periodo">
<%--<asp:TemplateField HeaderText="Cve Periodo">
<ItemTemplate>
<asp:Label ID="lblcvePeriodo" runat="server" Text='<%# Eval("CvePeriodo")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>--%>
<asp:TemplateField HeaderText="Fecha">
<ItemTemplate>
<asp:Label ID="lblfecha" runat="server" Text='<%# Eval("Fecha")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="No Pagos">
<ItemTemplate>
<asp:Label ID="lblnoPagos" runat="server" Text='<%# Eval("NoPagos")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Importe Pago">
<ItemTemplate>
<asp:Label ID="lblimportePagos" runat="server" Text='<%# Eval("ImportePagos","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Pagado">
<ItemTemplate>
<asp:Label ID="lblpagado" runat="server" Text='<%# Eval("Pagado","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Total">
<ItemTemplate>
<asp:Label ID="lbltotal" runat="server" Text='<%# Eval("Total","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Saldo">
<ItemTemplate>
<asp:Label ID="lblsaldo" runat="server" Text='<%# Eval("Saldo","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div class="modal-footer">
<asp:LinkButton ID="LnkAddMovto" OnClick="LnkAddMovto_Click" ValidationGroup="GrpGuardarMovyoPerma" CssClass="btn btn-primary" runat="server">Guardar</asp:LinkButton>
<asp:LinkButton ID="LnkUpMovto" OnClick="LnkUpMovto_Click" ValidationGroup="GrpGuardarMovyoPerma" CssClass="btn btn-success" runat="server">Actualizar</asp:LinkButton>
<asp:TemplateField HeaderText="Fecha">
<ItemTemplate>
<asp:Label ID="lblfecha" runat="server" Text='<%# Eval("Fecha")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="No Pagos">
<ItemTemplate>
<asp:Label ID="lblnoPagos" runat="server" Text='<%# Eval("NoPagos")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Importe Pago">
<ItemTemplate>
<asp:Label ID="lblimportePagos" runat="server" Text='<%# Eval("ImportePagos","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Pagado">
<ItemTemplate>
<asp:Label ID="lblpagado" runat="server" Text='<%# Eval("Pagado","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Total">
<ItemTemplate>
<asp:Label ID="lbltotal" runat="server" Text='<%# Eval("Total","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Saldo">
<ItemTemplate>
<asp:Label ID="lblsaldo" runat="server" Text='<%# Eval("Saldo","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div class="modal-footer">
<asp:LinkButton ID="LnkAddMovto" OnClick="LnkAddMovto_Click" ValidationGroup="GrpGuardarMovyoPerma" CssClass="btn btn-primary" runat="server">Guardar</asp:LinkButton>
<asp:LinkButton ID="LnkUpMovto" OnClick="LnkUpMovto_Click" ValidationGroup="GrpGuardarMovyoPerma" CssClass="btn btn-success" runat="server">Actualizar</asp:LinkButton>
<button type="button" class="btn btn-danger" onclick="$('#ModalMovtoPermanente').modal('hide');return;">Cancelar</button>
<button type="button" class="btn btn-danger" onclick="$('#ModalMovtoPermanente').modal('hide');return;">Cancelar</button>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<asp:TextBox ID="TxtCvePeriodo" CssClass="TxtCvePeriodo hidden" runat="server"></asp:TextBox>
<asp:TextBox ID="TxtCvePersonal" CssClass="TxtCvePersonal hidden" runat="server"></asp:TextBox>
<asp:Button ID="BtnGeneratepdf" CssClass="BtnGeneratepdf hidden" OnClick="BtnGeneratepdf_Click" UseSubmitBehavior="false" runat="server" Text="Button" />

View File

@@ -40,6 +40,16 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
set { ViewState["DtNomOcultarMostrar"] = value; }
}
private DataTable DtNomPersonalizarxls
{
get
{
if (ViewState["DtNomPersonalizarxls"] == null) { return null; }
else { return (DataTable)ViewState["DtNomPersonalizarxls"]; }
}
set { ViewState["DtNomPersonalizarxls"] = value; }
}
private DateTime FechaInicioPeriodo
{
get
@@ -349,6 +359,11 @@ public partial class Nomina_Nomina2 : ClsPaginas
DtNomOcultarMostrar.Columns.Add("TipoDB");
DtNomOcultarMostrar.Columns.Add("ColumnaDB");
DtNomPersonalizarxls = new DataTable();
DtNomPersonalizarxls.Columns.Add("Columna");
DtNomPersonalizarxls.Columns.Add("Tipo");
DtNomPersonalizarxls.Columns.Add("TipoDB");
DtNomPersonalizarxls.Columns.Add("ColumnaDB");
}
TxtEjercicioFiltroVacaciones.Text = "2023";
@@ -677,6 +692,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
LnkAsistenciaIncidencias.Visible = true;
LnkFormatoTabular.Visible = true;
LnkPersonalizarNomina.Visible = true;
LnkFormatoFiscal.Visible = (UsuarioActual.CveEmpresa == 141 || UsuarioActual.CveRol == 1);
HypPDFSTimbrados.Visible = true;
if (objnom.GetNominaEmpleado(FiltCveProyecto, FiltCveSubProyecto, FiltCveTurno, FiltCvePeriodo, CveEmpresa, FiltAgrupador,
@@ -4812,6 +4828,418 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
#endregion
protected void LnkPersonalizarNomina_Click(object sender, EventArgs e)
{
DtNomPersonalizarxls.Rows.Clear();
DataTable dtColumnas = GetTablaColumnasConceptos();
DdlMOPXColumna.DataSource = dtColumnas;
DdlMOPXColumna.DataBind();
{
addcoltopersonalizar("Codigo", "0", "Codigo", "");
addcoltopersonalizar("Nombre", "0", "Empleado", "");
addcoltopersonalizar("Sueldo Mensual", "0", "", "");
addcoltopersonalizar("Sueldo diario", "0", "", "");
addcoltopersonalizar("Dias Pen Pago", "0", "", "");
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo ='P' AND EsPadre = 1 AND SoloVisible =0").Rows)
{
if (!(dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0))
{
addcoltopersonalizar(row["Concepto"].ToString(), "1", string.Format("[V_{0}]", row["CveConcepto"].ToString()), row["Codigo"].ToString());
}
}
//addcoltopersonalizar("Percepciones", "1", "Percepciones", "");
addcoltopersonalizar("Incapacidad Permisos Faltas", "0", "", "");
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 AND SoloVisible =0").Rows)//
{
if (!(dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0))
{
addcoltopersonalizar(row["Concepto"].ToString(), "1", string.Format("[V_{0}]", row["CveConcepto"].ToString()), row["Codigo"].ToString());
}
}
//addcoltopersonalizar("Deducciones", "1", "Deducciones", "");
addcoltopersonalizar("Neto a Pagar", "1", "Total", "");
//foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'O' AND EsPadre = 1 AND SoloVisible =0").Rows)//SoloVisible =0
//{
// if (!(dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0))
// {
// addcoltopersonalizar(row["Concepto"].ToString(), "1", string.Format("[V_{0}]", row["CveConcepto"].ToString()), row["Codigo"].ToString());
// }
//}
//addcoltopersonalizar("Obligaciones", "1", "Obligaciones", "");
}
GvPersonalizarExcel.DataSource = DtNomPersonalizarxls;
GvPersonalizarExcel.DataBind();
UpPersonalizarxls.Update();
RegistraScript(string.Format("$('#divPersonalizarNomina').modal();"));
//
}
public void addcoltopersonalizar(string Columna, string Tipo, string ColumnaDB, string TipoDB)
{
DataRow drorden = DtNomPersonalizarxls.NewRow();
drorden["Columna"] = Columna;
drorden["Tipo"] = Tipo;
drorden["ColumnaDB"] = ColumnaDB;
drorden["TipoDB"] = TipoDB;
DtNomPersonalizarxls.Rows.Add(drorden);
}
protected void LnkMoPXAgregar_Click(object sender, EventArgs e)
{
{
DataRow drorden = DtNomPersonalizarxls.NewRow();
drorden["Columna"] = DdlMOPXColumna.SelectedItem.Text;
drorden["Tipo"] = "0";
drorden["ColumnaDB"] = DdlMOPXColumna.SelectedItem.Value;
//drorden["TipoDB"] = DdlMOTipo.SelectedItem.Value;
DtNomPersonalizarxls.Rows.Add(drorden);
}
GvPersonalizarExcel.DataSource = DtNomPersonalizarxls;
GvPersonalizarExcel.DataBind();
UpPersonalizarxls.Update();
}
protected void LnkEliminarPersonalizar_Click(object sender, EventArgs e)
{
GridViewRow gvRow = (GridViewRow)((LinkButton)sender).NamingContainer;
string Columna = gvRow.DataKey("Columna");
string ColumnaDB = gvRow.DataKey("ColumnaDB");
string TipoDB = gvRow.DataKey("TipoDB");
DataRow dr = null;
foreach (DataRow item in DtNomPersonalizarxls.Rows)
{
if (item["ColumnaDB"].ToString() == ColumnaDB && item["Columna"].ToString() == Columna)
{
dr = item;
}
}
if (dr != null)
{
dr.Delete();
DtNomPersonalizarxls.AcceptChanges();
}
GvPersonalizarExcel.DataSource = DtNomPersonalizarxls;
GvPersonalizarExcel.DataBind();
UpPersonalizarxls.Update();
}
protected void LnkFormatoPersonalizado_Click(object sender, EventArgs e)
{
try
{
ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook();
var libro = wb.AddWorksheet("Nomina");
int column = 1;
int filainicio = 3;
libro.Cell(filainicio + 1, column).Value = " ";
libro.Cell(filainicio + 2, column).Value = "Codigo";
libro.Cell(filainicio + 3, column).Value = " ";
column++;
libro.Cell(filainicio + 1, column).Value = " ";
libro.Cell(filainicio + 2, column).Value = "Empleado";
libro.Cell(filainicio + 3, column).Value = " ";
libro.Column(column).Width = 35;
libro.Cell(1, 1).Value = "Empresa";
libro.Range(1, 2, 1, 4).Merge().Value = UsuarioActual.Empresa.Empresa;
libro.Cell(2, 1).Value = "período";
string periodo = DdlPeriodo.SelectedItem.Text;
periodo = periodo.Substring(0, (periodo.Length > 27 ? 27 : periodo.Length));
libro.Range(2, 2, 2, 4).Merge().Value = periodo;
int iniciotipe = column;
column++;
libro.Range(filainicio + 2, column, filainicio + 2, column).Merge().Value = "Mensual";
libro.Range(filainicio + 3, column, filainicio + 3, column).Merge().Value = "Sueldo";
libro.Column(column).Width = 15;
column++;
libro.Range(filainicio + 2, column, filainicio + 2, column).Merge().Value = "Sueldo";
libro.Range(filainicio + 3, column, filainicio + 3, column).Merge().Value = "diario";
libro.Column(column).Width = 15;
column++;
libro.Range(filainicio + 2, column, filainicio + 2, column).Merge().Value = "dias Pen";
libro.Range(filainicio + 3, column, filainicio + 3, column).Merge().Value = "Pago";
libro.Column(column).Width = 15;
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo ='P' AND EsPadre = 1 AND SoloVisible =0").Rows)
{
column++;
libro.Cell(filainicio + 2, column).Value = row["Concepto"].ToString();
libro.Cell(filainicio + 3, column).Value = row["Codigo"].ToString();
libro.Column(column).Width = 15;
if ((dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0))
{
libro.Column(column).Hide();
}
}
//column++;
//libro.Range(filainicio + 2, column, filainicio + 3, column).Merge().Value = "Percepciones";
//libro.Column(column).Width = 15;
//if (iniciotipe < column)
//{
// libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center;
// libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Merge().Value = "Percepciones";
//}
iniciotipe = column;
column++;
libro.Range(filainicio + 2, column, filainicio + 2, column).Merge().Value = "Incapacidad";
libro.Range(filainicio + 3, column, filainicio + 3, column).Merge().Value = "Perm. Faltas";
libro.Column(column).Width = 15;
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 AND SoloVisible =0").Rows)
{
column++;
libro.Cell(filainicio + 2, column).Value = row["Concepto"].ToString();
libro.Cell(filainicio + 3, column).Value = row["Codigo"].ToString();
libro.Column(column).Width = 15;
if ((dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0))
{
libro.Column(column).Hide();
}
}
//column++;
//libro.Range(filainicio + 2, column, filainicio + 3, column).Merge().Value = "Deducciones";
//libro.Column(column).Width = 15;
//if (iniciotipe < column)
//{
// libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center;
// libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Merge().Value = "Deducciones";
//}
//column++;
//libro.Cell(filainicio + 1, column).Value = " ";
//libro.Range(filainicio + 2, column, filainicio + 3, column).Merge().Value = "Despensa";
//libro.Column(column).Width = 15;
column++;
libro.Cell(filainicio + 1, column).Value = " ";
libro.Range(filainicio + 2, column, filainicio + 3, column).Merge().Value = "Total";
libro.Column(column).Width = 15;
iniciotipe = column;
//if (iniciotipe < column)
//{
// libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center;
// libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Merge().Value = "Obligaciones";
//}
//libro.Row(1).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
//libro.Row(2).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
//libro.Row(3).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
//libro.Row(1).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(177, 160, 199));
//libro.Row(2).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
//libro.Row(3).Cell(1).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
//libro.Row(3).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
int maxnocolumn = column;
int Fila = filainicio + 3;
int cveSupProyecto = -5;
string subproyecto = "";
string oldsubproyecto = "";
int oldcveSupProyecto = -5;
bool newsubproyecto = false;
bool newsubproyectoTitulo = false;
List<int> filasborrar= new List<int>();
DataTable dtsr = dtempleados.FiltraParametros("", "CveSubProyecto");
dtsr.Rows.Add(dtsr.NewRow());
foreach (DataRow erow in dtsr.Rows)
{
Fila++;
newsubproyecto = false; newsubproyectoTitulo = false;
if (cveSupProyecto != erow["CveSubProyecto"].ToString().ToEntero())
{
if (oldcveSupProyecto != -5) { Fila += 2; newsubproyecto = true; }
oldcveSupProyecto = cveSupProyecto;
cveSupProyecto = erow["CveSubProyecto"].ToString().ToEntero();
subproyecto = erow["SubProyecto"].ToString();
if (cveSupProyecto != -5 && oldcveSupProyecto != -5) { Fila++; newsubproyectoTitulo = true; }
}
column = 1;
libro.Cell(Fila, column).Value = string.Format("'{0}", erow["Codigo"]);
column++;
if (newsubproyectoTitulo)
{
filasborrar.Add(Fila - 1);
libro.Cell(Fila - 1, column).Value = subproyecto;
libro.Range(Fila - 1, 1, Fila - 1, maxnocolumn).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(155, 194, 230));
}
if (newsubproyecto)
{
libro.Cell(Fila - 3, column).Value = string.Format("Total {0}", oldsubproyecto);
libro.Range(Fila - 3, 1, Fila - 3, maxnocolumn).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(155, 194, 230));
}
oldsubproyecto = subproyecto;
libro.Cell(Fila, column).Value = erow["Nombre"];
column++;
libro.Cell(Fila, column).Value = "";
column++;
libro.Cell(Fila, column).Value = erow["SalarioDiario"];
column++;
libro.Cell(Fila, column).Value = "";
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'P' AND EsPadre = 1 AND SoloVisible =0").Rows)
{
column++;
string Concepto = string.Format("V_{0}", row["CveConcepto"]);
libro.Cell(Fila, column).Value = erow[Concepto];
if (newsubproyecto)
{
libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
}
}
//column++;
//libro.Cell(Fila, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166));
//libro.Cell(Fila, column).Value = erow["SumaPercepciones"];
//if (newsubproyecto)
//{
// libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaPercepciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
//}
column++;
libro.Cell(Fila, column).Value = "";
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 AND SoloVisible =0").Rows)
{
column++;
string Concepto = string.Format("V_{0}", row["CveConcepto"]);
libro.Cell(Fila, column).Value = erow[Concepto];
if (newsubproyecto)
{
libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
}
}
//column++;
//libro.Cell(Fila, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166));
//libro.Cell(Fila, column).Value = erow["SumaDeducciones"];
//if (newsubproyecto)
//{
// libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaDeducciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
//}
//column++;
//libro.Cell(Fila, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166));
//libro.Cell(Fila, column).Value = erow["SumaEspecie"];
//if (newsubproyecto)
//{
// libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaEspecie", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
//}
column++;
libro.Cell(Fila, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166));
libro.Cell(Fila, column).Value = erow["Total"];
if (newsubproyecto)
{
libro.Cell(Fila - 3, column).Value = dtempleados.SUM("Total", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
}
//foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'O' AND EsPadre = 1 ").Rows)
//{
// column++;
// string Concepto = string.Format("V_{0}", row["CveConcepto"]);
// libro.Cell(Fila, column).Value = erow[Concepto];
// if (newsubproyecto)
// {
// libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
// }
//}
//column++;
//libro.Cell(Fila, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166));
//libro.Cell(Fila, column).Value = erow["SumaObligaciones"];
//if (newsubproyecto)
//{
// libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaObligaciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
//}
}
libro.Range(filainicio + 1, 1, filainicio + 4, maxnocolumn).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Range(filainicio + 1, 1, filainicio + 4, maxnocolumn).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
{
var columnsToDelete = new List<int>();
foreach (var columnx in libro.Columns())
{
if (columnx.IsHidden)
{
columnsToDelete.Add(columnx.ColumnNumber());
}
}
// Eliminar columnas de mayor a menor para evitar conflictos de índice
columnsToDelete.Sort();
columnsToDelete.Reverse();
foreach (var columnNumber in columnsToDelete)
{
libro.Column(columnNumber).Delete();
}
}
filasborrar.Reverse();
foreach (int rownumber in filasborrar)
{
libro.Rows(rownumber, rownumber).Delete();
}
System.IO.Stream fs = new System.IO.MemoryStream();
wb.SaveAs(fs);
fs.Position = 0;
System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
using (System.IO.Stream input = fs)
{
input.CopyTo(memoryStream);
}
memoryStream.Position = 0;
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", string.Format("attachment;filename={0} {1}.xlsx", "Nomina tabular", periodo));
Response.BinaryWrite(memoryStream.ToArray());
Response.End();
}
catch (Exception ex)
{
Alert("Ocurrio un error al generar el Formato de nominas" + ex.ToString());
}
}
protected void LnkFormatoTabular_Click(object sender, EventArgs e)
{
try