예제 #1
0
        public IHttpActionResult Create(Models.Marcacion marcacion)
        {
            var agente      = DataBase.Agentes.Get(p => p.Usuario.LogonName == CurrentUser.LogonName).FirstOrDefault();
            var modelInsert = new Rp3.AgendaComercial.Models.Marcacion.Marcacion();
            var existeMarca = DataBase.Marcacions.GetSingleOrDefault(p => p.Fecha == marcacion.Fecha && p.Tipo == marcacion.Tipo && p.IdAgente == agente.IdAgente);

            if (existeMarca == null)
            {
                if (agente != null)
                {
                    try
                    {
                        Rp3.Data.Service.CopyTo(marcacion, modelInsert, includeProperties: new string[] {
                            "TipoTabla",
                            "Tipo",
                            "Fecha",
                            "HoraInicio",
                            "HoraFin",
                            "HoraInicioPlan",
                            "HoraFinPlan",
                            "MinutosAtraso",
                            "EnUbicacion",
                            "LongitudPlan",
                            "LatitudPlan",
                            "Longitud",
                            "Latitud",
                            "IdPermiso"
                        });
                        if (modelInsert.Tipo == Rp3.AgendaComercial.Models.Constantes.TipoMarcacion.InicioJornada1 || modelInsert.Tipo == Rp3.AgendaComercial.Models.Constantes.TipoMarcacion.InicioJornada2)
                        {
                            modelInsert.HoraFin = null;
                        }
                        else
                        {
                            modelInsert.HoraInicio = null;
                        }
                        modelInsert.IdAgente = agente.IdAgente;
                        modelInsert.IdGrupo  = agente.IdGrupo.Value;
                        modelInsert.Ausente  = false;
                        modelInsert.Atraso   = false;
                        modelInsert.AsignarId();
                        modelInsert.FecIng = GetCurrentDateTime();

                        if (marcacion.Permiso != null && marcacion.IdPermiso == 0)
                        {
                            var permisoInsert = new Rp3.AgendaComercial.Models.Marcacion.Permiso();
                            Rp3.Data.Service.CopyTo(marcacion.Permiso, permisoInsert, includeProperties: new string[] {
                                "TipoTabla",
                                "Tipo",
                                "MotivoTabla",
                                "Motivo",
                                "FechaInicio",
                                "FechaFin",
                                "HoraInicio",
                                "HoraFin",
                                "Observacion",
                                "EsPrevio",
                                "EstadoTabla",
                                "Estado"
                            });

                            permisoInsert.AsignarId();
                            modelInsert.IdPermiso  = permisoInsert.IdPermiso;
                            permisoInsert.IdAgente = modelInsert.IdAgente;
                            permisoInsert.IdGrupo  = agente.IdGrupo;
                            permisoInsert.UsrIng   = CurrentUser.LogonName;
                            permisoInsert.FecIng   = GetCurrentDateTime();

                            DataBase.Permisos.Insert(permisoInsert);
                        }
                        if (modelInsert.IdPermiso == 0)
                        {
                            modelInsert.IdPermiso = null;
                        }

                        DataBase.Marcacions.Insert(modelInsert);


                        DataBase.Save();
                    }
                    catch (Exception ex)
                    {
                        return(BadRequest(ex.Message));
                    }
                }
            }
            else
            {
                modelInsert = existeMarca;
            }

            return(Ok(modelInsert.IdMarcacion));
        }
예제 #2
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));
        }
예제 #3
0
        public ActionResult Crear(PermisoEdit permisoEdit)
        {
            try
            {
                DateTime fechaActual = GetCurrentDateTime();

                //CLIENTE/CONTACTO EXISTA
                if (permisoEdit.IdAgente == null && permisoEdit.IdGrupo == null)
                {
                    this.AddErrorMessage(Rp3.AgendaComercial.Resources.ErrorMessageValidation.PermisoAgenteOGrupoRequerido);
                }
                //TIEMPO VALIDACION
                else if (permisoEdit.FechaInicio > permisoEdit.FechaFin)
                {
                    this.AddErrorMessage(Rp3.AgendaComercial.Resources.ErrorMessageValidation.HoraInicioMayorHoraFin);
                }
                else if (permisoEdit.FechaFin < this.GetCurrentDateTime())
                {
                    this.AddErrorMessage(Rp3.AgendaComercial.Resources.ErrorMessageValidation.PermisoPrevioFechaMenorFechaActual);
                }
                else if (String.IsNullOrEmpty(permisoEdit.ObservacionSupervisor))
                {
                    this.AddErrorMessage(Rp3.AgendaComercial.Resources.ErrorMessageValidation.ObservacionSupervisorObligatoria);
                }


                if (!this.MessageCollection.HasError())
                {
                    var model = new Rp3.AgendaComercial.Models.Marcacion.Permiso();

                    model.AsignarId();

                    model.IdAgente = permisoEdit.IdAgente;
                    model.IdGrupo  = permisoEdit.IdGrupo;

                    model.FechaInicio = permisoEdit.FechaInicio.Date;
                    model.FechaFin    = permisoEdit.FechaFin.Date;

                    model.HoraInicio = permisoEdit.FechaInicio;
                    model.HoraFin    = permisoEdit.FechaFin;

                    model.MotivoTabla = Rp3.AgendaComercial.Models.Constantes.MotivoPermiso.Tabla;
                    model.Motivo      = permisoEdit.Motivo;
                    model.TipoTabla   = Rp3.AgendaComercial.Models.Constantes.TipoPermiso.Tabla;
                    model.Tipo        = permisoEdit.Tipo;

                    model.EstadoTabla = Rp3.AgendaComercial.Models.Constantes.EstadoPermiso.Tabla;
                    model.Estado      = Rp3.AgendaComercial.Models.Constantes.EstadoPermiso.Aprobado;

                    model.Observacion           = permisoEdit.Observacion;
                    model.ObservacionSupervisor = permisoEdit.ObservacionSupervisor;

                    model.EsPrevio = true;

                    model.UsrIng = this.UserLogonName;
                    model.FecIng = this.GetCurrentDateTime();

                    DataBase.Permisos.Insert(model);

                    DataBase.Save();

                    try
                    {
                        DataBase.Permisos.Permiso(model.IdPermiso);
                        var agente = DataBase.Agentes.Get(p => p.IdAgente == permisoEdit.IdAgente).FirstOrDefault();
                        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))
                            {
                                var    agenteSup = DataBase.Agentes.Get(p => p.Usuario.LogonName == this.UserLogonName).FirstOrDefault();
                                string footer    = String.Format("Enviada por: {0} - el {1:g}", agenteSup.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
                    {
                    }

                    this.AddDefaultSuccessMessage();
                }
            }
            catch
            {
                this.AddDefaultErrorMessage();
            }

            return(Json());
        }