/// <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;
     }
 }
Beispiel #2
0
        /// <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);
            }
        }
Beispiel #5
0
        /// <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);
            }
        }
Beispiel #6
0
        /// <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);
        }
Beispiel #7
0
        /// <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);
            }
        }
Beispiel #8
0
        /// <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);
        }