/// <summary> /// Notifica si el usuario cerrò sesiòn desde el dispositivo /// </summary> /// <param name="UsuarioId">Usuario</param> /// <param name="Logged">Estatus de login</param> public static mUsuarios PostSession(int UsuarioId, bool Logged) { try { var _usr = new mUsuarios(); using (var db = new SaptraEntities()) { var user = (from usr in db.mUsuarios where usr.cEstatus1.NombreEstatus == Globals.EST_ACTIVO && usr.UsuarioId == UsuarioId && Globals.CAT_TIPO_FIGURA.Contains(usr.cTipoFiguras1.DescripcionTipoFigura) select usr).FirstOrDefault(); if (user != null) { user.LoggedUsuario = Logged; db.SaveChanges(); _usr = user; db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; } } return(_usr); } catch (Exception ex) { throw ex; } }
/// <summary> /// Obtener Periodo actual /// </summary> /// <returns>periodo actual en base a fecha del sistema</returns> public static List <cPeriodos> GetPeriodo() { var periodos = new List <cPeriodos>(); try { using (var db = new SaptraEntities()) { var currentDate = DateTime.Now.Date; periodos = (from per in db.cPeriodos //join est in db.cEstatus on per.EstatusId equals est.EstatusId //join tes in db.cTipoEstatus on est.TipoEstatusId equals tes.TipoEstatusId where /*est.NombreEstatus == Globals.EST_ACTIVO && * tes.nombreTipoEstatus == Globals.TES_BORRADO_LOGICO &&*/ (currentDate >= per.FechaInicio && currentDate <= per.FechaFin) select per).ToList(); db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; } return(periodos); } catch (Exception ex) { throw new ApplicationException(ex.Message, ex); } }
/// <summary> /// Login de app /// </summary> /// <param name="usuario">Modelo de usuario</param> /// <returns>modelo de usaurio con información de registro</returns> public static mUsuarios GetLogin(mUsuarios usuario) { var loggedUser = new mUsuarios(); try { using (var db = new SaptraEntities()) { var user = (from usr in db.mUsuarios where usr.cEstatus1.NombreEstatus == Globals.EST_ACTIVO && usr.LoginUsuario == usuario.LoginUsuario && usr.PasswordUsuario == usuario.PasswordUsuario && Globals.CAT_TIPO_FIGURA.Contains(usr.cTipoFiguras1.DescripcionTipoFigura) select usr).FirstOrDefault(); if (user != null) { loggedUser = user; loggedUser.cTipoFiguras1 = new cTipoFiguras() { DescripcionTipoFigura = loggedUser.cTipoFiguras1.DescripcionTipoFigura }; db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; } } return(loggedUser); } catch (Exception ex) { throw ex; } }
/// <summary> /// Obtener listado de Tipos de Acividades /// </summary> /// <returns>Lista de tipos de actividades</returns> public static List <cTipoActividades> GetTipoActividades() { var tipoActividad = new List <cTipoActividades>(); try { using (var db = new SaptraEntities()) { tipoActividad = (from tac in db.cTipoActividades join est in db.cEstatus on tac.EstatusId equals est.EstatusId join tes in db.cTipoEstatus on est.TipoEstatusId equals tes.TipoEstatusId where (est.NombreEstatus == Globals.EST_ACTIVO && tes.nombreTipoEstatus == Globals.TES_BORRADO_LOGICO) && tac.RequiereCheckIn == true select tac).ToList(); db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; } return(tipoActividad); } catch (Exception ex) { throw new ApplicationException(ex.Message, ex); } }
/// <summary> /// Obtener Planeacion Semanal /// </summary> /// <param name="PeriodoId">Id del periodo</param> /// <param name="UsuarioId">Id de usuario</param> /// <returns>Lista de planeacion semanal por periodo y usuario</returns> public static List <mPlanSemanal> GetPlanSemanal(int PeriodoId, int UsuarioId) { var planSemanal = new List <mPlanSemanal>(); try { using (var db = new SaptraEntities()) { planSemanal = (from ple in db.mPlanSemanal join pld in db.dDetallePlanSemanal on ple.PlanSemanalId equals pld.PlanSemanalId where ple.UsuarioCreacionId == UsuarioId && ple.PeriodoId == PeriodoId && ple.EstatusId == 2 select ple).Distinct().ToList(); planSemanal.ForEach(i => { i.cPeriodos = new cPeriodos() { PeriodoId = i.PeriodoId, DecripcionPeriodo = i.cPeriodos.DecripcionPeriodo }; }); db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; } return(planSemanal); } catch (Exception ex) { throw new ApplicationException(ex.Message, ex); } }
/// <summary> /// Obtener listado de CheckIns realizados (incluye actividades especiales) /// </summary> /// <param name="PeriodoId"></param> /// <param name="UsuarioId"></param> /// <returns></returns> public static List <LecturaCertificado> GetCheckInsRealizados(int PeriodoId, int UsuarioId) { var checks = new List <LecturaCertificado>(); try { using (var db = new SaptraEntities()) { var checkIns = (from chk in db.mCheckIn join pld in db.dDetallePlanSemanal on chk.DetallePlanId equals pld.DetallePlanId join ple in db.mPlanSemanal on pld.PlanSemanalId equals ple.PlanSemanalId where ple.UsuarioCreacionId == UsuarioId && ple.PeriodoId == PeriodoId select chk).ToList(); if (checkIns.Count() > 0) { checkIns.ForEach(i => { var _cert = db.mLecturaCertificados .Where(c => c.CheckInId == i.CheckInId).FirstOrDefault(); checks.Add(new LecturaCertificado() { //CheckIn CheckIn = new CheckIn() { CheckInId = i.CheckInId.ToString(), FechaCreacion = i.FechaCreacion.ToLongDateString(), UsuarioCreacionId = i.UsuarioCreacionId, Coordenadas = i.Coordenadas, dDetallePlanSemanal = new dDetallePlanSemanal() { DetallePlanId = i.DetallePlanId }, Incidencias = i.Incidencias, ImageData = Globals.GetImgBase64(i.FotoIncidencia), FotoIncidencia = i.FotoIncidencia, State = "S", UUID = "" }, //LecturaCertificado LecturaCertificadoId = _cert != null ? _cert.LecturaCertificadoId : 0, FechaCreacion = _cert != null ? _cert.FechaCreacion.ToLongDateString() : "", UsuarioCreacionId = _cert != null ? _cert.UsuarioCreacionId : 0, FolioCertificado = _cert != null ? _cert.FolioCertificado : "", State = "S", UUID = "" }); }); } db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; } } catch (Exception ex) { throw new ApplicationException(ex.Message, ex); } return(checks); }
/// <summary> /// Obtener Detalle de Planeacion Semanal /// </summary> /// <param name="PeriodoId">Id del periodo</param> /// <param name="UsuarioId">Id de usuario</param> /// <returns>Lista de detalle de planeacion semanal por periodo y usuario</returns> public static List <dDetallePlanSemanal> GetDetallePlanSemanal(int PeriodoId, int UsuarioId) { var detallePlanSemanal = new List <dDetallePlanSemanal>(); try { using (var db = new SaptraEntities()) { detallePlanSemanal = (from pld in db.dDetallePlanSemanal join pls in db.mPlanSemanal on pld.PlanSemanalId equals pls.PlanSemanalId where pls.UsuarioCreacionId == UsuarioId && pls.PeriodoId == PeriodoId && pls.EstatusId == 2 && pld.cTipoActividades.RequiereCheckIn == true select pld).ToList(); detallePlanSemanal.ForEach(i => { i.mPlanSemanal = new mPlanSemanal() { PlanSemanalId = i.PlanSemanalId, DescripcionPlaneacion = i.mPlanSemanal.DescripcionPlaneacion }; i.cTipoActividades = new cTipoActividades() { TipoActividadId = i.cTipoActividades.TipoActividadId, NombreActividad = i.cTipoActividades.NombreActividad, DescripcionActividad = i.cTipoActividades.DescripcionActividad, RequiereCheckIn = i.cTipoActividades.RequiereCheckIn, ActividadEspecial = i.cTipoActividades.ActividadEspecial, Mensaje = i.cTipoActividades.Mensaje }; }); db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; } return(detallePlanSemanal); } catch (Exception ex) { throw new ApplicationException(ex.Message, ex); } }
/// <summary> /// Post de CheckIns recibidos desde el móvil /// </summary> /// <param name="checks">Lista de checkins a sincronizar</param> /// <returns>Lista de checkins sincronizados</returns> public static List <LecturaCertificado> PostCheckIns(List <LecturaCertificado> checks) { try { if (checks.Count() > 0) { using (var db = new SaptraEntities()) { foreach (var obj in checks) { //Validar si checkin ya ha sido enviado anteriormente var existe_checkin = db.mCheckIn.Where(x => x.UsuarioCreacionId == obj.CheckIn.UsuarioCreacionId && x.DetallePlanId == obj.CheckIn.dDetallePlanSemanal.DetallePlanId && x.UUID.Equals(obj.CheckIn.UUID)).FirstOrDefault(); if (existe_checkin != null) { obj.CheckIn.State = "S"; obj.CheckIn.ImageData = ""; obj.CheckIn.CheckInId = existe_checkin.CheckInId.ToString(); obj.State = "S"; var Certificado = db.mLecturaCertificados.Where(x => x.CheckInId == existe_checkin.CheckInId).FirstOrDefault(); obj.LecturaCertificadoId = Certificado != null ? Certificado.LecturaCertificadoId : 0; continue; } var new_check = new mCheckIn() { FechaCreacion = DateTime.Parse(obj.CheckIn.FechaCreacion), UsuarioCreacionId = obj.CheckIn.UsuarioCreacionId, Coordenadas = obj.CheckIn.Coordenadas, DetallePlanId = obj.CheckIn.dDetallePlanSemanal.DetallePlanId, Incidencias = obj.CheckIn.Incidencias, FotoIncidencia = Globals.PathImage(obj.CheckIn.ImageData), UUID = obj.CheckIn.UUID }; db.mCheckIn.Add(new_check); db.SaveChanges(); if (new_check.CheckInId > 0) { obj.CheckIn.ImageData = ""; obj.CheckIn.State = "S"; obj.CheckIn.CheckInId = new_check.CheckInId.ToString(); if (obj.UUID.ToString().Equals(obj.CheckIn.UUID)) { var new_certificado = new mLecturaCertificados() { FechaCreacion = DateTime.Parse(obj.FechaCreacion), UsuarioCreacionId = obj.UsuarioCreacionId, FolioCertificado = obj.FolioCertificado, CheckInId = new_check.CheckInId, EstatusId = 5, UUID = obj.UUID }; db.mLecturaCertificados.Add(new_certificado); db.SaveChanges(); if (new_certificado.LecturaCertificadoId > 0) { obj.State = "S"; obj.LecturaCertificadoId = new_certificado.LecturaCertificadoId; //Insertar en mysql var user = db.mUsuarios.Where(u => u.UsuarioId == new_certificado.UsuarioCreacionId).FirstOrDefault(); if (user != null) { //Se insenta insertar en Mysql, el resultado del intento se actualiza en la entidad bool _insert = MySQLDB.PostCheckIn(new_certificado.FolioCertificado, user.RFCUsuario); var _certificado = db.mLecturaCertificados.Where(s => s.LecturaCertificadoId == new_certificado.LecturaCertificadoId).FirstOrDefault(); _certificado.SincronizadoMySQL = _insert; db.SaveChanges(); } } } } } } } } catch (Exception ex) { throw ex; } return(checks); }