public JsonResult EnviarPlan(int idPlan, int idUsuario)
        {
            try
            {
                var result = (from ps in db.mPlanSemanal
                              where ps.PlanSemanalId == idPlan
                              select ps).ToList();

                //Actualiza a estatus Enviado
                var dbTemp = result.First();
                dbTemp.EstatusId = 10;
                db.SaveChanges();

                //Revisa coordinador de zona al que pertenece
                var coordinador = (from co in db.mCoordinacionZonaUsuario
                                   where co.UsuarioId == idUsuario
                                   select co).FirstOrDefault();

                var coordinacionJefe = (from co in db.mCoordinacionZonaUsuario
                                        where co.CoordinacionZonaId == coordinador.CoordinacionZonaId &&
                                        co.JefeCoordinacionZona == true
                                        select co).FirstOrDefault();

                //Genera notificacion de validacion
                mNotificaciones objNotificaciones = new mNotificaciones();

                objNotificaciones.EstatusId                 = 3;
                objNotificaciones.TipoNotificacionId        = 1;
                objNotificaciones.PlanSemanalId             = idPlan;
                objNotificaciones.UsuarioId                 = idUsuario;
                objNotificaciones.CoordinacionZonaUsuarioId = coordinacionJefe.CordinacionZonaUsuarioId;
                objNotificaciones.FechaCreacion             = DateTime.Now;
                db.mNotificaciones.Add(objNotificaciones);
                db.SaveChanges();

                //Actualiza a estatus Inactiva para la notificacion de con comentarios
                var notificacion = (from n in db.mNotificaciones
                                    where n.PlanSemanalId == idPlan &&
                                    n.TipoNotificacionId == 3 &&
                                    n.EstatusId == 3
                                    select n).ToList();

                if (notificacion.Count() > 0)
                {
                    var dbTempNot = notificacion.First();
                    dbTempNot.EstatusId = 4;
                    db.SaveChanges();
                }

                return(Json(new { Success = true, idPlan = idPlan, Message = "enviado correctamente para revisión " }));
            }
#pragma warning disable CS0168 // La variable 'exp' se ha declarado pero nunca se usa
            catch (Exception exp)
#pragma warning restore CS0168 // La variable 'exp' se ha declarado pero nunca se usa
            {
                return(Json(new { Success = false, Message = "Error al enviar la información" }));
            }
        }
 public ByARpt PostTokenNotificacion(bObjetoNotificaciones ObjNotificaciones)
 {
     mNotificaciones o = new mNotificaciones();
     return o.PostTokenNotificaciones(ObjNotificaciones);
 }
 public ByARpt Post(bObjetoNotificaciones obj)
 {
     mNotificaciones o = new mNotificaciones();
     return o.PostTokenNotificaciones(obj);
 }
        public JsonResult FeedbackPlan(int idPlan, int idUsuario, List <ComentariosFeedback> jsCommentarios)
        {
            try
            {
                var result = (from ps in db.mPlanSemanal
                              where ps.PlanSemanalId == idPlan
                              select ps).FirstOrDefault();

                //Actualiza a estatus con comentarios
                var dbTemp = result;
                dbTemp.EstatusId = 8;
                db.SaveChanges();

                //Revisa coordinador de zona al que pertenece
                //var coordinador = (from co in db.mCoordinacionZonaUsuario
                //                   where co.UsuarioId == idUsuario
                //                   select co).FirstOrDefault();


                var coordinacionJefe = (from co in db.mCoordinacionZonaUsuario
                                        where co.UsuarioId == result.UsuarioCreacionId &&
                                        co.JefeCoordinacionZona == false
                                        select co).FirstOrDefault();

                //Genera notificacion de con comentarios
                mNotificaciones objNotificaciones = new mNotificaciones();

                objNotificaciones.EstatusId                 = 3;
                objNotificaciones.TipoNotificacionId        = 3;
                objNotificaciones.PlanSemanalId             = idPlan;
                objNotificaciones.UsuarioId                 = result.UsuarioCreacionId;
                objNotificaciones.CoordinacionZonaUsuarioId = coordinacionJefe.CordinacionZonaUsuarioId;
                objNotificaciones.FechaCreacion             = DateTime.Now;
                db.mNotificaciones.Add(objNotificaciones);
                db.SaveChanges();

                //Actualiza a estatus Inactiva para la notificacion de validacion
                var notificacion = (from n in db.mNotificaciones
                                    where n.PlanSemanalId == idPlan &&
                                    n.TipoNotificacionId == 1 &&
                                    n.EstatusId == 3
                                    select n).ToList();

                var dbTempNot = notificacion.First();
                dbTempNot.EstatusId = 4;
                db.SaveChanges();

                if (jsCommentarios != null)
                {
                    foreach (ComentariosFeedback objComentarios in jsCommentarios)
                    {
                        var resultDetallePlan = (from ps in db.dDetallePlanSemanal
                                                 where ps.DetallePlanId == objComentarios.id
                                                 select ps).FirstOrDefault();

                        //Actualiza a estatus con comentarios
                        var    dbTempDetalle = resultDetallePlan;
                        string comentarioAnt = (dbTempDetalle.ComentariosNoValidacion == null ? "" : dbTempDetalle.ComentariosNoValidacion + ", ");
                        dbTempDetalle.ComentariosNoValidacion = comentarioAnt + objComentarios.comentario;
                        db.SaveChanges();
                    }
                }


                return(Json(new { Success = true, idPlan = idPlan, Message = "enviado correctamente para revisión " }));
            }
#pragma warning disable CS0168 // La variable 'exp' se ha declarado pero nunca se usa
            catch (Exception exp)
#pragma warning restore CS0168 // La variable 'exp' se ha declarado pero nunca se usa
            {
                return(Json(new { Success = false, Message = "Error al guardar la información" }));
            }
        }