Beispiel #1
0
        public IHttpActionResult GetPermisoAprobar()
        {
            var agente = DataBase.Agentes.Get(p => p.Usuario.LogonName == CurrentUser.LogonName).FirstOrDefault();
            List <Models.Permiso> permisos = new List <Models.Permiso>();

            if (agente != null)
            {
                try
                {
                    var agentes    = DataBase.Agentes.GetAgentesPermitidos(this.Agente.IdAgente);
                    var listAgente = agentes.Select(p => p.IdAgente).ToList();
                    var listGrupo  = agentes.Where(p => p.IdUsuario != null).Select(p => p.IdGrupo ?? 0).ToList <int>().Distinct().ToList();
                    var data       = DataBase.Permisos.GetPermisoListado(listAgente, listGrupo, null, null, null, null, Rp3.AgendaComercial.Models.Constantes.EstadoPermiso.Pendiente, false);
                    foreach (PermisoListado listado in data)
                    {
                        Models.Permiso permiso = new Models.Permiso();
                        Rp3.Data.Service.CopyTo(listado, permiso, includeProperties: new string[] {
                            "IdPermiso",
                            "IdAgente",
                            "TipoTabla",
                            "Tipo",
                            "MotivoTabla",
                            "Motivo",
                            "FechaInicio",
                            "FechaFin",
                            "HoraInicio",
                            "HoraFin",
                            "Observacion",
                            "EsPrevio",
                            "EstadoTabla",
                            "Estado",
                            "TipoJornada"
                        });
                        permisos.Add(permiso);
                    }
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }
            }

            return(Ok(permisos));
        }
Beispiel #2
0
        public IHttpActionResult GetPermisoHoy()
        {
            var agente = DataBase.Agentes.Get(p => p.Usuario.LogonName == CurrentUser.LogonName).FirstOrDefault();

            Models.Permiso permiso = null;
            if (agente != null)
            {
                try
                {
                    DateTime desde = DateTime.Now;
                    desde = desde.Subtract(new TimeSpan(0, desde.Hour, desde.Minute, desde.Second + 1, desde.Millisecond));
                    var permisos = DataBase.Permisos.Get(p => p.IdAgente == agente.IdAgente && p.EsPrevio == true &&
                                                         p.Tipo == Rp3.AgendaComercial.Models.Constantes.TipoPermiso.Ausencia && p.Estado == Rp3.AgendaComercial.Models.Constantes.EstadoPermiso.Aprobado &&
                                                         p.FechaInicio >= desde).FirstOrDefault();
                    if (permisos != null)
                    {
                        permiso = new Models.Permiso();
                        Rp3.Data.Service.CopyTo(permisos, permiso, includeProperties: new string[] {
                            "TipoTabla",
                            "Tipo",
                            "MotivoTabla",
                            "Motivo",
                            "FechaInicio",
                            "FechaFin",
                            "HoraInicio",
                            "HoraFin",
                            "Observacion",
                            "EsPrevio",
                            "EstadoTabla",
                            "Estado"
                        });
                    }
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }
            }

            return(Ok(permiso));
        }
Beispiel #3
0
        public IHttpActionResult InsertPermisoPrevio(Models.Permiso permiso)
        {
            var agente        = DataBase.Agentes.Get(p => p.Usuario.LogonName == CurrentUser.LogonName).FirstOrDefault();
            var permisoInsert = new Rp3.AgendaComercial.Models.Marcacion.Permiso();

            if (agente != null)
            {
                try
                {
                    Rp3.Data.Service.CopyTo(permiso, permisoInsert, includeProperties: new string[] {
                        "TipoTabla",
                        "Tipo",
                        "MotivoTabla",
                        "Motivo",
                        "FechaInicio",
                        "FechaFin",
                        "HoraInicio",
                        "HoraFin",
                        "Observacion",
                        "EsPrevio",
                        "EstadoTabla",
                        "Estado"
                    });

                    permisoInsert.AsignarId();
                    permisoInsert.IdAgente = agente.IdAgente;
                    permisoInsert.IdGrupo  = agente.IdGrupo;
                    permisoInsert.UsrIng   = CurrentUser.LogonName;
                    permisoInsert.FecIng   = GetCurrentDateTime();
                    permisoInsert.EsPrevio = true;

                    DataBase.Permisos.Insert(permisoInsert);

                    DataBase.Save();

                    try
                    {
                        DataBase.Permisos.Permiso(permisoInsert.IdPermiso);
                    }
                    catch
                    {
                    }

                    try
                    {
                        if (agente != null && agente.IdSupervisor != null)
                        {
                            var device = DataBase.Devices.Get(p => p.IdUsuario == agente.Supervisor.IdUsuario).FirstOrDefault();

                            if (device != null && !String.IsNullOrEmpty(device.GCMId))
                            {
                                string footer = String.Format("Enviada por: {0} - el {1:g}", agente.Descripcion, this.GetCurrentDateTime());
                                AndroidNotificationPusher.PushNotification(device.GCMId, "Solicitud de Justificación", String.Format("{0} ha solicitado una Justificación.", agente.Descripcion), "APROBAR_JUSTIFICACION", footer);
                            }
                        }
                    }
                    catch
                    {
                    }
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }
            }

            return(Ok(permisoInsert.IdPermiso));
        }