This commit is contained in:
730
Nomina/ReportedeAcumulados.aspx.cs
Normal file
730
Nomina/ReportedeAcumulados.aspx.cs
Normal file
@@ -0,0 +1,730 @@
|
||||
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 = TxtPeriodoInicio.Text.ToEntero();
|
||||
FiltCvePeriodoF = TxtPeriodoFin.Text.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("Seleccione", "-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 = TxtPeriodoInicio.Text.ToEntero();
|
||||
FiltCvePeriodoF = TxtPeriodoFin.Text.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++;
|
||||
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));
|
||||
|
||||
|
||||
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("<a class=\"Texto sline\" href=\"/RH/Personal.aspx?CvePersonal={0}\"><span style=\"display:inline-block;min-width:31px;\">{2}</span> <span style=\"display:inline-block;\">{1}</span></a>", cvePersonal, Nombre, Codigo);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
LtlNombre.Text = "Total General";
|
||||
if (Turno.Length == 0 && SubProyecto.Length > 0)
|
||||
{
|
||||
LtlNombre.Text = String.Format("<b>Centro de costos: {0}<b>", SubProyecto);
|
||||
}
|
||||
else if (Turno.Length > 0)
|
||||
{
|
||||
LtlNombre.Text = String.Format("<b>Turno: {0}<b>", SubProyecto);
|
||||
}
|
||||
else if (Departamento.Length > 0)
|
||||
{
|
||||
LtlNombre.Text = String.Format("<b>Departamento: {0}<b>", Departamento);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
e.Row.CssClass = "SubTotales";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user