public IHttpActionResult PutStatusVentana(int id, StatusVentana statusVentana)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != statusVentana.Id)
            {
                return(BadRequest());
            }

            db.Entry(statusVentana).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!StatusVentanaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public ActionResult Create(StatusVentana statusVentana)
        {
            if (ModelState.IsValid)
            {
                PersonaServicio personaServicio      = new PersonaServicio();
                IRespuestaServicio <Persona> persona = personaServicio.GetPersona(User.Identity.GetUserId());

                if (persona.EjecucionCorrecta)
                {
                    statusVentana.IdResponsable = persona.Respuesta.Id;
                }

                var IdSubCategoria = db.Ventana.Where(x => x.Id == statusVentana.IdVentana).Select(x => x.IdSubCategoria).FirstOrDefault();

                WorkFlowServicio workflowServicio          = new WorkFlowServicio();
                IRespuestaServicio <WorkFlowView> workFlow = workflowServicio.nextEstatus(IdSubCategoria, statusVentana.IdStatus, false);

                statusVentana.IdStatus = workFlow.Respuesta.EstatusSiguiente.Id;
                statusVentana.Fecha    = DateTime.Now;
                if (statusVentana.Comentarios == null)
                {
                    statusVentana.Comentarios = " ";
                }
                db.StatusVentana.Add(statusVentana);
                db.SaveChanges();

                var ventana = db.Ventana
                              .Include(v => v.StatusVentana)
                              .Include(v => v.StatusVentana.Select(s => s.Status))
                              .Include(v => v.BitacoraVentana)
                              .Include(v => v.BitacoraVentana.Select(b => b.Estatus))
                              .Include(v => v.BitacoraVentana.Select(b => b.Rechazo))
                              .Include(v => v.Evento)
                              .Include(v => v.Proveedor)
                              .Where(x => x.Id == statusVentana.IdVentana)
                              .FirstOrDefault();

                try
                {
                    UsuarioServicio     usuarioServicio = new UsuarioServicio();
                    NotificationService notify          = new NotificationService();

                    string senders = usuarioServicio.GetEmailByStatus(ventana);

                    if (senders != "")
                    {
                        EmailService emailService = new EmailService();
                        emailService.SendMail(senders, ventana);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }

                return(RedirectToAction("Index", "Evento", new { Area = "Operaciones" }));
            }

            return(View(statusVentana));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            StatusVentana statusVentana = db.StatusVentana.Find(id);

            db.StatusVentana.Remove(statusVentana);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public IHttpActionResult GetStatusVentana(int id)
        {
            StatusVentana statusVentana = db.StatusVentana.Find(id);

            if (statusVentana == null)
            {
                return(NotFound());
            }

            return(Ok(statusVentana));
        }
        public ActionResult Edit(StatusVentana statusVentana)
        {
            if (ModelState.IsValid)
            {
                db.Entry(statusVentana).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.IdStatus      = new SelectList(db.Estatus.Select(x => new { Id = x.Id, Nombre = x.Nombre }).OrderBy(x => x.Nombre), "Id", "Nombre", statusVentana.IdStatus);
            ViewBag.IdVentana     = new SelectList(db.Ventana.Select(x => new { Id = x.Id, PO = x.PO }).OrderBy(x => x.PO), "Id", "PO", statusVentana.IdVentana);
            ViewBag.IdResponsable = new SelectList(db.Personas.Select(x => new { Id = x.Id, Nombre = x.Nombre + " " + x.Apellido1 + " " + x.Apellido1 }).OrderBy(x => x.Nombre), "Id", "Nombre", statusVentana.IdResponsable);
            return(View(statusVentana));
        }
        public Boolean changeEstatus(Ventana ventana)
        {
            if (ModelState.IsValid)
            {
                var estatus = new Estatus();

                estatus = db.StatusVentana
                          .Where(s => (s.IdVentana == ventana.Id))
                          .OrderByDescending(s => s.Fecha)
                          .Select(s => s.Status)
                          .FirstOrDefault();

                if (estatus == null)
                {
                    estatus = db.Estatus
                              .Where(e => e.IdCategoria == (db.SubCategoria.Where(s => s.Id == ventana.IdSubCategoria).Select(s => s.IdCategoria).FirstOrDefault()))
                              .FirstOrDefault();
                }

                WorkFlowServicio workflowServicio          = new WorkFlowServicio();
                IRespuestaServicio <WorkFlowView> workFlow = workflowServicio.nextEstatus(ventana.IdSubCategoria, estatus.Id, false);

                if (workFlow.EjecucionCorrecta)
                {
                    PersonaServicio personaServicio      = new PersonaServicio();
                    IRespuestaServicio <Persona> persona = personaServicio.GetPersona(User.Identity.GetUserId());

                    StatusVentana statusVentana = new StatusVentana();
                    statusVentana.IdVentana     = ventana.Id;
                    statusVentana.IdResponsable = persona.Respuesta.Id;

                    if (estatus.Id == 0)
                    {
                        statusVentana.IdStatus = workFlow.Respuesta.EstatusInicial.Id;
                    }
                    else
                    {
                        statusVentana.IdStatus = workFlow.Respuesta.EstatusSiguiente.Id;
                    }

                    statusVentana.Fecha       = DateTime.Now;
                    statusVentana.Comentarios = " ";
                    db.StatusVentana.Add(statusVentana);
                    db.SaveChanges();
                }

                return(true);
            }
            return(false);
        }
        public IHttpActionResult DeleteStatusVentana(int id)
        {
            StatusVentana statusVentana = db.StatusVentana.Find(id);

            if (statusVentana == null)
            {
                return(NotFound());
            }

            db.StatusVentana.Remove(statusVentana);
            db.SaveChanges();

            return(Ok(statusVentana));
        }
        public bool changeStatus(Evento evento)
        {
            Ventana ventana = db.Ventana
                              .Include(v => v.StatusVentana)
                              .Include(v => v.StatusVentana.Select(s => s.Status))
                              .Include(v => v.BitacoraVentana)
                              .Include(v => v.BitacoraVentana.Select(b => b.Estatus))
                              .Include(v => v.BitacoraVentana.Select(b => b.Rechazo))
                              .Include(v => v.Evento)
                              .Include(v => v.Proveedor)
                              .SingleOrDefault(x => x.IdEvento == evento.Id);

            if (ventana != null)
            {
                try
                {
                    WorkFlowServicio workflowServicio          = new WorkFlowServicio();
                    IRespuestaServicio <WorkFlowView> workFlow = workflowServicio.nextEstatus(ventana.IdSubCategoria, ventana.StatusVentana.OrderByDescending(x => x.Fecha).Select(x => x.IdStatus).FirstOrDefault(), false);

                    StatusVentana statusVentana = new StatusVentana();
                    statusVentana.IdResponsable = evento.IdAsignador;
                    statusVentana.IdStatus      = workFlow.Respuesta.EstatusSiguiente.Id;
                    statusVentana.IdVentana     = ventana.Id;
                    statusVentana.Fecha         = DateTime.Now;
                    statusVentana.Comentarios   = "Se reagenda ventana";
                    db.StatusVentana.Add(statusVentana);
                    db.SaveChanges();

                    UsuarioServicio     usuarioServicio = new UsuarioServicio();
                    NotificationService notify          = new NotificationService();

                    string       senders      = usuarioServicio.GetEmailByStatus(ventana);
                    EmailService emailService = new EmailService();
                    emailService.SendMail(senders, ventana);
                    return(true);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }

            return(false);
        }
        // GET: Operaciones/StatusVentana/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            StatusVentana statusVentana = db.StatusVentana.Find(id);

            if (statusVentana == null)
            {
                return(HttpNotFound());
            }

            ViewBag.IdStatus      = new SelectList(db.Estatus.Select(x => new { Id = x.Id, Nombre = x.Nombre }).OrderBy(x => x.Nombre), "Id", "Nombre");
            ViewBag.IdVentana     = new SelectList(db.Ventana.Select(x => new { Id = x.Id, PO = x.PO }).OrderBy(x => x.PO), "Id", "PO");
            ViewBag.IdResponsable = new SelectList(db.Personas.Select(x => new { Id = x.Id, Nombre = x.Nombre + " " + x.Apellido1 + " " + x.Apellido1 }).OrderBy(x => x.Nombre), "Id", "Nombre");

            return(View(statusVentana));
        }
Exemple #10
0
        public bool saveStatusVentana(BitacoraVentana bitacoraVentana)
        {
            StatusVentana statusVentana = new StatusVentana();

            statusVentana.IdResponsable = bitacoraVentana.IdResponsable;
            statusVentana.IdStatus      = bitacoraVentana.IdStatus;
            statusVentana.IdVentana     = bitacoraVentana.IdVentana;
            statusVentana.Fecha         = bitacoraVentana.Fecha;
            statusVentana.Comentarios   = bitacoraVentana.Comentarios;
            db.StatusVentana.Add(statusVentana);
            db.SaveChanges();

            Ventana ventana = db.Ventana
                              .Include(v => v.StatusVentana)
                              .Include(v => v.StatusVentana.Select(s => s.Status))
                              .Include(v => v.BitacoraVentana)
                              .Include(v => v.BitacoraVentana.Select(b => b.Estatus))
                              .Include(v => v.BitacoraVentana.Select(b => b.Rechazo))
                              .Include(v => v.Evento)
                              .Include(v => v.Proveedor)
                              .SingleOrDefault(x => x.Id == statusVentana.IdVentana);

            try
            {
                UsuarioServicio     usuarioServicio = new UsuarioServicio();
                NotificationService notify          = new NotificationService();

                string       senders      = usuarioServicio.GetEmailByStatus(ventana);
                EmailService emailService = new EmailService();
                emailService.SendMail(senders, ventana);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            return(true);
        }
        public IHttpActionResult PostStatusVentana(StatusVentana statusVentana)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var IdSubCategoria = db.Ventana.Where(x => x.Id == statusVentana.IdVentana).Select(x => x.IdSubCategoria).FirstOrDefault();
                var IdActualStatus = db.StatusVentana.OrderByDescending(x => x.Fecha).Where(x => x.IdVentana == statusVentana.IdVentana).Select(x => x.IdStatus).FirstOrDefault();

                WorkFlowServicio workflowServicio          = new WorkFlowServicio();
                IRespuestaServicio <WorkFlowView> workFlow = workflowServicio.nextEstatus(IdSubCategoria, IdActualStatus, false);

                statusVentana.IdStatus = workFlow.Respuesta.EstatusSiguiente.Id;
                statusVentana.Fecha    = DateTime.Now;
                db.StatusVentana.Add(statusVentana);
                db.SaveChanges();

                var ventana = db.Ventana
                              .Include(v => v.StatusVentana)
                              .Include(v => v.StatusVentana.Select(s => s.Status))
                              .Include(v => v.BitacoraVentana)
                              .Include(v => v.BitacoraVentana.Select(b => b.Estatus))
                              .Include(v => v.BitacoraVentana.Select(b => b.Rechazo))
                              .Include(v => v.Evento)
                              .Where(x => x.Id == statusVentana.IdVentana)
                              .FirstOrDefault();

                UsuarioServicio     usuarioServicio = new UsuarioServicio();
                NotificationService notify          = new NotificationService();

                string senders = usuarioServicio.GetEmailByStatus(ventana);

                if (senders != "")
                {
                    EmailService emailService = new EmailService();
                    emailService.SendMail(senders, ventana);
                }

                List <DispositivoView> dispositivos = usuarioServicio.GetDispositivoByEvento(statusVentana.Ventana.IdEvento);
                List <string>          llaves       = dispositivos.Select(x => x.Llave).ToList();
                var estatus = ventana.StatusVentana.OrderByDescending(s => s.Fecha).Select(s => s.Status).FirstOrDefault();

                if (llaves.Count > 0)
                {
                    foreach (string notificacion in llaves)
                    {
                        notify.SendPushNotification(notificacion, " Cambio de estatus Ventana: " + ventana.Evento.Descripcion + ". ", " Cambio de estatus a " + estatus.Nombre);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            StatusVentana statusVentanaAdded = db.StatusVentana.Find(statusVentana.Id);

            return(Ok(statusVentanaAdded));
        }