@@ -446,6 +489,11 @@
$(document).ready(function () {
CargaPickers();
});
+ function ADSReady() {
+
+ setTimeout(function () { FiltrarTablaFreezcol('.TxtBusqueda', '.GvNominas'); }, 250);
+
+ }
diff --git a/Nomina/ChecadorAsistencia.aspx.cs b/Nomina/ChecadorAsistencia.aspx.cs
index 188b940d3..afcd74f96 100644
--- a/Nomina/ChecadorAsistencia.aspx.cs
+++ b/Nomina/ChecadorAsistencia.aspx.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Data;
using System.Linq;
+using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
@@ -22,6 +23,10 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
{
if (!IsPostBack)
{
+
+ DdlTurno.DataSource = GlobalDTTurno.FiltraParametros("CveEmpresa = " + UsuarioActual.CveEmpresa);
+ DdlTurno.DataBind();
+
CargaTiposPeriodo();
TxtRpdFechaInicio.Text = "01/09/2021";
TxtRpdFechaFin.Text = "15/09/2021";
@@ -58,13 +63,27 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
DdlTipoPeriodo.SelectedIndex = 0;
}
}
- private DataTable generateTable()
+ private DataTable generateTable(string salto = "
")
{
DateTime FechaI = TxtRpdFechaInicio.Text.ToDateTime();
DateTime FechaF = TxtRpdFechaFin.Text.ToDateTime().AddDays(1);
DataTable dtCon = new DataTable();
dtCon.Columns.Add(new DataColumn("Codigo", typeof(string)));
dtCon.Columns.Add(new DataColumn("Empleado", typeof(string)));
+ string strasis = "
";
+ string strdescanso = "
";
+ string strretardo = "
";
+ string strfaltaretardo = "
";
+ string strfalta = "
❌
";
+
+ if (salto == "\r\n")
+ {
+ strasis = "✅";
+ strdescanso = "🌣";
+ strretardo = "🕖";
+ strfaltaretardo = "❌";
+ strfalta = "--";
+ }
DateTime CFecha = FechaI;
while (FechaF > CFecha)
{
@@ -89,92 +108,129 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
{
int Fecha = string.Format("{0:yyyyMMdd}", CFecha).ToEntero();
string FechaCol = string.Format("{0:dd-MM-yyyy}", CFecha);
- string TipoAsis = "(Faltó)";
- DataRow drfec = dtASis.FiltroPrimero(string.Format("CvePersonal={0} AND Agrupador ={1}", item["CvePersonal"], Fecha), "Salida");
- if (drfec != null)
+ if (DdlTipoVista.SelectedValue == "2")
{
- DataTable dtx = dtASis.FiltraParametros(string.Format("CvePersonal={0} AND Agrupador ={1}", item["CvePersonal"], Fecha), "Salida");
-
-
- string asistencia2 = "";
- string Horas2 = "";
- string HoraExtraPorAutorizar2 = "";
- if (dtx.Rows.Count > 1)
+ DataTable Dtb = objnom.DTSetResultados.Tables[4];
+ StringBuilder str = new StringBuilder();
+ string oldstr = "";
+ string newstr = "";
+ foreach (DataRow dfechas in Dtb.Select(string.Format("Agrupador ={0} AND CvePersonal={1}", Fecha, item["CvePersonal"])))
{
- DataRow drf = dtx.Rows[1];
- asistencia2 = "
";
- TipoAsis = drf["TipoAsistencia"].ToString();
- Horas2 = drf["Horas"].ToString();
- HoraExtraPorAutorizar2 = drf["HoraExtraPorAutorizar"].ToString().ToEntero() > 0 ? string.Format("({0:0.##})", drf["HoraExtraPorAutorizar"]) : "";
- switch (drf["Tipo"].ToString().ToEntero())
+ newstr = string.Format("{0:HH}:{0:mm}{1}", dfechas["Fecha"], salto);
+ if (!oldstr.Equals(newstr))
+ {
+ str.Append(newstr);
+ }
+ oldstr = newstr;
+ }
+ drow[FechaCol] = str.ToString();
+ }
+ else
+ {
+ string TipoAsis = "--";
+ DataRow drfec = dtASis.FiltroPrimero(string.Format("CvePersonal={0} AND Agrupador ={1}", item["CvePersonal"], Fecha), "Salida");
+ if (drfec != null)
+ {
+ DataTable dtx = dtASis.FiltraParametros(string.Format("CvePersonal={0} AND Agrupador ={1}", item["CvePersonal"], Fecha), "Salida");
+
+
+ string asistencia2 = "";
+ string Horas2 = "";
+ string HoraExtraPorAutorizar2 = "";
+ if (dtx.Rows.Count > 1)
+ {
+ DataRow drf = dtx.Rows[1];
+ asistencia2 = "
";
+ TipoAsis = drf["TipoAsistencia"].ToString();
+ Horas2 = drf["Horas"].ToString();
+ HoraExtraPorAutorizar2 = drf["HoraExtraPorAutorizar"].ToString().ToEntero() > 0 ? string.Format("({0:0.##})", drf["HoraExtraPorAutorizar"]) : "";
+ switch (drf["Tipo"].ToString().ToEntero())
+ {
+ case 1:
+ asistencia2 = strasis;
+ break;
+ case 2:
+ asistencia2 = strretardo;
+ break;
+ case 3:
+ asistencia2 = strretardo;
+ break;
+ case 4:
+ asistencia2 = strfaltaretardo;
+ break;
+ case 5:
+ asistencia2 = strfaltaretardo;
+ break;
+ case 6:
+ asistencia2 = strfalta;
+ break;
+
+ default:
+ break;
+ }
+ }
+ string asistencia = "
";
+ TipoAsis = drfec["TipoAsistencia"].ToString();
+ string HoraExtraPorAutorizar = drfec["HoraExtraPorAutorizar"].ToString().ToEntero() > 0 ? string.Format("({0:0.##})", drfec["HoraExtraPorAutorizar"]) : "";
+ switch (drfec["Tipo"].ToString().ToEntero())
{
case 1:
- asistencia2 = "
";
+ asistencia = strasis;
break;
case 2:
- asistencia2 = "
";
+ asistencia = strretardo;
break;
case 3:
- asistencia2 = "
";
+ asistencia = strretardo;
break;
case 4:
- asistencia2 = "
";
+ asistencia = strfaltaretardo;
break;
case 5:
- asistencia2 = "
";
+ asistencia = strfaltaretardo;
break;
case 6:
- asistencia2 = "
❌
";
+ asistencia = strfalta;
break;
default:
break;
}
- }
- string asistencia = "
";
- TipoAsis = drfec["TipoAsistencia"].ToString();
- string HoraExtraPorAutorizar = drfec["HoraExtraPorAutorizar"].ToString().ToEntero() > 0 ? string.Format("({0:0.##})", drfec["HoraExtraPorAutorizar"]) : "";
- switch (drfec["Tipo"].ToString().ToEntero())
- {
- case 1:
- asistencia = "
";
- break;
- case 2:
- asistencia = "
";
- break;
- case 3:
- asistencia = "
";
- break;
- case 4:
- asistencia = "
";
- break;
- case 5:
- asistencia = "
";
- break;
- case 6:
- asistencia = "
❌
";
- break;
-
- default:
- break;
- }
- drow[FechaCol] = string.Format("
{0}
{1}{2}
{3}
{4}{5}
", asistencia, drfec["Horas"], HoraExtraPorAutorizar, asistencia2, Horas2, HoraExtraPorAutorizar2);
- //drow[FechaCol] = string.Format("{0}
{1:HH}:{1:mm} - {2:HH}:{2:mm}", asistencia, drfec["Entrada"], drfec["Salida"]);
- }
- else
- {
- if (CFecha.DayOfWeek == DayOfWeek.Sunday)
- {
- drow[FechaCol] = "
";
- TipoAsis = "(Descanso)";
+ if (salto == "\r\n")
+ {
+ drow[FechaCol] = string.Format("{0}{1}", asistencia, asistencia2, salto);
+ //drow[FechaCol] = string.Format("{0}{6}{1}{2}{3}{6}{4}{5}", asistencia, drfec["Horas"], HoraExtraPorAutorizar, asistencia2, Horas2, HoraExtraPorAutorizar2, salto);
+ }
+ else
+ {
+ drow[FechaCol] = string.Format("
{0}{6}{1}{2}
{3}{6}{4}{5}
", asistencia, drfec["Horas"], HoraExtraPorAutorizar, asistencia2, Horas2, HoraExtraPorAutorizar2, salto);
+ }
+ //drow[FechaCol] = string.Format("{0}
{1:HH}:{1:mm} - {2:HH}:{2:mm}", asistencia, drfec["Entrada"], drfec["Salida"]);
}
else
{
- drow[FechaCol] = "
❌
";
+ if (CFecha.DayOfWeek == DayOfWeek.Sunday)
+ {
+ drow[FechaCol] = strdescanso;
+ TipoAsis = "(Descanso)";
+ }
+ else
+ {
+ drow[FechaCol] = salto; // "
❌
";
+ }
}
+ if (salto == "\r\n")
+ {
+ drow[FechaCol] = string.Format("{0}{4}{1}", drow[FechaCol], TipoAsis, FechaCol, item["CvePersonal"], salto);
+ }
+ else
+ {
+ drow[FechaCol] = string.Format("
{0}{4}{1}
", drow[FechaCol], TipoAsis, FechaCol, item["CvePersonal"], salto);
+ }
+ //dtCon.Columns.Add(new DataColumn(FechaCol, typeof(string)));Widthall
+
+
}
- drow[FechaCol] = string.Format("
{0}
{1}
", drow[FechaCol], TipoAsis, FechaCol, item["CvePersonal"]);
- //dtCon.Columns.Add(new DataColumn(FechaCol, typeof(string)));Widthall
CFecha = CFecha.AddDays(1);
}
dtCon.Rows.Add(drow);
@@ -193,7 +249,8 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
GvNominas.DataBind();
DateTime fechai = TxtRpdFechaInicio.Text.ToDateTime();
DateTime fechaf = TxtRpdFechaFin.Text.ToDateTime().AddDays(1);
- using (ClsGenerales ObjGral = new ClsGenerales()) {
+ using (ClsGenerales ObjGral = new ClsGenerales())
+ {
if (ObjGral.GetHistorialBitacora(-1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa, FechaInicio: fechai.ToString("yyyy/MM/dd"), FechaFin: fechaf.ToString("yyyy/MM/dd")))
{
//Alert("Entre");
@@ -251,6 +308,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
{
TxtCodigolabel.Text = drow["Codigo"].ToString();
TxtEmpleadolabel.Text = drow["NombreCompleto"].ToString();
+ DdlTurno.SelectedValueExist(drow["CveTurno"].ToString());
}
TxtFechalabel.Text = string.Format("{0:dd/MM/yyyy}", fechai);
DataTable dtTurno = GlobalDTTurno.FiltraParametros(string.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa));
@@ -353,7 +411,8 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
if (DdlTipoAsistenciasB.SelectedIndex == 0)
{
DdlTipoAsistenciasB.Enabled = false;
- }else
+ }
+ else
{
DdlTipoAsistenciasB.DataSource = GlobalDTAsistenciasInasistencias.FiltraParametros(string.Format("CveEmpresa = {0} AND CveAsistenciasInasistencias IN({1},{2})", UsuarioActual.CveEmpresa, DdlTipoAsistenciasB.Items[0].Value, DdlTipoAsistenciasB.SelectedValue));
DdlTipoAsistenciasB.DataBind();
@@ -382,9 +441,16 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
DateTime fecha = TxtFecha.Text.ToDateTime();
int CvePersonal = TxtCvePersonal.Text.ToEntero();
List
registros = new List();
+ int CveTurnoNEW = DdlTurno.SelectedValue.ToEntero();
+ using (ClsClaseBase objbase = new ClsClaseBase())
+ {
+ objbase.runQuerystr(string.Format("UPDATE RH_Personal SET CveTurno={1} WHERE CvePersonal ={0}", CvePersonal, CveTurnoNEW));
+
+ }
foreach (GridViewRow row in GvAsistenciaUp.Rows)
{
-
+ int CveTurno = row.DataKey("CveTurno").ToEntero();
+ string Fecha = row.DataKey("Fecha");
int CveAsistenciaDetalle = row.DataKey("CveAsistenciaDetalle").ToEntero();
int CveAsistenciasInasistencias = row.DataKey("CveAsistenciasInasistencias").ToEntero();
int CveProyecto = row.DataKey("CveProyecto").ToEntero();
@@ -400,6 +466,15 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
obj.CvePersonal = CvePersonal;
obj.Fecha = fecha;
obj.Motivo = TxtMotivo.Text.Trim();
+ if (CveTurno != CveTurnoNEW)
+ {
+ using (ClsClaseBase objbase = new ClsClaseBase())
+ {
+ objbase.runQuerystr(string.Format("UPDATE RH_PersonalAsistenciasDetalle SET CveTurno={1} WHERE CveAsistenciaDetalle ={0}", CveAsistenciaDetalle, CveTurnoNEW));
+ objbase.runQuerystr(string.Format("UPDATE D SET CveTurno={1} FROM RH_PersonalAsistencias A INNER JOIN RH_PersonalAsistenciasDetalle D ON D.CveAsistencia =A.CveAsistencia AND D.CveTurno = {2} WHERE A.Fecha > '{0}' AND A.CvePersonal ={3}", Fecha, CveTurnoNEW, CveTurno, CvePersonal));
+
+ }
+ }
if (obj.Motivo.Length == 0 && CveAsistenciasInasistencias != obj.CveAsistenciasInasistencias)
{
continuar = false;
@@ -411,7 +486,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
{
using (ClsRH objRH = new ClsRH())
{
- if (objRH.UpAsistenciaDetalle(UsuarioActual.CveEmpresa,UsuarioActual.CveUsuario, registros))
+ if (objRH.UpAsistenciaDetalle(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, registros))
{
Alert("Se ha guardado la asistencia satisfactoriamente");
RegistraScript("$('#divDetallesDia').modal('hide');");
@@ -422,7 +497,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
else
{
- Alert("El campo motivo es requerido favor de llenarlo",ModExtensiones.TipoMensaje.MsgAdvertencia);
+ Alert("El campo motivo es requerido favor de llenarlo", ModExtensiones.TipoMensaje.MsgAdvertencia);
}
//int CvePersonal = TxtasiscvePersonal.Text.ToEntero();
//DateTime fecha = TxtasisFecha.Text.ToDate();
@@ -438,4 +513,81 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
// }
//}
}
+
+ protected void LnkFormato_Click(object sender, EventArgs e)
+ {
+
+ DataTable dtCon = generateTable("\r\n");
+
+
+ ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook();
+ var libro = wb.AddWorksheet(dtCon, "Asistencia");
+
+ //string strinicio;
+ //string strfin;
+ //ClosedXML.Excel.IXLFontBase fini;
+ //for (int r = 2; r < dtCon.Rows.Count + 2; r++)
+ //{
+ // for (int c = 3; c < dtCon.Columns.Count + 1; c++)
+ // {
+ // var ccell = libro.Cell(r, c);
+
+ // if (ccell.Value.ToString().Substring(0, 1) != "")
+ // {
+ // //ccell.RichText.Substring(0, 1).SetFontColor(ClosedXML.Excel.XLColor.Green);
+ // strinicio = ccell.Value.ToString().Substring(0, 1);
+ // switch (strinicio)
+ // {
+ // case "✅":
+ // //ccell.RichText.Substring(0, 1).SetFontColor(ClosedXML.Excel.XLColor.Green);
+ // //ccell.RichText.AddText(ccell.RichText);
+ // //ClosedXML.Excel.IXLFontBase ffin = new ClosedXML.Excel.XLFontBase();
+ // ccell.RichText.SetFontColor(ClosedXML.Excel.XLColor.Green);
+ // break;
+ // case "🌣":
+ // //ccell.RichText.Substring(0, 1).SetFontColor(ClosedXML.Excel.XLColor.Green);
+ // ccell.RichText.SetFontColor(ClosedXML.Excel.XLColor.Green);
+ // break;
+ // case "🕖":
+ // //ccell.RichText.Substring(0, 1).SetFontColor(ClosedXML.Excel.XLColor.Orange);
+ // ccell.RichText.SetFontColor(ClosedXML.Excel.XLColor.Orange);
+ // break;
+ // case "❌":
+ // //ccell.RichText.Substring(0, 1).SetFontColor(ClosedXML.Excel.XLColor.Red);
+ // ccell.RichText.SetFontColor(ClosedXML.Excel.XLColor.Red);
+ // break;
+ // default:
+ // break;
+ // }
+ // }
+ // }
+
+ //}
+
+ libro.Tables.FirstOrDefault().ShowAutoFilter = false;
+ libro.SheetView.Freeze(1, 2);
+ libro.ColumnsUsed().AdjustToContents();
+ libro.Range(1, 3, dtCon.Rows.Count, dtCon.Columns.Count).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center;
+
+
+
+ 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} del {1} al {2}.xlsx", "Asistencia", TxtRpdFechaInicio.Text.Replace("/", "-"), TxtRpdFechaFin.Text.Replace("/", "-")));
+ Response.BinaryWrite(memoryStream.ToArray());
+ Response.End();
+ }
}
\ No newline at end of file
diff --git a/Nomina/Finiquito.aspx b/Nomina/Finiquito.aspx
index ee03668bd..8d616fa36 100644
--- a/Nomina/Finiquito.aspx
+++ b/Nomina/Finiquito.aspx
@@ -70,6 +70,7 @@
+ Finiquito
@@ -126,8 +127,7 @@
Área geográfica
- --
-
+ --