This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2020-10-14 05:40:06 -07:00
parent dd8f8653e5
commit d5d5893684
8 changed files with 350 additions and 269 deletions

View File

@@ -309,11 +309,11 @@ public partial class Nomina_Nomina2 : ClsPaginas
protected void LnkConsultar_Click(object sender, EventArgs e)
{
FiltCveProyecto = DdlProyecto.SelectedValue.ToEntero();
FiltCveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero();
FiltCveTurno = DdlTurno.SelectedValue.ToEntero();
FiltCvePeriodo = DdlPeriodo.SelectedValue.ToEntero();
FiltAgrupador = DdlAgrupador.SelectedValue.ToEntero();
FiltCveProyecto = DdlProyecto.SelectedValue.ToEntero();
FiltCveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero();
FiltCveTurno = DdlTurno.SelectedValue.ToEntero();
FiltCvePeriodo = DdlPeriodo.SelectedValue.ToEntero();
FiltAgrupador = DdlAgrupador.SelectedValue.ToEntero();
cargaDatos();
}
@@ -694,16 +694,16 @@ public partial class Nomina_Nomina2 : ClsPaginas
DateTime FechaInicio = (DateTime)dtPeriodo.Rows[0]["FechaInicio"];
DateTime FechaFin = (DateTime)dtPeriodo.Rows[0]["FechaFin"];
StringBuilder gvasistencia = new StringBuilder();
gvasistencia.Append("<table class=\"table table-striped table-hover mysmallbtn Widthall ScrollAD\">");
gvasistencia.Append("<div><table class=\"table table-striped table-hover mysmallbtn Widthall ScrollAD gvasistencia \" data-rows=\"1\" data-heighterror=\"360\"><tbody>");
if (true)
{
DateTime fecha = FechaInicio;
gvasistencia.Append("<tr class=\"Titulos\">");
gvasistencia.Append("<td>Nombre</td>");
gvasistencia.Append("<tr class=\"Titulos ADtr\">");
gvasistencia.Append("<th>Nombre</th>");
while (fecha <= FechaFin)
{
gvasistencia.AppendFormat("<td>{0:dd/MM/yyyy}</td>", fecha);
gvasistencia.AppendFormat("<th>{0:dd/MM/yyyy}</th>", fecha);
fecha = fecha.AddDays(1);
}
gvasistencia.Append("</tr>");
@@ -715,8 +715,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
string nombre = rempl["Nombre"].ToString();
string Codigo = rempl["Codigo"].ToString();
DateTime fecha = FechaInicio; int HorasDobles, HorasTriples;
gvasistencia.Append("<tr>");
gvasistencia.AppendFormat("<td>{1}<br/>{0}</td>", nombre, Codigo);
gvasistencia.Append("<tr>");
gvasistencia.AppendFormat("<td><a class=\"Texto sline\" href=\"/RH/Personal.aspx?CvePersonal={0}\">{2}<br/>{1}</a></td>", CvePersonal, nombre, Codigo);
while (fecha <= FechaFin)
{
DataRow drow = dtasistencia.FiltroPrimero(string.Format("Fecha='{0:yyyy/MM/dd}' AND CvePersonal={1}", fecha, CvePersonal));
@@ -743,7 +743,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
gvasistencia.Append("</tr>");
}
gvasistencia.Append("</table>");
gvasistencia.Append("</tbody></table></div>");
ltlGvAsistencia.Text = gvasistencia.ToString();
}
@@ -895,6 +895,119 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
}
protected void LnkModalPlantillaNomina_Click(object sender, EventArgs e)
{
RegistraScript("$('#DModalNominas').modal();");
using (ClsNominas ObjNomina = new ClsNominas())
{
if (ObjNomina.GetConceptos(UsuarioActual.CveEmpresa))
{
GVConceptosPlantilla.DataSource = ObjNomina.DtResultados.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa}");
GVConceptosPlantilla.DataBind();
}
}
UpCargarNomina.Update();
}
protected void LnkFormato_Click(object sender, EventArgs e)
{
try
{
StringBuilder str = new StringBuilder("0");
bool continuar = false;
foreach (GridViewRow gvrow in GVConceptosPlantilla.Rows)
{
if (gvrow.DataKey("CveConcepto").ToEntero() > 0 && gvrow.FCCheckBox("chkCon").Checked)
{
str.AppendFormat(",{0}",gvrow.DataKey("CveConcepto"));
continuar = true;
}
}
if (continuar)
{
ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook();
DataTable dtc = dtConceptos.FiltraParametros(string.Format("Tipo IN ('P','D','O') AND EsPadre = 1 AND CveConcepto in({0})", str));
var libro = wb.AddWorksheet("Nomina");
int column = 1;
libro.Row(1).Hide();
libro.Cell(1, column).Value = "Codigo";
libro.Cell(2, column).Value = "Codigo";
column++;
libro.Cell(1, column).Value = "Empleado";
libro.Cell(2, column).Value = "Empleado";
libro.Column(column).Width = 35;
foreach (DataRow row in dtc.Rows)
{
column++;
string CveConcepto = row["CveConcepto"].ToString();
string Concepto = row["Concepto"].ToString();
libro.Cell(1, column).Value = CveConcepto;
libro.Cell(2, column).Value = Concepto;
libro.Column(column).Width = 15;
}
libro.Row(1).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Row(2).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Row(1).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
libro.Row(2).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
libro.Cell(3, 1).Value = 0;
libro.Range(3, 2, 3, 3).Merge().Value = "¿Modificar SI(S)/NO(N)?";
column = 2;
foreach (DataRow row in dtc.Rows)
{
column++;
string Concepto = string.Format("V_{0}", row["CveConcepto"]);
libro.Cell(3, column).Value = "N";
}
libro.Row(3).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(177, 160, 199));
int Fila = 3;
foreach (DataRow erow in dtempleados.FiltraParametros("CvePersonal>0 AND NomAutorizado=0").Rows)
{
Fila++;
column = 1;
libro.Cell(Fila, column).Value = erow["Codigo"];
column++;
libro.Cell(Fila, column).Value = erow["Nombre"];
foreach (DataRow row in dtc.Rows)
{
column++;
string Concepto = string.Format("V_{0}", row["CveConcepto"]);
libro.Cell(Fila, column).Value = erow[Concepto];
}
}
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", "Plantilla conceptos nómina "));
Response.BinaryWrite(memoryStream.ToArray());
Response.End();
}
else
{
Alert("Debe seleccionar los conceptos a cargar.", TipoMensaje.MsgAdvertencia);
}
}
catch (Exception ex)
{
Alert("Ocurrio un error al generar el Formato de nominas" + ex.ToString());
}
}
protected void LnkCargarNomina_Click(object sender, EventArgs e)
{
@@ -920,37 +1033,6 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
try
{
//using (System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + fileItem.FileUrl))
//{
// conn.Open();
// string exceltableName = "Nomina";
// DataTable tables = conn.GeaaffotSchema("Tables");
// if (tables.FiltraParametros(string.Format("TABLE_NAME LIKE'%{0}%'", exceltableName)).Rows.Count == 0)
// {
// continuar = false;
// stringError = "El documento no contiene la hoja nomina";
// }
// else
// {
// exceltableName = tables.FiltroPrimero(string.Format("TABLE_NAME LIKE'%{0}%'", exceltableName))["TABLE_NAME"].ToString();
// }
// if (continuar)
// {
// using (System.Data.Odbc.OdbcCommand cmd = conn.CreateCommand())
// {
// cmd.CommandType = CommandType.Text;
// cmd.CommandText = $"SELECT * FROM [{exceltableName}] WHERE LEN(Codigo)>0 AND Codigo <> 'Codigo'";
// using (System.Data.Odbc.OdbcDataAdapter da = new System.Data.Odbc.OdbcDataAdapter(cmd))
// {
// da.Fill(DTEXcel);
// }
// }
// }
//}
DTEXcel = Extensiones.ModExtensiones.ReadExcelFile(fileItem.FileUrl, true).FiltraParametros(" LEN(Codigo)>0 AND Codigo <> 'Codigo'");
}
@@ -974,28 +1056,28 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
int CveMoneda = 1;
List<int> lConceptos = new List<int>();
foreach (DataColumn item in DTEXcel.Columns)
{
if (item.ColumnName.ToEntero() > 0)
{
lConceptos.Add(item.ColumnName.ToEntero());
}
//List<int> lConceptos = new List<int>();
//foreach (DataColumn item in DTEXcel.Columns)
//{
// if (item.ColumnName.ToEntero() > 0)
// {
// lConceptos.Add(item.ColumnName.ToEntero());
// }
}
//}
using (ClsRH objpersonal = new ClsRH())
{
using (ClsNominas objNomina = new ClsNominas(objpersonal.IniciaTransacSQL()))
{
foreach (DataRow row in DTEXcel.FiltraParametros("CvePersonal>0").Rows)
foreach (DataRow row in DTEXcel.FiltraParametros("LEN(Codigo)>0 ").Rows)
{
string Codigo = row["Codigo"].ToString();
int CvePersonal = row["CvePersonal"].ToString().ToEntero();
int CvePersonal = -1; // row["CvePersonal"].ToString().ToEntero();
int CveNomina = 0;
double SubTotal = 0;
double Total = 0;
int CveMetodoPago = 0;
if (Codigo != "-1" && objpersonal.GetPersonal(CvePersonal, Codigo, "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) &&
if (Codigo != "-1" && objpersonal.GetPersonal(CvePersonal, Codigo, "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) &&
objpersonal.DtResultados.Rows.Count == 1)
{
CvePersonal = objpersonal.CvePersonal;
@@ -1003,6 +1085,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
else
{
CvePersonal = 0;
str.AppendLine(string.Format("No se encontro el codigo {0}<br>", Codigo));
}
if (CvePersonal > 0)
@@ -1048,7 +1131,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
// objNomina.AddUPNom_NominasDetalles(objNomina.CveNomina, CvePeriodoSeleccionado, CvePersonal, CveConcepto, Importe, ImporteGravado, ImporteExento, UsuarioActual.CveUsuario);
//}
for (int i = 3; i < DTEXcel.Columns.Count; i++)
for (int i = 2; i < DTEXcel.Columns.Count; i++)
{
int CveConcepto = DTEXcel.Columns[i].ColumnName.ToEntero();
decimal Importe = 0;
@@ -1070,7 +1153,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
else
{
rollback = false;
stringError = "ocurrio un error al procesar el archivo favor de intentar de nuevo volviendo a descargar el archivo.<br/>si el problema Persiste Contacte a soporte.";
stringError = "ocurrio un error al procesar el archivo favor de intentar de nuevo volviendo a descargar la plantilla.<br/>si el problema Persiste Contacte a soporte.";
}
}
@@ -1162,6 +1245,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
string DiasIncapacidad = "";
string Puesto = "";
string Departamento = "";
string SD = "";
string SDI = "";
DataRow drow = dtempleados.FiltroPrimero(string.Format("CvePersonal = {0}", SRCvePersonal));
if (drow != null)
{
@@ -1172,6 +1257,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
FechaFin = string.Format("{0:dd/MM/yyyy}", drow["FechaFin"]);
DiasRetardos = string.Format("{0}", drow["DiasRetardos"].ToString().ToEntero());
DiasIncapacidad = string.Format("{0}", drow["DiasIncapacidad"].ToString().ToEntero());
SD = string.Format("{0}", drow["SalarioDiario"]);
SDI = string.Format("{0}", drow["SalarioDiarioIntegrado"]);
}
using (ClsRH objrh = new ClsRH())
@@ -1203,6 +1290,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
LblDiasIncapacidad.Text = DiasIncapacidad;
LblSRPuesto.Text = Puesto;
LblSRDepartamento.Text = Departamento;
LblSRSalarioDiario.Text = SD;
LblSRSalarioDiarioIntegrado.Text = SDI;
#endregion
#region "Sobre Recibo"
{
@@ -1745,110 +1834,6 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
}
protected void LnkFormato_Click(object sender, EventArgs e)
{
try
{
ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook();
var libro = wb.AddWorksheet("Nomina");
int column = 1;
libro.Row(1).Hide();
libro.Column(1).Hide();
libro.Cell(1, column).Value = "CvePersonal";
libro.Cell(2, column).Value = "CvePersonal";
column++;
libro.Cell(1, column).Value = "Codigo";
libro.Cell(2, column).Value = "Codigo";
column++;
libro.Cell(1, column).Value = "Empleado";
libro.Cell(2, column).Value = "Empleado";
libro.Column(column).Width = 35;
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('P','D','O') AND EsPadre = 1 ").Rows)
{
column++;
string CveConcepto = row["CveConcepto"].ToString();
string Concepto = row["Concepto"].ToString();
libro.Cell(1, column).Value = CveConcepto;
libro.Cell(2, column).Value = Concepto;
libro.Column(column).Width = 15;
//column++;
//CveConcepto = string.Format("E{0}", row["CveConcepto"]);
//Concepto = string.Format("Exento {0}", row["Concepto"]);
//libro.Cell(1, column).Value = CveConcepto;
//libro.Cell(2, column).Value = Concepto;
//libro.Column(column).Width = 15;
}
libro.Row(1).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Row(2).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Row(1).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
libro.Row(2).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
//libro.Row(1).Cell(13).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(247, 150, 70));
//libro.Row(1).Cell(14).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 240));
//libro.Row(1).Cell(15).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(177, 160, 199));
libro.Cell(3, 1).Value = 0;
libro.Range(3, 2, 3, 3).Merge().Value = "¿Modificar SI(S)/NO(N)?";
column = 3;
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('P','D','O') AND EsPadre = 1 ").Rows)
{
column++;
string Concepto = string.Format("V_{0}", row["CveConcepto"]);
libro.Cell(3, column).Value = "N";
//column++;
//string ConceptoG = string.Format("VG_{0}", row["CveConcepto"]);
//libro.Cell(3, column).Value = "N";
}
libro.Row(3).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(177, 160, 199));
int Fila = 3;
foreach (DataRow erow in dtempleados.FiltraParametros("CvePersonal>0").Rows)
{
Fila++;
column = 1;
libro.Cell(Fila, column).Value = erow["CvePersonal"];
column++;
libro.Cell(Fila, column).Value = erow["Codigo"];
column++;
libro.Cell(Fila, column).Value = erow["Nombre"];
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('P','D','O') AND EsPadre = 1 ").Rows)
{
column++;
string Concepto = string.Format("V_{0}", row["CveConcepto"]);
libro.Cell(Fila, column).Value = erow[Concepto];
//column++;
//string ConceptoG = string.Format("VG_{0}", row["CveConcepto"]);
//libro.Cell(Fila, column).Value = erow[Concepto].ToString().ToDecimal() - erow[ConceptoG].ToString().ToDecimal();
}
}
//libro.Row(2).SetAutoFilter();
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", "FormatoCargaNominas"));
Response.BinaryWrite(memoryStream.ToArray());
Response.End();
}
catch (Exception ex)
{
Alert("Ocurrio un error al generar el Formato de nominas" + ex.ToString());
}
}
protected void LnkConcepto_Click(object sender, EventArgs e)
{
@@ -1977,7 +1962,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
paragraphh.ParagraphFormat.Style = styilo;
paragraphh = new GemBox.Document.Paragraph(document, string.Format("Días pagados:{0}, Retardos: {1}, Ausencias:{2} ", drow2["DiasPago"], drow2["DiasRetardos"], drow2["DiasFaltados"])); cell.Blocks.Add(paragraphh);
paragraphh.ParagraphFormat.Style = styilo;
row = new GemBox.Document.Tables.TableRow(document);
sobrereciboTable.Rows.Add(row);
@@ -3662,7 +3647,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
cargaPeriodosCM();
}
protected void LnkGuardarASistencia_Click(object sender, EventArgs e)
@@ -4200,4 +4185,5 @@ public partial class Nomina_Nomina2 : ClsPaginas
Response.BinaryWrite(memoryStream.ToArray());
Response.End();
}
}