using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Extensiones; public partial class Nomina_ReportedeAcumulados : ClsPaginas { #region Propiedades private int FilaConceptos { get { return 5; } } private DataTable dtConceptos { get { if (ViewState["dtConceptos"] == null) { return null; } else { return (DataTable)ViewState["dtConceptos"]; } } set { ViewState["dtConceptos"] = value; } } private DataTable dtempleados { get { if (ViewState["dtempleados"] == null) { return null; } else { return (DataTable)ViewState["dtempleados"]; } } set { ViewState["dtempleados"] = value; } } protected int FiltCveProyecto { get { if (ViewState["FiltCveProyecto"] == null) { return 0; } else { return ViewState["FiltCveProyecto"].ToString().ToEntero(); } } set { ViewState["FiltCveProyecto"] = value; } } protected int FiltCveSubProyecto { get { if (ViewState["FiltCveSubProyecto"] == null) { return 0; } else { return ViewState["FiltCveSubProyecto"].ToString().ToEntero(); } } set { ViewState["FiltCveSubProyecto"] = value; } } protected int FiltCveTurno { get { if (ViewState["FiltCveTurno"] == null) { return 0; } else { return ViewState["FiltCveTurno"].ToString().ToEntero(); } } set { ViewState["FiltCveTurno"] = value; } } protected int FiltCvePeriodoI { get { if (ViewState["FiltCvePeriodoI"] == null) { return 0; } else { return ViewState["FiltCvePeriodoI"].ToString().ToEntero(); } } set { ViewState["FiltCvePeriodoI"] = value; } } protected int FiltCvePeriodoF { get { if (ViewState["FiltCvePeriodoF"] == null) { return 0; } else { return ViewState["FiltCvePeriodoF"].ToString().ToEntero(); } } set { ViewState["FiltCvePeriodoF"] = value; } } #endregion protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { cargaEjercicios(); CargaTiposPeriodo(); CargarCentrosDeCosto(DdlProyecto,null,LblProyecto,LblSubProyeccto,"");//DdlSubProyecto divddlproyeto.Visible = DdlProyecto.Visible; //CargarCentrosDeCosto(DdlProyecto As DropDownList, DdlSubProyecto As DropDownList, LthProyectoP As Label, LblSubProyecto As Label, Optional AplicaTodos As String = "Todos", Optional DdlSubProyectoMultiple As ListBox = Nothing) } } protected void LnkConsultar_Click(object sender, EventArgs e) { FiltCveProyecto = DdlProyecto.SelectedValue.ToEntero(); FiltCveSubProyecto = -1; FiltCveTurno = DdlTurno.SelectedValue.ToEntero(); FiltCvePeriodoI = TxtRpdFechaInicio.Text.ToDateTime().ToString("yyyyMMdd").ToEntero(); FiltCvePeriodoF = TxtRpdFechaFin.Text.ToDateTime().ToString("yyyyMMdd").ToEntero(); cargaDatos(); } private void cargaEjercicios() { int EjercicioActual = UsuarioActual.Empresa.EjercicioActual; if (EjercicioActual == 0) { EjercicioActual = DateTime.Now.Year; } DataTable dtejercicio = null; using (ClsNominas objnom = new ClsNominas()) { if (objnom.GetEjercicios(UsuarioActual.CveEmpresa)) { dtejercicio = objnom.DtResultados; } } DdlEjercicios.DataSource = dtejercicio; DdlEjercicios.DataBind(); ListItem litem = null; if ((dtejercicio != null) && dtejercicio.Rows.Count > 0) { if (dtejercicio.COUNT("Ejercicio", string.Format("Ejercicio={0}", EjercicioActual)) == 0) { litem = new ListItem(EjercicioActual.ToString(), EjercicioActual.ToString()); DdlEjercicios.Items.Insert(0, litem); } if (dtejercicio.COUNT("Ejercicio", string.Format("Ejercicio={0}", (EjercicioActual - 1))) == 0) { litem = new ListItem((EjercicioActual - 1).ToString(), (EjercicioActual - 1).ToString()); DdlEjercicios.Items.Insert(1, litem); } } else { litem = new ListItem(EjercicioActual.ToString(), EjercicioActual.ToString()); DdlEjercicios.Items.Insert(0, litem); litem = new ListItem((EjercicioActual - 1).ToString(), (EjercicioActual - 1).ToString()); DdlEjercicios.Items.Insert(0, litem); } if (DdlEjercicios.Items.Count > 0) { DdlEjercicios.SelectedIndex = 0; } DdlEjercicios.SelectedValueExist(DateTime.Now.Year.ToString()); } private void CargaTiposPeriodo() { DdlTipoPeriodo.DataSource = GlobalDTTipoPeriodo.FiltraParametros("Estatus = 'Activo'"); DdlTipoPeriodo.DataBind(); DdlTipoPeriodo.Items.Insert(0, new ListItem("Todos", "-1")); if (DdlTipoPeriodo.Items.Count > 0) { DdlTipoPeriodo.SelectedIndex = 0; } } public void cargaDatos() { int CveEmpresa = UsuarioActual.CveEmpresa; int Ejercicio = DdlEjercicios.SelectedValue.ToEntero(); bool continuar = false; dtempleados = null; dtConceptos = null; DataTable dtPeriodo = new DataTable(); DataTable dtasistencia = new DataTable(); using (ClsNominas objnom = new ClsNominas()) { if (objnom.GetNominaAcumulado(Ejercicio, FiltCveProyecto, FiltCveSubProyecto, FiltCveTurno, FiltCvePeriodoI, FiltCvePeriodoF, CveEmpresa, DdlRegimenContratacion.SelectedValue.ToEntero()) && objnom.DTSetResultados.Tables.Count > 1) { dtempleados = objnom.DTSetResultados.Tables[1]; dtConceptos = objnom.DTSetResultados.Tables[0]; continuar = true; } } #region CargaGrid if (continuar) { //string ctipo = "P"; int CurrentColumn = 2; BoundField bf; foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('P') AND EsPadre = 1 ").Rows) { int CveConcepto = row["CveConcepto"].ToString().ToEntero(); int SoloVisible = row["SoloVisible"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); GvNominas.Columns[CurrentColumn].ItemStyle.BackColor = System.Drawing.Color.Transparent; GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " "; if (SoloVisible == 1) { GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = "isOnlyVisible "; } GvNominas.Columns[CurrentColumn].Visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) != 0); bf = (BoundField)GvNominas.Columns[CurrentColumn]; bf.DataField = string.Format("V_{0}", CveConcepto); bf.HeaderText = Concepto; if (GvNominas.Columns[CurrentColumn].Visible) { CurrentColumn++; } } if (true) { BoundField field = (BoundField)GvNominas.Columns[CurrentColumn]; field.HeaderText = "Percepciones"; field.DataField = "SumaPercepciones"; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; GvNominas.Columns[CurrentColumn].Visible = true; CurrentColumn++; } foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('D') AND EsPadre = 1 ").Rows) { int CveConcepto = row["CveConcepto"].ToString().ToEntero(); int SoloVisible = row["SoloVisible"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); GvNominas.Columns[CurrentColumn].ItemStyle.BackColor = System.Drawing.Color.Transparent; GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " "; if (SoloVisible == 1) { GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = "isOnlyVisible "; } GvNominas.Columns[CurrentColumn].Visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) != 0); bf = (BoundField)GvNominas.Columns[CurrentColumn]; bf.DataField = string.Format("V_{0}", CveConcepto); bf.HeaderText = Concepto; if (GvNominas.Columns[CurrentColumn].Visible) { CurrentColumn++; } } if (true) { BoundField field = (BoundField)GvNominas.Columns[CurrentColumn]; field.HeaderText = "Deducciones"; field.DataField = "SumaDeducciones"; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].Visible = true; CurrentColumn++; field = (BoundField)GvNominas.Columns[CurrentColumn]; field.HeaderText = "Total"; field.DataField = "Total"; field.ItemStyle.BackColor = System.Drawing.Color.DarkGray; field.ItemStyle.CssClass = "TotalWhite"; field.HeaderStyle.CssClass = "TotalWhite"; GvNominas.Columns[CurrentColumn].Visible = true; CurrentColumn++; } foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('O') AND EsPadre = 1 ").Rows) { int CveConcepto = row["CveConcepto"].ToString().ToEntero(); int SoloVisible = row["SoloVisible"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); GvNominas.Columns[CurrentColumn].ItemStyle.BackColor = System.Drawing.Color.Transparent; GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " "; if (SoloVisible == 1) { GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = "isOnlyVisible "; } GvNominas.Columns[CurrentColumn].Visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) != 0); bf = (BoundField)GvNominas.Columns[CurrentColumn]; bf.DataField = string.Format("V_{0}", CveConcepto); bf.HeaderText = Concepto; if (GvNominas.Columns[CurrentColumn].Visible) { CurrentColumn++; } } if (true) { BoundField field = (BoundField)GvNominas.Columns[CurrentColumn]; field.HeaderText = "Obligaciones"; field.DataField = "SumaObligaciones"; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].Visible = true; CurrentColumn++; } for (int i = CurrentColumn; i < 102; i++) { bf = (BoundField)GvNominas.Columns[i]; bf.DataField = ""; bf.HeaderText = ""; GvNominas.Columns[i].ItemStyle.BackColor = System.Drawing.Color.Transparent; GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " "; GvNominas.Columns[i].Visible = false; } //bool tr = false; setGVNominas(); } else { GvNominas.DataSource = null; GvNominas.DataBind(); } #endregion UpDatos.Update(); } private void setGVNominas() { string filtrogrupo = ""; DataTable dt = dtempleados.Copy(); if (DdlAgrupadorB.SelectedValue == "1") { foreach (DataRow drow in dtempleados.FiltraParametros("CvePersonal > 0", "", new string[] { "CveSubProyecto", "SubProyecto" }).Rows) { DataRow dr = dt.NewRow(); filtrogrupo = (drow["CveSubProyecto"] == DBNull.Value ? "CveSubProyecto IS NULL AND CvePersonal>0 " : string.Format("CveSubProyecto = {0} AND CvePersonal>0", drow["CveSubProyecto"])); foreach (DataRow row in dtConceptos.FiltraParametros("EsPadre = 1 ").Rows) { int CveConcepto = row["CveConcepto"].ToString().ToEntero(); dr[string.Format("V_{0}", CveConcepto)] = dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), filtrogrupo); } dr["CveSubProyecto"] = drow["CveSubProyecto"]; dr["SubProyecto"] = drow["SubProyecto"]; dr["SumaPercepciones"] = dtempleados.SUM("SumaPercepciones", filtrogrupo); dr["SumaDeducciones"] = dtempleados.SUM("SumaDeducciones", filtrogrupo); dr["Total"] = dtempleados.SUM("Total", filtrogrupo); dr["SumaObligaciones"] = dtempleados.SUM("SumaObligaciones", filtrogrupo); dt.Rows.Add(dr); } dt.AcceptChanges(); dt = dt.FiltraParametros("", "CveSubProyecto,SubProyecto,Codigo,Nombre"); } if (DdlAgrupadorB.SelectedValue == "2") { foreach (DataRow drow in dtempleados.FiltraParametros("CvePersonal > 0", "", new string[] { "CveDepartamento", "Departamento" }).Rows) { DataRow dr = dt.NewRow(); filtrogrupo = (drow["CveDepartamento"] == DBNull.Value ? "CveDepartamento IS NULL AND CvePersonal>0 " : string.Format("CveDepartamento = {0} AND CvePersonal>0", drow["CveDepartamento"])); foreach (DataRow row in dtConceptos.FiltraParametros("EsPadre = 1 ").Rows) { int CveConcepto = row["CveConcepto"].ToString().ToEntero(); dr[string.Format("V_{0}", CveConcepto)] = dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), filtrogrupo); } dr["CveDepartamento"] = drow["CveDepartamento"]; dr["Departamento"] = drow["Departamento"]; dr["SumaPercepciones"] = dtempleados.SUM("SumaPercepciones", filtrogrupo); dr["SumaDeducciones"] = dtempleados.SUM("SumaDeducciones", filtrogrupo); dr["Total"] = dtempleados.SUM("Total", filtrogrupo); dr["SumaObligaciones"] = dtempleados.SUM("SumaObligaciones", filtrogrupo); dt.Rows.Add(dr); } dt.AcceptChanges(); dt = dt.FiltraParametros("", "CveDepartamento,Departamento,Codigo,Nombre"); } GvNominas.DataSource = dt; GvNominas.DataBind(); } protected void LnkFormatoTabular_Click(object sender, EventArgs e) { FiltCveProyecto = DdlProyecto.SelectedValue.ToEntero(); FiltCveSubProyecto = -1; FiltCveTurno = DdlTurno.SelectedValue.ToEntero(); FiltCvePeriodoI = TxtRpdFechaInicio.Text.ToDateTime().ToString("yyyyMMdd").ToEntero(); FiltCvePeriodoF = TxtRpdFechaFin.Text.ToDateTime().ToString("yyyyMMdd").ToEntero(); cargaDatos(); if (dtempleados.Rows.Count > 0) { try { ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook(); var libro = wb.AddWorksheet("Nomina"); int column = 1; libro.Cell(1, column).Value = " "; libro.Cell(2, column).Value = "Codigo"; libro.Cell(3, column).Value = " "; column++; libro.Cell(1, column).Value = " "; libro.Cell(2, column).Value = "Empleado"; libro.Cell(3, column).Value = " "; libro.Column(column).Width = 35; int iniciotipe = column; foreach (DataRow row in dtConceptos.FiltraParametros("Tipo ='P' AND EsPadre = 1 ").Rows) { column++; libro.Cell(2, column).Value = row["Concepto"].ToString(); libro.Cell(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(2, column, 3, column).Merge().Value = "Percepciones"; libro.Column(column).Width = 15; if (iniciotipe < column) { libro.Range(1, iniciotipe + 1, 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; libro.Range(1, iniciotipe + 1, 1, column).Merge().Value = "Percepciones"; } iniciotipe = column; foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 ").Rows) { column++; libro.Cell(2, column).Value = row["Concepto"].ToString(); libro.Cell(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(2, column, 3, column).Merge().Value = "Deducciones"; libro.Column(column).Width = 15; if (iniciotipe < column) { libro.Range(1, iniciotipe + 1, 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; libro.Range(1, iniciotipe + 1, 1, column).Merge().Value = "Deducciones"; } column++; libro.Cell(1, column).Value = " "; libro.Range(2, column, 3, column).Merge().Value = "Total"; libro.Column(column).Width = 15; iniciotipe = column; foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'O' AND EsPadre = 1 ").Rows) { column++; libro.Cell(2, column).Value = row["Concepto"].ToString(); libro.Cell(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(2, column, 3, column).Merge().Value = "Obligaciones"; libro.Column(column).Width = 15; if (iniciotipe < column) { libro.Range(1, iniciotipe + 1, 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; libro.Range(1, iniciotipe + 1, 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 Fila = 3; int cveSupProyecto = -5; string subproyecto = ""; string subproyectoold = ""; int oldcveSupProyecto = -5; bool newsubproyecto = false; bool newsubproyectoTitulo = false; foreach (DataRow erow in dtempleados.FiltraParametros("", "CveSubProyecto").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 (newsubproyecto) { libro.Cell(Fila - 3, column).Value = string.Format("Total {0}", subproyectoold); } if (newsubproyectoTitulo) { libro.Cell(Fila - 1, column).Value = subproyecto; subproyectoold = subproyecto; } libro.Cell(Fila, column).Value = erow["Nombre"]; foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'P' 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).Value = erow["SumaPercepciones"]; if (newsubproyecto) { libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaPercepciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); } foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' 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).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).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).Value = erow["SumaObligaciones"]; if (newsubproyecto) { libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaObligaciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); } if (newsubproyectoTitulo) { libro.Range(Fila - 1, 1, Fila - 1, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(184, 204, 228)); } if (newsubproyecto) { libro.Range(Fila - 3, 1, Fila - 3, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(184, 204, 228)); libro.Range(Fila - 3, 3, Fila - 3, column).Style.NumberFormat.Format = "$###,###,##0.00"; libro.Range(Fila - 3, 3, Fila - 3, column).DataType = ClosedXML.Excel.XLDataType.Number; } libro.Range(Fila , 3, Fila , column).Style.NumberFormat.Format = "$###,###,##0.00"; libro.Range(Fila, 3, Fila, column).DataType = ClosedXML.Excel.XLDataType.Number; } if (true) { Fila += 4; oldcveSupProyecto = cveSupProyecto; newsubproyecto = true; column = 1; column++; libro.Cell(Fila - 3, column).Value = string.Format("Total {0}", subproyectoold); foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'P' AND EsPadre = 1 ").Rows) { string Concepto = string.Format("V_{0}", row["CveConcepto"]); column++; libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); } column++; libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaPercepciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 ").Rows) { string Concepto = string.Format("V_{0}", row["CveConcepto"]); column++; libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); } column++; libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaDeducciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); column++; 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) { string Concepto = string.Format("V_{0}", row["CveConcepto"]); column++; libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); } column++; libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaObligaciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); libro.Range(Fila - 3, 1, Fila - 3, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(184, 204, 228)); libro.Range(Fila - 3, 3, Fila - 3, column).Style.NumberFormat.Format = "$###,###,##0.00"; libro.Range(Fila - 3, 3, Fila - 3, column).DataType = ClosedXML.Excel.XLDataType.Number; libro.Range(Fila, 3, Fila, column).Style.NumberFormat.Format = "$###,###,##0.00"; libro.Range(Fila, 3, Fila, column).DataType = ClosedXML.Excel.XLDataType.Number; } libro.Range(4, 1, 4, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); libro.Row(1).InsertRowsAbove(4); libro.Range(1, 2, 1, 6).Merge().Value = UsuarioActual.Empresa.Empresa; libro.Range(2, 2, 2, 6).Merge().Value = "Reporte de acumulados nómina"; libro.Range(1, 2, 2, 6).Style.Font.Bold = true; libro.Range(1, 2, 2, 6).Style.Font.FontSize = 16; libro.Range(3, 2, 3, 6).Merge().Value = $"del {TxtRpdFechaInicio.Text.ToDateTime():dd/MM/yyyy} al {TxtRpdFechaFin.Text.ToDateTime():dd/MM/yyyy}"; libro.Range(2, 7, 2, 9).Merge().Value = $"Fecha:{DateTime.Now:dd/MM/yyyy}"; libro.Range(3, 7, 3, 9).Merge().Value = $"Hora:{DateTime.Now:HH:mm}"; 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}.xlsx", "Acumulados nomina")); Response.BinaryWrite(memoryStream.ToArray()); Response.End(); } catch (Exception ex) { Alert("Ocurrio un error al generar el Formato de nominas" + ex.ToString()); } } else { Alert("No se encontraron resultados con los filtros seleccionaddos"); } } protected void GvNominas_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { Literal LtlNombre = e.Row.FCLiteral("LtlNombre"); int cvePersonal = e.Row.DataKey("CvePersonal").ToEntero(); string Nombre = e.Row.DataKey("Nombre").ToString(); string Codigo = e.Row.DataKey("Codigo").ToString(); string Turno = e.Row.DataKey("Turno").ToString(); string Departamento = e.Row.DataKey("Departamento").ToString(); string SubProyecto = e.Row.DataKey("SubProyecto").ToString(); if (cvePersonal > 0) { LtlNombre.Text = String.Format("{2} {1}", cvePersonal, Nombre, Codigo); } else { LtlNombre.Text = "Total General"; if (Turno.Length == 0 && SubProyecto.Length > 0) { LtlNombre.Text = String.Format("Centro de costos: {0}", SubProyecto); } else if (Turno.Length > 0) { LtlNombre.Text = String.Format("Turno: {0}", SubProyecto); } else if (Departamento.Length > 0) { LtlNombre.Text = String.Format("Departamento: {0}", Departamento); } else { e.Row.CssClass = "SubTotales"; } } } } }