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 ' End Try
' Return retorno ' Return retorno
'End Function '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 Dim retorno As Boolean = False
DataAdapter("PA_Nom_Dispersionnomina", CommandType.StoredProcedure) DataAdapter("PA_Nom_Dispersionnomina", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters With SqlAdapter.SelectCommand.Parameters

View File

@@ -149,6 +149,7 @@
padding-top: 2px; padding-top: 2px;
padding-bottom: 2px; padding-bottom: 2px;
} }
#ModalConceptos table.table > tbody > tr > td, #ModalConceptos table.table > tbody > tr > td,
#ModalConceptos table.table > tbody > tr > th, #ModalConceptos table.table > tbody > tr > th,
#ModalConceptos table.table > thead > tr > td, #ModalConceptos table.table > thead > tr > td,
@@ -288,6 +289,9 @@
<li> <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> <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>
<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> <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> <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> </li>
@@ -305,7 +309,8 @@
</li> </li>
<li> <li>
<asp:LinkButton ID="LnkProcesarModal" OnClick="LnkProcesarModal_Click" runat="server"><i class="fa fa-check"></i> Procesar archivo SUA EBA PDF</asp:LinkButton> <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> <li>
<asp:LinkButton ID="LnkOpenCancelarTimbre" OnClick="LnkOpenCancelarTimbre_Click" runat="server"><i class="fa fa-download"></i> CancelarTimbre</asp:LinkButton> <asp:LinkButton ID="LnkOpenCancelarTimbre" OnClick="LnkOpenCancelarTimbre_Click" runat="server"><i class="fa fa-download"></i> CancelarTimbre</asp:LinkButton>
</li>--%> </li>--%>
@@ -4957,12 +4962,12 @@
<a href="javascript:;" class="collapse" data-original-title="" title=""></a> <a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div> </div>
</div> </div>
<div class="portlet-body" > <div class="portlet-body">
<div class="row"> <div class="row">
<div class="col-md-6" runat="server" id="div1"> <div class="col-md-6" runat="server" id="div1">
<div class="form-group form-md-line-input input-iconright"> <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"> DataTextField="Columna" DataValueField="ColumnaDB" ValidationGroup="GrpGuardarOrder">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem> <asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
@@ -4972,8 +4977,8 @@
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group form-md-line-input input-iconright"> <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: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="Ascendente" Value="ASC" Selected="True"></asp:ListItem>
<asp:ListItem Text="Descendente" Value="DESC"></asp:ListItem> <asp:ListItem Text="Descendente" Value="DESC"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
<asp:Label ID="Label8" Text="Tipo:" AssociatedControlID="DDlOrdenTipo" runat="server"></asp:Label> <asp:Label ID="Label8" Text="Tipo:" AssociatedControlID="DDlOrdenTipo" runat="server"></asp:Label>
@@ -5041,12 +5046,12 @@
<a href="javascript:;" class="collapse" data-original-title="" title=""></a> <a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div> </div>
</div> </div>
<div class="portlet-body" > <div class="portlet-body">
<div class="row"> <div class="row">
<div class="col-md-6" runat="server" id="div2"> <div class="col-md-6" runat="server" id="div2">
<div class="form-group form-md-line-input input-iconright"> <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"> DataTextField="Columna" DataValueField="ColumnaDB" ValidationGroup="GrpGuardarOrder">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem> <asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
@@ -5056,8 +5061,8 @@
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group form-md-line-input input-iconright"> <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: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="Mostrar" Value="1" Selected="True"></asp:ListItem>
<asp:ListItem Text="Ocultar" Value="0"></asp:ListItem> <asp:ListItem Text="Ocultar" Value="0"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
<asp:Label ID="Label11" Text="Tipo:" AssociatedControlID="DdlMOTipo" runat="server"></asp:Label> <asp:Label ID="Label11" Text="Tipo:" AssociatedControlID="DdlMOTipo" runat="server"></asp:Label>
@@ -5096,7 +5101,93 @@
</ContentTemplate> </ContentTemplate>
</asp:UpdatePanel> </asp:UpdatePanel>
</div> </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">
<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 class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body">
<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 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"> <asp:UpdatePanel ID="UpMovtosPermanentesModal" UpdateMode="Conditional" class="modal-dialog" runat="server">
<ContentTemplate> <ContentTemplate>
@@ -5219,8 +5310,8 @@
</div> </div>
</asp:Panel> </asp:Panel>
<asp:GridView ID="GVMovtoPermanenteSaldos" runat="server" GridLines="None" CssClass ="table table-hover table-striped ScrollAD Widthall" AutoGenerateColumns="False" <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"> DataKeyNames="CveTipo,Nombre,Concepto,CveMovtoPermanente,FechaFin,CvePeriodo,NoPagos,ImportePagos,Pagado,Total,Saldo,Fecha">
<Columns> <Columns>
<asp:TemplateField HeaderText="Nombre"> <asp:TemplateField HeaderText="Nombre">
<ItemTemplate> <ItemTemplate>

View File

@@ -40,6 +40,16 @@ public partial class Nomina_Nomina2 : ClsPaginas
} }
set { ViewState["DtNomOcultarMostrar"] = value; } 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 private DateTime FechaInicioPeriodo
{ {
get get
@@ -349,6 +359,11 @@ public partial class Nomina_Nomina2 : ClsPaginas
DtNomOcultarMostrar.Columns.Add("TipoDB"); DtNomOcultarMostrar.Columns.Add("TipoDB");
DtNomOcultarMostrar.Columns.Add("ColumnaDB"); 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"; TxtEjercicioFiltroVacaciones.Text = "2023";
@@ -677,6 +692,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
LnkAsistenciaIncidencias.Visible = true; LnkAsistenciaIncidencias.Visible = true;
LnkFormatoTabular.Visible = true; LnkFormatoTabular.Visible = true;
LnkPersonalizarNomina.Visible = true;
LnkFormatoFiscal.Visible = (UsuarioActual.CveEmpresa == 141 || UsuarioActual.CveRol == 1); LnkFormatoFiscal.Visible = (UsuarioActual.CveEmpresa == 141 || UsuarioActual.CveRol == 1);
HypPDFSTimbrados.Visible = true; HypPDFSTimbrados.Visible = true;
if (objnom.GetNominaEmpleado(FiltCveProyecto, FiltCveSubProyecto, FiltCveTurno, FiltCvePeriodo, CveEmpresa, FiltAgrupador, if (objnom.GetNominaEmpleado(FiltCveProyecto, FiltCveSubProyecto, FiltCveTurno, FiltCvePeriodo, CveEmpresa, FiltAgrupador,
@@ -4812,6 +4828,418 @@ public partial class Nomina_Nomina2 : ClsPaginas
} }
#endregion #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) protected void LnkFormatoTabular_Click(object sender, EventArgs e)
{ {
try try