// GET: Asistencia public ActionResult Index() { //condicion si existe un ID de usuario al hacer login if (Session["Id"] == null) { return(RedirectToAction("Index", "Login")); } if (!(Session["perfil"].Equals("Administrador"))) { return(RedirectToAction("Index", "Login")); } List <AsistenciaCLS> listaAsistencia = new List <AsistenciaCLS>(); using (var bd = new asistenciaEntities()) { listaAsistencia = (from historial in bd.asistencia join usuario in bd.usuarios on historial.USU_ID equals usuario.USU_ID orderby historial.ASI_FECHA descending select new AsistenciaCLS { idAsistencia = historial.ASI_ID, empleadoAsistencia = usuario.USU_NOMBRES, fecha = (DateTime)historial.ASI_FECHA, horaIngreso = historial.ASI_HORA_INGRESO, horaSalida = historial.ASI_HORA_SALIDA, estadoAsistencia = (int)historial.ASI_ESTADO, observacion = historial.ASI_OBSERVACION, atrasos = (int)historial.ASI_ATRASO }).ToList(); Session["listaHistorial"] = listaAsistencia; } return(View(listaAsistencia)); }
public string SalidaHora() { int ok = 0; int opcion = 0; int numSalida = 0; //INFORMACION DEL USUARIO LOGEADO int idUsuarioSession = (int)Session["Id"]; DateTime fechaSession = DateTime.Parse(Session["fechaActual"].ToString()); fechaSession = fechaSession.Date; //GENERACIÓN DE HORA DEL MOMENTO TimeSpan hora = new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second); String salida = hora.ToString(); //REGISTRO HORA EN BASE DE DATOS DEL USUARIO LOGEADO Models.asistencia asi = new Models.asistencia(); using (var bd = new asistenciaEntities()) { asi = (from asist in bd.asistencia where asist.USU_ID.Equals(idUsuarioSession) && asist.ASI_FECHA.Equals(fechaSession) select asist).First(); asi.ASI_HORA_SALIDA = hora; ok = bd.SaveChanges(); } LogicaHoras(idUsuarioSession, hora, opcion); return(salida); }
public string Login(UsuariosCLS oUsuarioCLS) { string mensaje = ""; string usuario = oUsuarioCLS.usuario; string password = oUsuarioCLS.password; try { //inicio encriptado password SHA256Managed sha = new SHA256Managed(); byte[] byteContra = Encoding.Default.GetBytes(password); byte[] byteContraCifrado = sha.ComputeHash(byteContra); string cadenaContraCifrada = BitConverter.ToString(byteContraCifrado).Replace("-", ""); password = cadenaContraCifrada; //fin encriptado password //CONEXION BASE DE DATOS using (var bd = new asistenciaEntities()) { //VERIFICAR SI EXISTE EL USUARIO EN BASE DE DATOS int numeroVeces = bd.usuarios.Where(p => p.USU_USUARIO == usuario && p.USU_PASSWORD == password).Count(); mensaje = numeroVeces.ToString(); //CONDICIÓN PARA INGRESAR AL SISTEMA if (mensaje == "1") { //OBTENER FECHA ACTUAL DateTime fecha = DateTime.Now.Date; Session["fechaActual"] = fecha.ToString("yyyy-MM-dd"); //OBTENER EL NOMBRE DEL MES ACTUAL DateTimeFormatInfo formatoFecha = CultureInfo.CurrentCulture.DateTimeFormat; String mesNombre = formatoFecha.GetMonthName(DateTime.Now.Month); Session["nombreMes"] = CultureInfo.InvariantCulture.TextInfo.ToTitleCase(mesNombre); //OBTENER INFORMACIÓN DEL USUARIO QUE SE LOGEA usuarios oUsuario = bd.usuarios.Where(p => p.USU_USUARIO == usuario).First(); Session["Nombres"] = oUsuario.USU_NOMBRES; Session["perfil"] = oUsuario.USU_PERFIL; Session["Id"] = oUsuario.USU_ID; Session["mes"] = DateTime.Now.Month; Session["year"] = DateTime.Now.Year; } if (mensaje == "0") { mensaje = "Usuario o contraseña incorrecta"; } } return(mensaje); } catch (Exception e) { mensaje = "ERROR: " + e; return(mensaje); } }
public int justificarAsistencia(AsistenciaCLS oAsistenciaCLS, int titulo) { int ok = 0; using (var bd = new asistenciaEntities()) { Models.asistencia asi = bd.asistencia.Where(p => p.ASI_ID.Equals(titulo)).First(); asi.ASI_OBSERVACION = oAsistenciaCLS.observacion; ok = bd.SaveChanges(); } return(ok); }
public JsonResult verificarCedula(string cedula) { try { using (var bd = new asistenciaEntities()) { int cantidadCedula = bd.usuarios.Where(p => p.USU_USUARIO.Equals(cedula)).Count(); return(Json(cantidadCedula, JsonRequestBehavior.AllowGet)); } } catch (Exception e) { return(Json(e, JsonRequestBehavior.AllowGet)); } }
public ActionResult Filtrar(AsistenciaCLS oAsistenciaCLS) { string termino = oAsistenciaCLS.termino; List <AsistenciaCLS> listaAsistencia = new List <AsistenciaCLS>(); using (var bd = new asistenciaEntities()) { if (termino == null) { listaAsistencia = (from historial in bd.asistencia join usuario in bd.usuarios on historial.USU_ID equals usuario.USU_ID orderby historial.ASI_FECHA descending select new AsistenciaCLS { idAsistencia = historial.ASI_ID, empleadoAsistencia = usuario.USU_NOMBRES, fecha = (DateTime)historial.ASI_FECHA, horaIngreso = historial.ASI_HORA_INGRESO, horaSalida = historial.ASI_HORA_SALIDA, estadoAsistencia = (int)historial.ASI_ESTADO, observacion = historial.ASI_OBSERVACION }).ToList(); Session["listaHistorial"] = listaAsistencia; } else { listaAsistencia = (from historial in bd.asistencia join usuario in bd.usuarios on historial.USU_ID equals usuario.USU_ID where usuario.USU_NOMBRES.Contains(termino) orderby historial.ASI_FECHA descending select new AsistenciaCLS { idAsistencia = historial.ASI_ID, empleadoAsistencia = usuario.USU_NOMBRES, fecha = (DateTime)historial.ASI_FECHA, horaIngreso = historial.ASI_HORA_INGRESO, horaSalida = historial.ASI_HORA_SALIDA, estadoAsistencia = (int)historial.ASI_ESTADO, observacion = historial.ASI_OBSERVACION }).ToList(); Session["listaHistorial"] = listaAsistencia; } } return(PartialView("_tablaAsistencia", listaAsistencia)); }
public int justificar(AsistenciaCLS asistenciaCLS) { int rpta = 0; try { using (var bd = new asistenciaEntities()) { } } catch (Exception) { throw; } return(rpta); }
public ActionResult Filtrar(UsuariosCLS oUsuariosCLS) { string termino = oUsuariosCLS.termino; List <UsuariosCLS> listaUsuarios = new List <UsuariosCLS>(); using (var bd = new asistenciaEntities()) { if (termino == null) { listaUsuarios = (from usuarios in bd.usuarios orderby usuarios.USU_NOMBRES select new UsuariosCLS { idUsuario = usuarios.USU_ID, nombres = usuarios.USU_NOMBRES, usuario = usuarios.USU_USUARIO, perfil = usuarios.USU_PERFIL, estado = (int)usuarios.USU_ESTADO, dia = (int)usuarios.USU_DIA, hora = (int)usuarios.USU_HORA, min = (int)usuarios.USU_MIN, totalAtrasosMes = (int)usuarios.USU_TOTAL_ATRASOS_MES }).ToList(); Session["listaEmpleados"] = listaUsuarios; } else { listaUsuarios = (from usuarios in bd.usuarios where usuarios.USU_NOMBRES.Contains(termino) select new UsuariosCLS { idUsuario = usuarios.USU_ID, nombres = usuarios.USU_NOMBRES, usuario = usuarios.USU_USUARIO, perfil = usuarios.USU_PERFIL, estado = (int)usuarios.USU_ESTADO, dia = (int)usuarios.USU_DIA, hora = (int)usuarios.USU_HORA, min = (int)usuarios.USU_MIN, totalAtrasosMes = (int)usuarios.USU_TOTAL_ATRASOS_MES }).ToList(); Session["listaEmpleados"] = listaUsuarios; } } return(PartialView("_tablaUsuarios", listaUsuarios)); }
// GET: Usuario public ActionResult Index() { int totalAtrasos = 0; //condicion si existe un ID de usuario al hacer login if (Session["Id"] == null) { return(RedirectToAction("Index", "Login")); } if (!(Session["perfil"].Equals("Administrador"))) { return(RedirectToAction("Index", "Login")); } List <UsuariosCLS> listaUsuarios = new List <UsuariosCLS>(); try { using (var bd = new asistenciaEntities()) { listaUsuarios = (from usuarios in bd.usuarios orderby usuarios.USU_NOMBRES select new UsuariosCLS { idUsuario = usuarios.USU_ID, nombres = usuarios.USU_NOMBRES, usuario = usuarios.USU_USUARIO, perfil = usuarios.USU_PERFIL, estado = (int)usuarios.USU_ESTADO, dia = (int)usuarios.USU_DIA, hora = (int)usuarios.USU_HORA, min = (int)usuarios.USU_MIN, totalAtrasosMes = (int)usuarios.USU_TOTAL_ATRASOS_MES }).ToList(); Session["listaEmpleados"] = listaUsuarios; } listaPerfiles(); return(View(listaUsuarios)); } catch (Exception ex) { return(View(ex)); } }
public int aprobar(int id) { int ok = 0; using (var bd = new asistenciaEntities()) { Models.asistencia infoAsistencia = bd.asistencia.Where(p => p.ASI_ID.Equals(id)).First(); infoAsistencia.ASI_ESTADO = 1; infoAsistencia.ASI_ATRASO = 1; ok = bd.SaveChanges(); } return(ok); }
//Editar justificación public JsonResult recuperarDatos(int id) { AsistenciaCLS oAsistenciaCLS = new AsistenciaCLS(); try { using (var bd = new asistenciaEntities()) { Models.asistencia oAsistencia = bd.asistencia.Where(p => p.ASI_ID == id).First(); oAsistenciaCLS.observacion = oAsistencia.ASI_OBSERVACION; } } catch (Exception) { throw; } return(Json(oAsistenciaCLS, JsonRequestBehavior.AllowGet)); }
public JsonResult eliminar(int titulo) { string del; try { using (var bd = new asistenciaEntities()) { usuarios oUsuario = bd.usuarios.Where(p => p.USU_ID == titulo).First(); del = bd.usuarios.Remove(oUsuario).ToString(); bd.SaveChanges(); } return(Json(del, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(Json(e, JsonRequestBehavior.AllowGet)); } }
public int justificar(AsistenciaCLS asistenciaCLS) { int rpta = 0; int idUsuarioSession = (int)Session["Id"]; try { using (var bd = new asistenciaEntities()) { Models.asistencia asi = bd.asistencia.Where(p => p.USU_ID.Equals(idUsuarioSession) && p.ASI_FECHA.Equals(asistenciaCLS.fechaJustificar)).First(); asi.ASI_OBSERVACION = asistenciaCLS.observacion; rpta = bd.SaveChanges(); } } catch (Exception) { throw; } return(rpta); }
public string IngresoHora() { //Declaración de variables int opcion = 1; //HORA ESTABLECIDA POR LA EMPRESA 9:10 COMO MAXIMO, POSTERIOR A ESO CUENTA COMO ATRASO TimeSpan horaEstablecida = new TimeSpan(09, 10, 00); //INFORMACION DEL USUARIO LOGEADO int idUsuarioSession = (int)Session["Id"]; DateTime fechaSession = DateTime.Parse(Session["fechaActual"].ToString()); fechaSession = fechaSession.Date; //GENERACIÓN DE HORA DEL MOMENTO TimeSpan hora = new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second); String ingreso = hora.ToString(); //REGISTRO HORA EN BASE DE DATOS DEL USUARIO LOGEADO Models.asistencia asi = new Models.asistencia(); using (var bd = new asistenciaEntities()) { asi = (from asist in bd.asistencia where asist.USU_ID.Equals(idUsuarioSession) && asist.ASI_FECHA.Equals(fechaSession) select asist).First(); asi.ASI_HORA_INGRESO = hora; asi.ASI_ESTADO = 1; if (hora < horaEstablecida) { asi.ASI_ATRASO = 1; } bd.SaveChanges(); } LogicaHoras(idUsuarioSession, hora, opcion); return(ingreso); }
public JsonResult recuperarDatos(int titulo) { UsuariosCLS oUsuarioCLS = new UsuariosCLS(); try { using (var bd = new asistenciaEntities()) { usuarios oUsuario = bd.usuarios.Where(p => p.USU_ID == titulo).First(); oUsuarioCLS.idUsuario = oUsuario.USU_ID; oUsuarioCLS.usuario = oUsuario.USU_USUARIO; oUsuarioCLS.nombres = oUsuario.USU_NOMBRES; oUsuarioCLS.perfil = oUsuario.USU_PERFIL; } return(Json(oUsuarioCLS, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(Json(e, JsonRequestBehavior.AllowGet)); } }
//Contar numero de atrasos por usuario id public void Atrasos(int id) { int cero = 0; int mes = (int)Session["mes"]; int year = (int)Session["year"]; int numAtrasos; usuarios usu = new usuarios(); using (var bd = new asistenciaEntities()) { numAtrasos = (from asist in bd.asistencia where asist.USU_ID == id && asist.ASI_ATRASO == cero && SqlFunctions.DatePart("month", asist.ASI_FECHA) == mes && SqlFunctions.DatePart("year", asist.ASI_FECHA) == year select asist).Count(); usu = bd.usuarios.Where(p => p.USU_ID.Equals(id)).First(); usu.USU_TOTAL_ATRASOS_MES = numAtrasos; bd.SaveChanges(); } }
// GET: Home public ActionResult Index() { //condicion si existe un ID de usuario al hacer login if (Session["Id"] == null) { return(RedirectToAction("Index", "Login")); } //guardarmos variables de session luego de hacer login en variables locales int idUsuarioSession = (int)Session["Id"]; DateTime fechaSession = DateTime.Parse(Session["fechaActual"].ToString()); List <UsuariosCLS> ListaUsuarios = new List <UsuariosCLS>(); AsistenciaCLS asisCLS = new AsistenciaCLS(); using (var bd = new asistenciaEntities()) { //CONSULTANDO EN BASE DE DATOS SI HAY REGISTROS CON LA FECHA DE HOY int numeroVeces = bd.asistencia.Where(p => p.USU_ID.Equals(idUsuarioSession) && p.ASI_FECHA.Equals(fechaSession)).Count(); //SI NO HAY REGISTRO INGRESA PROCEDE A REGISTRAR if (numeroVeces < 1) { //RECUPERANDO TODOS LOS USUARIOS ListaUsuarios = (from usu in bd.usuarios where usu.USU_ESTADO == 1 select new UsuariosCLS { idUsuario = usu.USU_ID }).ToList(); //AGREGANDO REGISTRO DE FECHA DIARIA POR USUARIO A HISTORIAL foreach (UsuariosCLS usuario in ListaUsuarios) { Models.asistencia asi = new Models.asistencia(); asi.USU_ID = usuario.idUsuario; asi.ASI_FECHA = fechaSession; asi.ASI_ESTADO = 0; asi.ASI_ATRASO = 0; bd.asistencia.Add(asi); bd.SaveChanges(); } } //Actualizar total Atrasos por mes if (Session["perfil"].Equals("Administrador")) { ListaUsuarios = (from usu in bd.usuarios select new UsuariosCLS { idUsuario = usu.USU_ID }).ToList(); foreach (UsuariosCLS usuario in ListaUsuarios) { //Metodo registrrar total atrasos por usuarioz Atrasos(usuario.idUsuario); } } //Recuperando información del registro que sea igual al login Models.asistencia asistenciaUsuario = bd.asistencia.Where(p => p.USU_ID.Equals(idUsuarioSession) && p.ASI_FECHA.Equals(fechaSession)).First(); asisCLS.horaIngreso = asistenciaUsuario.ASI_HORA_INGRESO; asisCLS.horaSalida = asistenciaUsuario.ASI_HORA_SALIDA; } return(View(asisCLS)); }
public void LogicaHoras(int idUuser, TimeSpan hora, int opcion) { int diaU = 0; int horaU = 0; int minU = 0; int minDIF = 0; int horaDIF = 0; int horaTemp = horaU; TimeSpan horaEstablecida; TimeSpan diferenciaHora; TimeSpan cero = new TimeSpan(0, 0, 0, 0); if (opcion == 1) { horaEstablecida = new TimeSpan(09, 00, 00); diferenciaHora = horaEstablecida - hora; } else { horaEstablecida = new TimeSpan(17, 30, 00); diferenciaHora = hora - horaEstablecida; } horaDIF = diferenciaHora.Hours; minDIF = diferenciaHora.Minutes; usuarios usuario = new usuarios(); using (var bd = new asistenciaEntities()) { usuario = (from usu in bd.usuarios where usu.USU_ID.Equals(idUuser) select usu).First(); diaU = (int)usuario.USU_DIA; horaU = (int)usuario.USU_HORA; minU = (int)usuario.USU_MIN; //Condicion suma horas if (diferenciaHora < cero) { if (minU <= 0) { if ((minU + minDIF) <= -60) { minU = 60 + (minU + minDIF); horaTemp = horaU - 1; if (horaTemp <= -24) { diaU -= 1; horaU = 0; } else { horaU -= 1; } } else { minU += minDIF; } } else { if ((minU + minDIF) < 0) { minU = (minU + minDIF); horaTemp = horaU - 1; if (horaTemp <= -24) { diaU -= 1; horaU = 0; } else { horaU -= 1; } } else { minU += minDIF; } } } else { if (minU < 0) { if ((minU + minDIF) >= 0) { minU = minU + minDIF; horaTemp = horaU + 1; if (horaTemp >= 24) { diaU += 1; horaU = 0; } else { horaU += 1; } } else { minU += minDIF; } } else { if ((minU + minDIF) >= 60) { minU = 60 - (minU + minDIF); horaTemp = horaU + 1; if (horaTemp >= 24) { diaU += 1; horaU = 0; } else { horaU += 1; } } else { minU += minDIF; } } } //Condicion suma horas if (diferenciaHora < cero) { if (horaU <= 0) { if ((horaU + horaDIF) <= -24) { horaU = 24 + (horaU + horaDIF); diaU = diaU - 1; } else { horaU += horaDIF; } } else { if ((horaU + horaDIF) < 0) { horaU = (24 + (horaU + horaDIF)) * -1; diaU = diaU - 1; } else { horaU += horaDIF; } } } else { if (horaU < 0) { if ((horaU + horaDIF) >= 0) { horaU += horaDIF; diaU += 1; } else { horaU += horaDIF; } } else { if ((horaU + horaDIF) >= 24) { horaU = (horaU + horaDIF) - 24; diaU += 1; } else { horaU += horaDIF; } } } usuario.USU_DIA = diaU; usuario.USU_HORA = horaU; usuario.USU_MIN = minU; bd.SaveChanges(); } }
public string Guardar(UsuariosCLS oUsuarioCLS, int titulo) { string rpta = ""; try { if (!ModelState.IsValid) { var query = (from state in ModelState.Values from error in state.Errors select error.ErrorMessage).ToList(); rpta += "<p class='text-danger' style='padding: 10px'>CORREGIR:</p><ul class='list-group'>"; foreach (var item in query) { rpta += "<li style='color:red' class='list-group-item'>" + item + "</li>"; } rpta += "</ul>"; } else { using (var bd = new asistenciaEntities()) { if (titulo.Equals(-1)) { usuarios oUsuario = new usuarios(); oUsuario.USU_ID = oUsuarioCLS.idUsuario; oUsuario.USU_NOMBRES = oUsuarioCLS.nombres; oUsuario.USU_USUARIO = oUsuarioCLS.usuario; //inicio encriptado password SHA256Managed sha = new SHA256Managed(); byte[] byteContra = Encoding.Default.GetBytes(oUsuarioCLS.password); byte[] byteContraCifrado = sha.ComputeHash(byteContra); string cadenaContraCifrada = BitConverter.ToString(byteContraCifrado).Replace("-", ""); oUsuario.USU_PASSWORD = cadenaContraCifrada; //fin encriptado password oUsuario.USU_PERFIL = oUsuarioCLS.perfil; oUsuario.USU_ESTADO = 1; oUsuario.USU_FECHA = DateTime.Now; oUsuario.USU_DIA = 0; oUsuario.USU_HORA = 0; oUsuario.USU_MIN = 0; oUsuario.USU_TOTAL_ATRASOS_MES = 0; //Guardar en base de datos bd.usuarios.Add(oUsuario); rpta = bd.SaveChanges().ToString(); if (rpta == "0") { rpta = ""; } } else if (titulo >= 1) { usuarios oUsuario = bd.usuarios.Where(p => p.USU_ID == titulo).First(); oUsuario.USU_USUARIO = oUsuarioCLS.usuario; oUsuario.USU_NOMBRES = oUsuarioCLS.nombres; if (oUsuarioCLS.password != null) { //inicio encriptado password SHA256Managed sha = new SHA256Managed(); byte[] byteContra = Encoding.Default.GetBytes(oUsuarioCLS.password); byte[] byteContraCifrado = sha.ComputeHash(byteContra); string cadenaContraCifrada = BitConverter.ToString(byteContraCifrado).Replace("-", ""); oUsuario.USU_PASSWORD = cadenaContraCifrada; //fin encriptado password } oUsuario.USU_PERFIL = oUsuarioCLS.perfil; rpta = bd.SaveChanges().ToString(); if (rpta == "0") { rpta = ""; } } } } } catch (Exception ex) { return(rpta = "Error" + ex); } return(rpta); }