From dd0da844f75a132d27f3fd224a4fe1c8577a2434 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Thu, 23 Sep 2021 08:10:35 -0700 Subject: [PATCH] --- App_Code/ClsClaseBase.vb | 4 +- App_Code/ClsGenerales.vb | 9 +- App_Code/ClsNominas.vb | 20 ++++ App_Code/ClsRH.vb | 10 +- Bin/GoCfdi.dll | Bin 343040 -> 388096 bytes General/ExcelToBD.aspx | 19 ++-- General/ExcelToBD.aspx.cs | 155 ++++++++++++++++++++++++++++-- Nomina/ChecadorAsistencia.aspx | 117 ++++++++++++++-------- Nomina/ChecadorAsistencia.aspx.cs | 69 ++++++++++--- RH/Personal.aspx | 10 +- RH/Personal.aspx.vb | 5 +- vwd.webinfo | 6 ++ 12 files changed, 344 insertions(+), 80 deletions(-) diff --git a/App_Code/ClsClaseBase.vb b/App_Code/ClsClaseBase.vb index d5857b782..87f8dd891 100644 --- a/App_Code/ClsClaseBase.vb +++ b/App_Code/ClsClaseBase.vb @@ -121,13 +121,13 @@ Public Class ClsClaseBase End If End Sub - Public Function runQuerystr(Query As String, Optional Listaparametros As List(Of parametroQuery) = Nothing, Optional msgError As String = "", Optional mostrarError As Boolean = True) As Boolean + Public Function runQuerystr(Query As String, Optional Listaparametros As List(Of parametroQuery) = Nothing, Optional msgError As String = "", Optional mostrarError As Boolean = True, Optional tipo As CommandType = CommandType.Text) As Boolean Dim retorno As Boolean = False Try If SqlConexion.State = ConnectionState.Open Then SqlAdapter.SelectCommand.Parameters.Clear() SqlAdapter.SelectCommand.CommandText = Query - SqlAdapter.SelectCommand.CommandType = CommandType.Text + SqlAdapter.SelectCommand.CommandType = tipo Data = New DataTable() If Not IsNothing(Listaparametros) Then For Each pr As parametroQuery In Listaparametros diff --git a/App_Code/ClsGenerales.vb b/App_Code/ClsGenerales.vb index 56b39138a..ba8ee9104 100644 --- a/App_Code/ClsGenerales.vb +++ b/App_Code/ClsGenerales.vb @@ -2525,7 +2525,9 @@ Public Class ClsGenerales Public Function GetHistorialBitacora(CveAcarreo As Integer, CveOrdenCompra As Integer, CveActivoFijo As Integer, CveOS As Integer, CvePS As Integer, CveCompra As Integer, CveIE As Integer, CveEmpresa As Integer, Optional CveUsuario As Integer = -1, Optional CvePersonal As Integer = -1, - Optional IdPoliza As Integer = -1, Optional CvePrePoliza As Integer = -1, Optional CvePeriodo As Integer = -1, Optional CveConceptoNomina As Integer = -1, Optional CvePromocion As Integer = -1) As Boolean + Optional IdPoliza As Integer = -1, Optional CvePrePoliza As Integer = -1, Optional CvePeriodo As Integer = -1, Optional CveConceptoNomina As Integer = -1, Optional CvePromocion As Integer = -1, + Optional CveAsistencia As Integer = -1, Optional CveAsistenciaDetalle As Integer = -1, Optional CveTipoBitacora As Integer = -1, + Optional FechaInicio As String = "", Optional FechaFin As String = "") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Gral_HistorialBitacoraGet") @@ -2547,6 +2549,11 @@ Public Class ClsGenerales .Add("@CvePromocion", SqlDbType.Int).Value = CvePromocion + .Add("@CveAsistencia", SqlDbType.Int).Value = CveAsistencia + .Add("@CveAsistenciaDetalle", SqlDbType.Int).Value = CveAsistenciaDetalle + .Add("@CveTipoBitacora", SqlDbType.Int).Value = CveTipoBitacora + .Add("@FechaInicio", SqlDbType.VarChar).Value = FechaInicio + .Add("@FechaFin", SqlDbType.VarChar).Value = FechaFin End With 'SqlTypes.SqlDateTime.Null diff --git a/App_Code/ClsNominas.vb b/App_Code/ClsNominas.vb index f57a14a3c..4bb07c31d 100644 --- a/App_Code/ClsNominas.vb +++ b/App_Code/ClsNominas.vb @@ -2251,6 +2251,26 @@ Public Class ClsNominas End Try Return retorno End Function + Public Function ExcelToBD(xmlstring As String) As Boolean + Dim retorno As Boolean = False + + Try + DTSet = New DataSet() + DataAdapter("PA_ExcelToBD", CommandType.StoredProcedure) + With SqlAdapter.SelectCommand.Parameters + .Add("@xmlstring", SqlDbType.Xml).Value = xmlstring + End With + SqlAdapter.Fill(DTSet) + retorno = True + Catch sqEx As SqlException + retorno = False + OnError("Ocurrió un error al obtener la asistenciadetalle.", sqEx, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + retorno = False + OnError("Ocurrió un error al obtener la asistenciadetalle.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function Public Function AsistenciaDetallePorTurnoGet(FechaInicio As DateTime, FechaFin As DateTime, CveEmpresa As Integer, Optional CvePersonal As Integer = -1) As Boolean Dim retorno As Boolean = False diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index c7d98a06d..be7964414 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -1807,7 +1807,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo Calle As String, NumExt As String, NumInt As String, Colonia As String, CP As String, Ciudad As String, CveEstado As Integer, Telefono As String, Celular As String, RFC As String, CURP As String, NombrePadre As String, NombreMadre As String, CveSATBanco As Integer, CveSATRiesgoPuesto As Integer, CveSATRegimenContratacion As Integer, CveClienteAsignado As Integer, CveSubProyecto As Integer, URL As String, CveSupervisor As Integer, CLABE As String, BancoNumCuenta As String, CveJornada As Integer, IdCtaContPersonal As Integer, CtaContPersonal As String, IdCtaContPrestamos As Integer, CtaContPrestamos As String, CveUsuario As Integer, CveEmpresa As Integer, CveUsuarioNomina As Integer, Optional CveSubProyectoZona As Integer = Nothing, Optional CveUniforme As Integer = -1, - Optional TelefonoExtension As String = "-1", Optional CelularPersonal As String = "-1", Optional TelefonoMarcadoRapido As String = "-1", Optional ContactoAlterno As String = "-1", Optional CveTipodeSalario As Integer = 1, Optional Sindicalizado As Boolean = False, Optional CvePais As Integer = -1) As Boolean + Optional TelefonoExtension As String = "-1", Optional CelularPersonal As String = "-1", Optional TelefonoMarcadoRapido As String = "-1", Optional ContactoAlterno As String = "-1", Optional CveTipodeSalario As Integer = 1, Optional Sindicalizado As Boolean = False, Optional CvePais As Integer = -1, Optional Pensionado As Boolean = False) As Boolean Dim Retorno As Boolean = False @@ -1889,6 +1889,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo .Add("@ContactoAlterno", SqlDbType.VarChar).Value = ContactoAlterno .Add("@CveTipodeSalario", SqlDbType.Int).Value = CveTipodeSalario .Add("@Sindicalizado", SqlDbType.Bit).Value = Sindicalizado + .Add("@Pensionado", SqlDbType.Bit).Value = Pensionado .Add("@CvePais", SqlDbType.Int).Value = CvePais .Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue @@ -1922,7 +1923,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo NombrePadre As String, NombreMadre As String, CveSATBanco As Integer, CveSATRiesgoPuesto As Integer, CveSATRegimenContratacion As Integer, CveClienteAsignado As Integer, CveSubProyecto As Integer, CvePersonal As Integer, URL As String, CveSupervisor As Integer, CLABE As String, BancoNumCuenta As String, CveJornada As Integer, IdCtaContPersonal As Integer, CtaContPersonal As String, IdCtaContPrestamos As Integer, CtaContPrestamos As String, CveEmpresa As Integer, CveUsuarioNomina As Integer, Optional CveSubProyectoZona As Integer = Nothing, Optional CveUniforme As Integer = -1, Optional TelefonoExtension As String = "-1", Optional CelularPersonal As String = "-1", Optional TelefonoMarcadoRapido As String = "-1", Optional ContactoAlterno As String = "-1", Optional CveUsuarioModifico As Integer = -1, - Optional FechaActivo As Date = MinFecha, Optional FechaReingreso As Date = MinFecha, Optional CveTipodeSalario As Integer = 1, Optional Sindicalizado As Integer = -1, Optional CvePais As Integer = -1) As Boolean + Optional FechaActivo As Date = MinFecha, Optional FechaReingreso As Date = MinFecha, Optional CveTipodeSalario As Integer = 1, Optional Sindicalizado As Integer = -1, Optional CvePais As Integer = -1, Optional Pensionado As Boolean = False) As Boolean Dim Retorno As Boolean = False @@ -2008,6 +2009,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo .Add("@FechaReingreso", SqlDbType.Date).Value = FechaReingreso .Add("@CveTipodeSalario", SqlDbType.Int).Value = CveTipodeSalario .Add("@Sindicalizado", SqlDbType.Int).Value = Sindicalizado + .Add("@Pensionado", SqlDbType.Bit).Value = Pensionado .Add("@CvePais", SqlDbType.Int).Value = CvePais End With @@ -2441,7 +2443,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo End Function - Public Function UpAsistenciaDetalle(CveEmpresa As Integer, registros As List(Of RequestUpAsistenciaDetalle)) As Boolean + Public Function UpAsistenciaDetalle(CveEmpresa As Integer, CveUsuario As Integer, registros As List(Of RequestUpAsistenciaDetalle)) As Boolean Dim Retorno As Boolean = False Dim xmlProductos As System.Xml.Linq.XDocument = Nothing If registros IsNot Nothing AndAlso registros.Count > 0 Then @@ -2451,6 +2453,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo SqlDataAdapter("PA_RH_AsistenciaDetalleUP") With SqlAdapter.SelectCommand.Parameters .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@xmlRegistros", SqlDbType.Xml).Value = xmlProductos.ToString() End With Try @@ -7145,4 +7148,5 @@ Public Class RequestUpAsistenciaDetalle Public Property CvePersonal As Integer Public Property CveAsistenciasInasistencias As Integer Public Property CveSubProyecto As Integer + Public Property Motivo As String End Class diff --git a/Bin/GoCfdi.dll b/Bin/GoCfdi.dll index aba020c12f4ab08c987d2a636243b15464c8d7e3..f6da1e75afbaeabd1ae16449f4dd79eb5f8bbb71 100644 GIT binary patch delta 74128 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 gK0ysQTFyE}|1ZrAt#pI?;4v*( delta 58142 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 - +
@@ -48,9 +48,13 @@ Paso 2: Configuración
- Mostrar
+
+
+ Mostrar +
+
@@ -67,19 +71,19 @@
- +
- +
- +
@@ -88,12 +92,15 @@
- Continuar + Continuar
+ + +
diff --git a/General/ExcelToBD.aspx.cs b/General/ExcelToBD.aspx.cs index cabe4ccdb..4f00078ce 100644 --- a/General/ExcelToBD.aspx.cs +++ b/General/ExcelToBD.aspx.cs @@ -1,6 +1,9 @@ using System; +using System.Collections.Concurrent; using System.Collections.Generic; +using System.Data; using System.Linq; +using System.Text.RegularExpressions; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; @@ -41,6 +44,16 @@ public partial class General_ExcelToBD : System.Web.UI.Page set { ViewState["workBooks"] = value; } } + private ConcurrentDictionary ColumnsTitles + { + get + { + if (ViewState["ColumnsTitles"] == null) { return null; } + else { return (ConcurrentDictionary)ViewState["ColumnsTitles"]; } + } + + set { ViewState["ColumnsTitles"] = value; } + } #endregion protected void Page_Load(object sender, EventArgs e) { @@ -64,21 +77,21 @@ public partial class General_ExcelToBD : System.Web.UI.Page workBooks.Add(new ADSWorksBooks() { Name = wokitem.Name, position = position++ }); } - + } DdlWorkBooks.DataSource = workBooks; DdlWorkBooks.DataBind(); if (workBooks.Count > 0) { DdlWorkBooks.SelectedIndex = 0; - DdlWorkBooks_SelectedIndexChanged(null,null); + DdlWorkBooks_SelectedIndexChanged(null, null); } } protected void DdlWorkBooks_SelectedIndexChanged(object sender, EventArgs e) { using (var workbook = new XLWorkbook(URLFile)) - { + { int Filas = 0; int columnas = 0; @@ -86,25 +99,151 @@ public partial class General_ExcelToBD : System.Web.UI.Page Filas = workSheet.LastColumnUsed().CellCount(); columnas = workSheet.LastRowUsed().CellCount(); TxtFilas.Text = Filas.ToString(); - TxtInicia.Text = "1"; - TxtColumnas.Text = Filas.ToString(); + TxtInicia.Text = "2"; + TxtColumnas.Text = "62";// columnas.ToString(); } } protected void Lnkdoit_Click(object sender, EventArgs e) { - + GVDatos.DataSource = GetDatosExcel(); + GVDatos.DataBind(); } protected void LnkContinuar_Click(object sender, EventArgs e) { - int Filas = 0; - int columnas = 0; + DataSet ds = new DataSet(); + DataTable dtDatos = new DataTable(); + DataTable dt = GetDatosExcel(); + ds.DataSetName = "DSDatos"; + dtDatos.TableName = "TCol"; + dt.TableName = "TData"; + + dtDatos.Columns.Add(new DataColumn("Columnas", typeof(string))); + dtDatos.Columns.Add(new DataColumn("LEN", typeof(int))); + foreach (DataColumn item in dt.Columns) + { + DataRow drow = dtDatos.NewRow(); + drow["Columnas"] = item.ColumnName; + int longitud = 0; + foreach (DataRow dr in dt.Rows) + { + int length = dr[item.ColumnName].ToString().Length; + + longitud = length > longitud ? length : longitud; + } + drow["LEN"] = longitud; + dtDatos.Rows.Add(drow); + } + + ds.Tables.Add(dtDatos); + ds.Tables.Add(dt); + string xml = ds.GetXml(); + + using (ClsNominas objbase = new ClsNominas()) + { + if (objbase.ExcelToBD(xml)) + { + this.Alert("Información capturada", ModExtensiones.TipoMensaje.MsgInformacion); + } + } + GVDatos.DataSource = dt; + GVDatos.DataBind(); + + //this.Alert(string.Format("
{0}\n

", xml), ModExtensiones.TipoMensaje.MsgInformacion); + + } + public string validtitle(string Valor) + { + + Valor = Valor.Replace(" ", "_"); + Valor = Valor.Replace("$$$$", "_Money_"); + Valor = Valor.Replace("$$$", "_Money_"); + Valor = Valor.Replace("$$", "_Money_"); + Valor = Valor.Replace("$", "_Money_"); + Valor = Valor.Replace(".", string.Empty); + Regex reg = new Regex("[*'\",&#^@]"); + Valor = reg.Replace(Valor, string.Empty); + if (Valor.Trim().Length == 0) + { + Valor = "Val"; + } + return Valor; + } + public DataTable GetDatosExcel() + { + + DataTable dtDatos = new DataTable(); + ColumnsTitles = new ConcurrentDictionary(); using (var workbook = new XLWorkbook(URLFile)) { IXLWorksheet workSheet = workbook.Worksheet(DdlWorkBooks.SelectedValue.ToEntero()); + DateTime d = new DateTime(); + bool continuarFila = true; + string validaValor; + + int contadorValida = 0; + bool haveTitles = chkcontieneTitulos.Checked; + int FilaInicial = TxtInicia.Text.ToEntero() > 0 ? TxtInicia.Text.ToEntero() : 1; + int ColumnaFinal = TxtColumnas.Text.ToEntero(); + int cFila = FilaInicial; + int cCol = 1; + + while (cCol <= ColumnaFinal) + { + string Valor = cCol.ToString(); + if (haveTitles) + { + Valor = workSheet.Cell(cFila, cCol).Value != null && workSheet.Cell(cFila, cCol).Value.GetType() == d.GetType() ? string.Format("{0:yyyy/MM/dd}", workSheet.Cell(cFila, cCol).Value) : workSheet.Cell(cFila, cCol).Value.ToString(); + Valor = validtitle(Valor); + } + if (!ColumnsTitles.TryAdd(Valor, Valor)) + { + int x = 2; + while (!ColumnsTitles.TryAdd(string.Format("{0}_{1}", Valor, x), Valor)) { x++; } + Valor = string.Format("{0}_{1}", Valor, x); + } + dtDatos.Columns.Add(new DataColumn(Valor, typeof(string))); + cCol++; + } + if (haveTitles) + { + cFila++; + } + while (continuarFila) + { + DataRow drow = dtDatos.NewRow(); + cCol = 1; + validaValor = ""; + while (cCol <= ColumnaFinal) + { + string Valor = workSheet.Cell(cFila, cCol).Value != null && workSheet.Cell(cFila, cCol).Value.GetType() == d.GetType() ? string.Format("{0:yyyy/MM/dd}", workSheet.Cell(cFila, cCol).Value) : workSheet.Cell(cFila, cCol).Value.ToString(); + validaValor = string.Format("{0}{1}", validaValor, Valor); + drow[cCol - 1] = Valor; + cCol++; + } + if (validaValor.Trim() == "") + { + contadorValida++; + if (contadorValida > 30) + { + continuarFila = false; + } + } + else + { + contadorValida = 0; + dtDatos.Rows.Add(drow); + } + cFila++; + if (cFila >= 1048576) + { + continuarFila = false; + } + } } + return dtDatos; } } diff --git a/Nomina/ChecadorAsistencia.aspx b/Nomina/ChecadorAsistencia.aspx index 01a90f0c2..bcd279f98 100644 --- a/Nomina/ChecadorAsistencia.aspx +++ b/Nomina/ChecadorAsistencia.aspx @@ -115,11 +115,40 @@ - + +
+
+
+ + Historial de Modificación +
+
+
+
+
+
+
+ + + + + + + + + + + + + + + +
+
- - - - - - - - - -
- -
-
-
- - - - - -
- - - - -
-
- -
- - - - -
-
-
-
-
-
@@ -262,6 +252,43 @@
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ + + +
+
+ + + + + + +
+
<%--
@@ -332,7 +359,13 @@ -
+
+ +
+ +
+
+
diff --git a/Nomina/ChecadorAsistencia.aspx.cs b/Nomina/ChecadorAsistencia.aspx.cs index f4fa8aec6..72a8e28da 100644 --- a/Nomina/ChecadorAsistencia.aspx.cs +++ b/Nomina/ChecadorAsistencia.aspx.cs @@ -61,7 +61,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas private DataTable generateTable() { DateTime FechaI = TxtRpdFechaInicio.Text.ToDateTime(); - DateTime FechaF = TxtRpdFechaFin.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))); @@ -98,12 +98,14 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas 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: @@ -131,6 +133,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas } 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: @@ -155,7 +158,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas default: break; } - drow[FechaCol] = string.Format("
{0}
{1}
{2}
{3}
", asistencia, drfec["Horas"], asistencia2, Horas2); + 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 @@ -188,6 +191,29 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas DataTable dtCon = generateTable(); GvNominas.DataSource = dtCon; GvNominas.DataBind(); + DateTime fechai = TxtFecha.Text.ToDateTime(); + DateTime fechaf = fechai.AddDays(1); + using (ClsGenerales ObjGral = new ClsGenerales()) { + if (ObjGral.GetHistorialBitacora(-1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa, FechaInicio: fechai.ToString("yyyy/MM/dd"), FechaFin: fechai.ToString("yyyy/MM/dd"))) + { + GvBitacora.DataSource = ObjGral.DtResultados; + GvBitacora.DataBind(); + } + + } + /* + + If CvePersonal > 0 Then + Dim ObjGral As New ClsGenerales() + If ObjGral.GetHistorialBitacora(-1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa, CvePersonal:=CvePersonal) Then + GvBitacora.DataSource = ObjGral.DtResultados + End If + ObjGral.Dispose() + GvBitacora.DataBind() + UpHistorialModificacion.Update() + End If + */ + UpDatos.Update(); } @@ -273,9 +299,10 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas protected void LnkAgregarRegistro_Click(object sender, EventArgs e) { + DateTime fechaing = string.Format("{0:dd-MM-yyyy} {0:HH}:{0:mm}:{1:00}", TxtFechaIngreso.Text.ToDateTimeExcat(), TxtSegundos.Text.ToEntero()).ToDateTimeExcat("dd-MM-yyyy HH:mm:ss"); bool continuar = false; List items = new List(); - items.Add(new RequestAddChecadorRegistro() { CveChecador = DdlChecador.SelectedValue.ToEntero(), CvePersonal = DdlmcPersonal.SelectedValue.ToEntero(), ChecadorID = -1, Fecha = TxtFechaIngreso.Text.ToDateTimeExcat() }); + items.Add(new RequestAddChecadorRegistro() { CveChecador = DdlChecador.SelectedValue.ToEntero(), CvePersonal = DdlmcPersonal.SelectedValue.ToEntero(), ChecadorID = -1, Fecha = fechaing }); using (ClsRH objrh = new ClsRH()) { objrh.IniciaTransacSQL(); @@ -294,7 +321,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas } if (continuar) { - Alert(string.Format("La asistencia se a agregado ({0:dd-MM-yyyy HH:mm}).", TxtFechaIngreso.Text.ToDateTimeExcat()), ModExtensiones.TipoMensaje.ToastInformacion); + Alert(string.Format("La asistencia se a agregado ({0:dd-MM-yyyy HH:mm:ss}).", fechaing), ModExtensiones.TipoMensaje.ToastInformacion); } if (!chkcontinuarAgregando.Checked) { @@ -316,9 +343,8 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas DropDownList DdlAsisProyectoB = (DropDownList)e.Row.FindControl("DdlAsisProyecto"); DropDownList DdlAsisSubProyectoB = (DropDownList)e.Row.FindControl("DdlAsisSubProyecto"); Label LblAsisProyectoB = (Label)e.Row.FindControl("LblAsisProyecto"); - Label LblAsisSubProyectoB = (Label)e.Row.FindControl("LblAsisSubProyecto"); + //Label LblAsisSubProyectoB = (Label)e.Row.FindControl("LblAsisSubProyecto"); Panel PnlProyectoB = (Panel)e.Row.FindControl("PnlProyecto"); - Panel PnlSubProyectoB = (Panel)e.Row.FindControl("PnlSubProyecto"); DdlTipoAsistenciasB.DataSource = GlobalDTAsistenciasInasistencias.FiltraParametros(string.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa)); DdlTipoAsistenciasB.DataBind(); @@ -331,9 +357,8 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas LblAsisSubProyectoB.Text = LblAsisSubProyecto.Text; */ - CargarCentrosDeCosto(DdlAsisProyectoB, DdlAsisSubProyectoB, LblAsisProyectoB, LblAsisSubProyectoB); + CargarCentrosDeCosto(DdlAsisProyectoB, DdlAsisSubProyectoB, LblAsisProyectoB, LblAsisSubProyecto); PnlProyectoB.Visible = PnlProyecto.Visible; - PnlSubProyectoB.Visible = PnlSubProyectoB.Visible; DdlTipoAsistenciasB.SelectedValueExist(CveAsistenciasInasistencias); DdlAsisProyectoB.SelectedValueExist(CveProyecto); DdlAsisSubProyectoB.SelectedValueExist(CveSubProyecto); @@ -343,6 +368,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas protected void BtnEstusAsistenciaModal_Click(object sender, EventArgs e) { + bool continuar = true; DateTime fecha = TxtFecha.Text.ToDateTime(); int CvePersonal = TxtCvePersonal.Text.ToEntero(); List registros = new List(); @@ -356,17 +382,37 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas DropDownList DdlTipoAsistenciasB = (DropDownList)row.FindControl("DdlTipoAsistencias"); DropDownList DdlAsisProyectoB = (DropDownList)row.FindControl("DdlAsisProyecto"); DropDownList DdlAsisSubProyectoB = (DropDownList)row.FindControl("DdlAsisSubProyecto"); + TextBox TxtMotivo = (TextBox)row.FindControl("TxtMotivo"); RequestUpAsistenciaDetalle obj = new RequestUpAsistenciaDetalle(); obj.CveAsistenciaDetalle = CveAsistenciaDetalle; obj.CveAsistenciasInasistencias = DdlTipoAsistenciasB.SelectedValue.ToEntero(); obj.CveSubProyecto = DdlAsisSubProyectoB.SelectedValue.ToEntero(); obj.CvePersonal = CvePersonal; obj.Fecha = fecha; + obj.Motivo = TxtMotivo.Text.Trim(); + if (obj.Motivo.Length == 0 && CveAsistenciasInasistencias != obj.CveAsistenciasInasistencias) + { + continuar = false; + break; + } registros.Add(obj); } - using (ClsRH objRH = new ClsRH()) + if (continuar) { - objRH.UpAsistenciaDetalle(UsuarioActual.CveEmpresa, registros); + using (ClsRH objRH = new ClsRH()) + { + if (objRH.UpAsistenciaDetalle(UsuarioActual.CveEmpresa,UsuarioActual.CveUsuario, registros)) + { + Alert("Se ha guardado la asistencia satisfactoriamente"); + RegistraScript("$('#divDetallesDia').modal('hide');"); + LnkConsultar_Click(null, null); + } + } + } + else + { + + Alert("El campo motivo es requerido favor de llenarlo",ModExtensiones.TipoMensaje.MsgAdvertencia); } //int CvePersonal = TxtasiscvePersonal.Text.ToEntero(); //DateTime fecha = TxtasisFecha.Text.ToDate(); @@ -377,8 +423,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas // TxtHorasTriples.Text.Trim().ToDouble(), DdlMotivoHoraExtra.SelectedValue.ToEntero(), TxtObservaciones.Text.Trim(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) // { // //Alert(string.Format("se ha guardado la asistencia satisfactoriamente
{0}
{1:dd/MM/yyyy}", TxtPersonal.Text, TxtasisFecha.Text.ToDate()), TipoMensaje.ToastInformacion); - // Alert("Se ha guardado la asistencia satisfactoriamente"); - // RegistraScript("$('#DModalModAsistencia').modal('hide');"); + // } //} diff --git a/RH/Personal.aspx b/RH/Personal.aspx index 4b9ac86db..d6bb8052a 100644 --- a/RH/Personal.aspx +++ b/RH/Personal.aspx @@ -566,11 +566,13 @@
- +
+ + +
-
@@ -3973,9 +3975,9 @@
+
-
@@ -4003,9 +4005,9 @@
-
+
<%-- MODAL BITACORA --%>