diff --git a/Nomina/Nomina.aspx b/Nomina/Nomina.aspx
index 2fb2225db..c6f01e8bc 100644
--- a/Nomina/Nomina.aspx
+++ b/Nomina/Nomina.aspx
@@ -278,7 +278,10 @@
Ir a asistencia
- Nómina tabular
+ Nómina tabular
+
+
+ Nómina Fiscal
Simulador
@@ -300,6 +303,7 @@
+
diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs
index 2261ffae8..ed0531880 100644
--- a/Nomina/Nomina.aspx.cs
+++ b/Nomina/Nomina.aspx.cs
@@ -259,7 +259,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
if (!IsPostBack)
- {
+ {
enviarCorreoEnTimbrado = (UsuarioActual.CveEmpresa == 141 ? true : true);
LnkCargaNetos.Visible = (UsuarioActual.Empresa.Funcionalidad(267) == "1") || (UsuarioActual.CveRol == 1);
if (UsuarioActual.CveEmpresa == 141) { ddlfiniquito.SelectedValueExist("2"); }
@@ -567,6 +567,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
LnkAsistenciaIncidencias.Visible = true;
LnkFormatoTabular.Visible = true;
+ LnkFormatoFiscal.Visible = (UsuarioActual.CveEmpresa == 141 || UsuarioActual.CveRol == 1);
HypPDFSTimbrados.Visible = true;
if (objnom.GetNominaEmpleado(FiltCveProyecto, FiltCveSubProyecto, FiltCveTurno, FiltCvePeriodo, CveEmpresa, FiltAgrupador, DdlRegimenContratacion.SelectedValue.ToEntero(), CveTipoTrabajador: CveTipoTrabajador, Neto: ddlfiniquito.SelectedValue.ToEntero()) && objnom.DTSetResultados.Tables.Count > 4)
{
@@ -2837,7 +2838,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
using (ClsRH objpersonal = new ClsRH())
{
- if (objpersonal.GetAsistencias(SRCvePersonal, -1, -1, -1, -1, -1,-1, FechaInicioPeriodo, FechaFinPeriodo, UsuarioActual.CveEmpresa))
+ if (objpersonal.GetAsistencias(SRCvePersonal, -1, -1, -1, -1, -1, -1, FechaInicioPeriodo, FechaFinPeriodo, UsuarioActual.CveEmpresa))
{ GVAsistencia.DataSource = objpersonal.DtResultados.FiltraParametros("Fecha IS NOT NULL"); }
else
{
@@ -5040,6 +5041,274 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
}
+ protected void LnkFormatoFiscal_Click(object sender, EventArgs e)
+ {
+ DataTable dtnominas = null;
+ using (ClsNominas onom = new ClsNominas())
+ {
+ if (onom.GetNom_Nominas(-1, -1, CvePeriodoSeleccionado, -1, UsuarioActual.CveEmpresa))
+ {
+ dtnominas = onom.DtResultados;
+ }
+ }
+
+ 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 = " ";
+ column++;
+ libro.Cell(filainicio + 1, column).Value = " ";
+ libro.Cell(filainicio + 2, column).Value = "Folio Fiscal";
+ 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;
+ foreach (DataRow row in dtConceptos.FiltraParametros("Tipo ='P' AND EsPadre = 1 ").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;
+
+
+ foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 ").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 = "Total";
+ libro.Column(column).Width = 15;
+ iniciotipe = column;
+
+ foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'O' AND EsPadre = 1 ").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 = "Obligaciones";
+ 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 = "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 = "";
+ int oldcveSupProyecto = -5;
+ bool newsubproyecto = false;
+ bool newsubproyectoTitulo = false;
+ 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)
+ {
+ 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 = "Total";
+ libro.Range(Fila - 3, 1, Fila - 3, maxnocolumn).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(155, 194, 230));
+ }
+ libro.Cell(Fila, column).Value = erow["Nombre"];
+ column++;
+ if (dtnominas != null)
+ {
+ DataRow drw = dtnominas.FiltroPrimero(string.Format("CvePersonal = {0}", erow["CvePersonal"].ToString().ToEntero()));
+ if (drw != null)
+ {
+ libro.Cell(Fila, column).Value = drw["FolioFiscal"];
+ }
+
+ }
+ 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).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));
+ }
+
+
+ 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).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["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));
+
+ 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 Fiscal", periodo));
+ Response.BinaryWrite(memoryStream.ToArray());
+ Response.End();
+ }
+ catch (Exception ex)
+ {
+ Alert("Ocurrio un error al generar el Formato de nominas" + ex.ToString());
+ }
+ }
+
protected void LnkConceptoD_Click(object sender, EventArgs e)
{
@@ -7006,7 +7275,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
-
+
RegistraScript("$('#DModalCargaASistenciaMasiva').modal();");
}
@@ -7111,7 +7380,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
using (ClsRH objpersonal = new ClsRH())
{
- if (objpersonal.GetAsistencias(CvePersonal, -1, -1, -1, -1, -1,-1, fecha, fecha, UsuarioActual.CveEmpresa))
+ if (objpersonal.GetAsistencias(CvePersonal, -1, -1, -1, -1, -1, -1, fecha, fecha, UsuarioActual.CveEmpresa))
{
if (objpersonal.DtResultados.Rows.Count > 0)
{
diff --git a/Nomina/ReportePTU.aspx.vb b/Nomina/ReportePTU.aspx.vb
index 024a2bbd0..80fe73ddb 100644
--- a/Nomina/ReportePTU.aspx.vb
+++ b/Nomina/ReportePTU.aspx.vb
@@ -72,7 +72,7 @@ Partial Class Nomina_ReportePTU
Private Sub CargaPeriodos()
Dim ObjPeriodos As New ClsNominas()
- If ObjPeriodos.GetPeriodos(-1, UsuarioActual.CveEmpresa, DdlEjercicios.SelectedValue.ToEntero(), -1, -1) Then
+ If ObjPeriodos.GetPeriodos(-1, UsuarioActual.CveEmpresa, -1, -1, -1) Then
dtPeriodos = ObjPeriodos.DtResultados.FiltraParametros("Estatus IN (0,1)")
End If
ObjPeriodos.Dispose()