nominas css

This commit is contained in:
caudillochon
2025-03-25 03:23:34 -07:00
parent e7c208a4f1
commit fd3e6dda26
6 changed files with 335 additions and 122 deletions

View File

@@ -15,6 +15,7 @@ using System.Text.RegularExpressions;
using iTextSharp.text.pdf.parser;
using Profact.TimbraCFDI40;
using Ionic.Zip;
using DocumentFormat.OpenXml.Drawing;
public partial class Nomina_Nomina2 : ClsPaginas
{
@@ -5098,7 +5099,27 @@ public partial class Nomina_Nomina2 : ClsPaginas
var dedcborderColor = ClosedXML.Excel.XLColor.FromArgb(99, 37, 35);
ClosedXML.Excel.XLColor colorperp = ClosedXML.Excel.XLColor.FromArgb(51, 153, 102);
ClosedXML.Excel.XLColor colorded = ClosedXML.Excel.XLColor.FromArgb(150, 54, 52);
ClosedXML.Excel.XLColor colororange = ClosedXML.Excel.XLColor.FromArgb(247, 150, 70);
ClosedXML.Excel.IXLCell celda;
DataTable dtConceptos = this.dtConceptos.FiltraParametros("(Tipo ='P' AND EsPadre = 1 AND EsFormula =0) OR (Tipo = 'D' AND EsPadre = 1 AND EsFormula =0) OR Tipo = 'O' AND EsPadre = 1 AND EsFormula =0");
DataTable dtFiltrado = dtConceptos.Clone(); // Clonar la estructura del DataTable
foreach (GridViewRow row in GvPersonalizarExcel.Rows)
{
string columnaDB = row.DataKey("ColumnaDB").Replace("[","").Replace("]",""); // Suponiendo que la columna "ColumnaDB" está en la segunda celda (index 1)
string tipoDB = row.DataKey("TipoDB"); // Suponiendo que la columna "TipoDB" está en la cuarta celda (index 3)
//string tipo = tipoDB == "P" ? "1" : (tipoDB == "D" ? "2" : (tipoDB == "O" ? "3" : "5"));
// Filtrar dtConceptos basado en los valores del GridView
var filasFiltradas = dtConceptos.AsEnumerable()
.Where(r => string.Format("V_{0}" , r["CveConcepto"]) == columnaDB //&& r["Tipo"].ToString() == tipoDB
);
if (filasFiltradas.Any())
{
dtFiltrado.Merge(filasFiltradas.CopyToDataTable());
}
}
dtConceptos = dtFiltrado;
var libro = wb.AddWorksheet("Nomina");
int column = 1;
int filainicio = 3;
@@ -5136,32 +5157,37 @@ public partial class Nomina_Nomina2 : ClsPaginas
Titlecell(libro, "Pago", filainicio + 3, column, false, true, PercborderColor);
Titlecell(libro, "", filainicio + 4, column, true, true, PercborderColor);
libro.Column(column).Width = 15;
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo ='P' AND EsPadre = 1 AND EsFormula =0").Rows)
if (dtConceptos.FiltraParametros("Tipo ='P'").Rows.Count > 0)
{
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo ='P'").Rows)
{
column++;
if ((dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0))
{
libro.Column(column).Hide();
}
else
{
Titlecell(libro, row["Concepto"].ToString(), filainicio + 2, column, true, false, PercborderColor);
Titlecell(libro, row["Codigo"].ToString(), filainicio + 3, column, false, true, PercborderColor);
Titlecell(libro, "", filainicio + 4, column, true, true, PercborderColor);
libro.Column(column).Width = 15;
}
}
column++;
if ((dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0))
{
libro.Column(column).Hide();
}
else
{
Titlecell(libro, row["Concepto"].ToString(), filainicio + 2, column, true, false, PercborderColor);
Titlecell(libro, row["Codigo"].ToString(), filainicio + 3, column, false, true, PercborderColor);
Titlecell(libro, "", filainicio + 4, column, true, true, PercborderColor);
libro.Column(column).Width = 15;
}
}
column++;
TitleRange(libro, "Percepciones", filainicio + 2, column, filainicio + 3, column, true, true, PercborderColor);
Titlecell(libro, "", filainicio + 4, column, true, true, PercborderColor);
libro.Column(column).Width = 15;
if (iniciotipe < column)
{
libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center;
TitleRange(libro, "Percepciones", filainicio + 1, iniciotipe + 1, filainicio + 1, column, true, true, PercborderColor);
libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Merge().Value = "Percepciones";
TitleRange(libro, "Percepciones", filainicio + 2, column, filainicio + 3, column, true, true, PercborderColor);
Titlecell(libro, "", filainicio + 4, column, true, true, PercborderColor);
libro.Column(column).Width = 15;
if (iniciotipe < column)
{
libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center;
TitleRange(libro, "Percepciones", filainicio + 1, iniciotipe + 1, filainicio + 1, column, true, true, PercborderColor);
libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Merge().Value = "Percepciones";
}
}
iniciotipe = column;
int finPercepciones = iniciotipe;
@@ -5172,33 +5198,37 @@ public partial class Nomina_Nomina2 : ClsPaginas
TitleRange(libro, "Perm. Faltas", filainicio + 3, column, filainicio + 3, column, false, true, dedcborderColor);
Titlecell(libro, "", filainicio + 4, column, true, true, dedcborderColor);
libro.Column(column).Width = 15;
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 AND EsFormula =0").Rows)
if (dtConceptos.FiltraParametros("Tipo ='D'").Rows.Count > 0)
{
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D'").Rows)
{
column++;
if ((dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0))
{
libro.Column(column).Hide();
}
else
{
Titlecell(libro, row["Concepto"].ToString(), filainicio + 2, column, true, false, dedcborderColor);
Titlecell(libro, row["Codigo"].ToString(), filainicio + 3, column, false, true, dedcborderColor);
Titlecell(libro, "", filainicio + 4, column, true, true, dedcborderColor);
libro.Column(column).Width = 15;
}
}
column++;
if ((dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0))
TitleRange(libro, "Deducciones", filainicio + 2, column, filainicio + 3, column, true, true, dedcborderColor);
libro.Column(column).Width = 15;
if (iniciotipe < column)
{
libro.Column(column).Hide();
}
else
{
Titlecell(libro, row["Concepto"].ToString(), filainicio + 2, column, true, false, dedcborderColor);
Titlecell(libro, row["Codigo"].ToString(), filainicio + 3, column, false, true, dedcborderColor);
libro.Range(filainicio + 1, iniciotipe + 2, filainicio + 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center;
TitleRange(libro, "Deducciones", filainicio + 1, iniciotipe + 2, filainicio + 1, column, true, true, dedcborderColor);
Titlecell(libro, "", filainicio + 4, column, true, true, dedcborderColor);
libro.Column(column).Width = 15;
}
}
column++;
TitleRange(libro, "Deducciones", filainicio + 2, column, filainicio + 3, column, true, true, dedcborderColor);
libro.Column(column).Width = 15;
if (iniciotipe < column)
{
libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center;
TitleRange(libro, "Deducciones", filainicio + 1, iniciotipe + 1, filainicio + 1, column, true, true, dedcborderColor);
Titlecell(libro, "", filainicio + 4, column, true, true, dedcborderColor);
}
int findeducciones = column;
//column++;
@@ -5209,6 +5239,46 @@ public partial class Nomina_Nomina2 : ClsPaginas
libro.Cell(filainicio + 1, column).Value = " ";
libro.Range(filainicio + 2, column, filainicio + 3, column).Merge().Value = "Total";
libro.Column(column).Width = 15;
int iniciotiob = column;
if (dtConceptos.FiltraParametros("Tipo ='O'").Rows.Count > 0)
{
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'O' ").Rows)
{
column++;
if ((dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0))
{
libro.Column(column).Hide();
}
else
{
Titlecell(libro, row["Concepto"].ToString(), filainicio + 2, column, true, false, dedcborderColor);
Titlecell(libro, row["Codigo"].ToString(), filainicio + 3, column, false, true, dedcborderColor);
Titlecell(libro, "", filainicio + 4, column, true, true, dedcborderColor);
libro.Column(column).Width = 15;
}
}
column++;
TitleRange(libro, "Obligaciones", filainicio + 2, column, filainicio + 3, column, true, true, dedcborderColor);
libro.Column(column).Width = 15;
if (iniciotipe < column)
{
libro.Range(filainicio + 1, iniciotiob + 1, filainicio + 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center;
TitleRange(libro, "Obligaciones", filainicio + 1, iniciotiob + 1, filainicio + 1, column, true, true, dedcborderColor);
Titlecell(libro, "", filainicio + 4, column, true, true, dedcborderColor);
}
}
iniciotipe = column;
@@ -5216,8 +5286,21 @@ public partial class Nomina_Nomina2 : ClsPaginas
int maxnocolumn = column;
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));
libro.Range(filainicio + 1, incioConceptos, filainicio + 4, finPercepciones).Style.Fill.SetBackgroundColor(colorperp);
libro.Range(filainicio + 1, finPercepciones + 1, filainicio + 4, findeducciones).Style.Fill.SetBackgroundColor(colorded);
if (dtConceptos.FiltraParametros("Tipo ='P'").Rows.Count > 0)
{
libro.Range(filainicio + 1, incioConceptos, filainicio + 4, finPercepciones).Style.Fill.SetBackgroundColor(colorperp);
}
if (dtConceptos.FiltraParametros("Tipo ='D'").Rows.Count > 0)
{
libro.Range(filainicio + 1, finPercepciones + 2, filainicio + 4, findeducciones).Style.Fill.SetBackgroundColor(colorded);
}
if (dtConceptos.FiltraParametros("Tipo ='O'").Rows.Count > 0)
{
libro.Range(filainicio + 1, findeducciones + 2, filainicio + 4, maxnocolumn).Style.Fill.SetBackgroundColor(colororange);
}
int Fila = filainicio + 3;
int cveSupProyecto = -5;
@@ -5269,70 +5352,80 @@ public partial class Nomina_Nomina2 : ClsPaginas
column++;
libro.Cell(Fila, column).Value = "";
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'P' AND EsPadre = 1 AND EsFormula =0").Rows)
if (dtConceptos.FiltraParametros("Tipo ='P'").Rows.Count > 0)
{
column++;
string Concepto = string.Format("V_{0}", row["CveConcepto"]);
libro.Cell(Fila, column).Value = erow[Concepto];
libro.Cell(Fila, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;\"\"";
if (newsubproyecto)
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'P' ").Rows)
{
libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
libro.Cell(Fila - 3, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;";
column++;
string Concepto = string.Format("V_{0}", row["CveConcepto"]);
libro.Cell(Fila, column).Value = erow[Concepto];
libro.Cell(Fila, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;\"\"";
if (newsubproyecto)
{
libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
libro.Cell(Fila - 3, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;";
}
}
}
column++;
libro.Cell(Fila, column).Style.Fill.SetBackgroundColor(colorperp);
Titlecell(libro, erow["SumaPercepciones"], Fila, column, false, false, PercborderColor);
libro.Cell(Fila, column).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Cell(Fila, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;\"\"";
if (newsubproyecto)
{
libro.Cell(Fila - 2, column).Style.Fill.SetBackgroundColor(colorperp);
Titlecell(libro, "", Fila - 2, column, false, false, PercborderColor);
libro.Cell(Fila - 3, column).Style.Fill.SetBackgroundColor(colorperp);
libro.Cell(Fila - 3, column).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Cell(Fila - 3, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;";
Titlecell(libro, dtempleados.SUM("SumaPercepciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)), Fila - 3, column, true, true, PercborderColor);
//libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaPercepciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
}
column++;
libro.Cell(Fila, column).Style.Fill.SetBackgroundColor(colorperp);
Titlecell(libro, erow["SumaPercepciones"], Fila, column, false, false, PercborderColor);
libro.Cell(Fila, column).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Cell(Fila, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;\"\"";
if (newsubproyecto)
{
libro.Cell(Fila - 2, column).Style.Fill.SetBackgroundColor(colorperp);
Titlecell(libro, "", Fila - 2, column, false, false, PercborderColor);
libro.Cell(Fila - 3, column).Style.Fill.SetBackgroundColor(colorperp);
libro.Cell(Fila - 3, column).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Cell(Fila - 3, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;";
Titlecell(libro, dtempleados.SUM("SumaPercepciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)), Fila - 3, column, true, true, PercborderColor);
//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 EsFormula =0").Rows)
{
column++;
string Concepto = string.Format("V_{0}", row["CveConcepto"]);
libro.Cell(Fila, column).Value = erow[Concepto];
libro.Cell(Fila, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;\"\"";
if (dtConceptos.FiltraParametros("Tipo ='D'").Rows.Count > 0)
{
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' ").Rows)
{
column++;
string Concepto = string.Format("V_{0}", row["CveConcepto"]);
libro.Cell(Fila, column).Value = erow[Concepto];
libro.Cell(Fila, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;\"\"";
if (newsubproyecto)
{
libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
libro.Cell(Fila - 3, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;";
}
}
column++;
libro.Cell(Fila, column).Style.Fill.SetBackgroundColor(colorded);
Titlecell(libro, erow["SumaDeducciones"], Fila, column, false, false, dedcborderColor);
libro.Cell(Fila, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;\"\"";
libro.Cell(Fila, column).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
if (newsubproyecto)
{
libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
libro.Cell(Fila - 2, column).Style.Fill.SetBackgroundColor(colorded);
Titlecell(libro, "", Fila - 2, column, false, false, dedcborderColor);
libro.Cell(Fila - 3, column).Style.Fill.SetBackgroundColor(colorded);
libro.Cell(Fila - 3, column).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Cell(Fila - 3, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;";
Titlecell(libro, dtempleados.SUM("SumaDeducciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)), Fila - 3, column, true, true, dedcborderColor);
//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(colorded);
Titlecell(libro, erow["SumaDeducciones"], Fila, column, false, false, dedcborderColor);
libro.Cell(Fila, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;\"\"";
libro.Cell(Fila, column).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
if (newsubproyecto)
{
libro.Cell(Fila - 2, column).Style.Fill.SetBackgroundColor(colorded);
Titlecell(libro, "", Fila - 2, column, false, false, dedcborderColor);
libro.Cell(Fila - 3, column).Style.Fill.SetBackgroundColor(colorded);
libro.Cell(Fila - 3, column).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Cell(Fila - 3, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;";
Titlecell(libro, dtempleados.SUM("SumaDeducciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)), Fila - 3, column, true, true, dedcborderColor);
//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"];
@@ -5352,25 +5445,43 @@ public partial class Nomina_Nomina2 : ClsPaginas
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.Cell(Fila, column).Value = "";
if (dtConceptos.FiltraParametros("Tipo ='O'").Rows.Count > 0)
{
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'O' ").Rows)
{
column++;
string Concepto = string.Format("V_{0}", row["CveConcepto"]);
libro.Cell(Fila, column).Value = erow[Concepto];
libro.Cell(Fila, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;\"\"";
if (newsubproyecto)
{
libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
libro.Cell(Fila - 3, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;";
}
}
column++;
libro.Cell(Fila, column).Style.Fill.SetBackgroundColor(colororange);
Titlecell(libro, erow["SumaObligaciones"], Fila, column, false, false, dedcborderColor);
libro.Cell(Fila, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;\"\"";
libro.Cell(Fila, column).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
if (newsubproyecto)
{
libro.Cell(Fila - 2, column).Style.Fill.SetBackgroundColor(colororange);
Titlecell(libro, "", Fila - 2, column, false, false, dedcborderColor);
libro.Cell(Fila - 3, column).Style.Fill.SetBackgroundColor(colororange);
libro.Cell(Fila - 3, column).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Cell(Fila - 3, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;";
Titlecell(libro, dtempleados.SUM("SumaObligaciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)), Fila - 3, column, true, true, dedcborderColor);
//libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaDeducciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
}
}
}
libro.Rows(Fila - 2, Fila).Delete();