示例#1
0
        public ActionResult AlterStatus(int id, int status)
        {
            int       error; //If 0 then error
            TaksAdmon info = tickets.GetRawTicket(id);

            if (info.IdEstatusTaks != 3 && info.IdEstatusTaks != 4) //Cuando el ticket no se ha cerrado aún
            {
                switch (status)
                {
                case 2:
                    info.IdEstatusTaks = status;
                    break;

                case 3:
                    info.IdEstatusTaks = status;
                    info.FCierre       = DateTime.Now;
                    //notify.CreateNotification(string.Format("ha marcado tu ticket ({0}) como", info.Asunto), "Aprobado", info.IdTaks.ToString(), info.Creadopor, int.Parse(Session["IdUser"].ToString()), "check_circle");
                    notify.CreateNotification(string.Format("ha marcado tu ticket ({0}) como", info.Asunto), "Completado", Url.Action("TicketDetail", "Tickets", new { ticketID = info.IdTaks }), info.Creadopor, int.Parse(Session["IdUser"].ToString()), "check_circle", true);
                    break;

                case 4:
                    info.IdEstatusTaks = status;
                    info.FCierre       = DateTime.Now;
                    //notify.CreateNotification(string.Format("ha marcado tu ticket ({0}) como", info.Asunto), "Rechazado", info.IdTaks.ToString(), info.Creadopor, int.Parse(Session["IdUser"].ToString()), "check_circle");
                    notify.CreateNotification(string.Format("ha marcado tu ticket ({0}) como", info.Asunto), "Cancelado", Url.Action("TicketDetail", "Tickets", new { ticketID = info.IdTaks }), info.Creadopor, int.Parse(Session["IdUser"].ToString()), "check_circle", true);
                    break;

                case 5:
                    if (info.IdEstatusTaks != 5)
                    {
                        info.IdEstatusTaks = status;
                        //notify.CreateNotification("ha revisado tu ticket ", string.Format("({0})", info.Asunto), info.IdTaks.ToString(), info.Creadopor, int.Parse(Session["IdUser"].ToString()), "cancel");
                        notify.CreateNotification("ha revisado tu ticket ", string.Format("({0})", info.Asunto), Url.Action("TicketDetail", "Tickets", new { ticketID = info.IdTaks }), info.Creadopor, int.Parse(Session["IdUser"].ToString()), "cancel", true);
                    }
                    break;
                }
            }
            else if (status == 3 || status == 4) //Cuando se ha cerrado el ticket, actualizar
            {
                info.IdEstatusTaks = status;
                switch (status)
                {
                case 3:
                    //notify.CreateNotification(string.Format("ha marcado tu ticket ({0}) como", info.Asunto), "Aprobado", info.IdTaks.ToString(), info.Creadopor, int.Parse(Session["IdUser"].ToString()), "check_circle");
                    notify.CreateNotification(string.Format("ha marcado tu ticket ({0}) como", info.Asunto), "Completado", Url.Action("TicketDetail", "Tickets", new { ticketID = info.IdTaks }), info.Creadopor, int.Parse(Session["IdUser"].ToString()), "check_circle", true);
                    break;

                case 4:
                    //notify.CreateNotification(string.Format("ha marcado tu ticket ({0}) como", info.Asunto), "Rechazado", info.IdTaks.ToString(), info.Creadopor, int.Parse(Session["IdUser"].ToString()), "cancel");
                    notify.CreateNotification(string.Format("ha marcado tu ticket ({0}) como", info.Asunto), "Cancelado", Url.Action("TicketDetail", "Tickets", new { ticketID = info.IdTaks }), info.Creadopor, int.Parse(Session["IdUser"].ToString()), "cancel", true);
                    break;
                }

                info.FCierre    = DateTime.Now;
                info.IdAtencion = int.Parse(Session["IdUser"].ToString());
            }

            error = tickets.ChangeStatus(info); //Cambiamos el estado del ticket

            return(Json(new
            {
                msg = "Successfully added "
            }));
        }