public ActionResult Create([Bind(Include = "ID_actividadBeneficiario,LocalBeneficiaryID,FCPID,ID_eje,ID_categoria,ID_actividadPrincipal,ID_actividadSecundaria,ID_resultado,ID_precondicionTOC,Fecha,Fecha_actualizacion,Comentarios")] Tb_ActividadesBeneficiarios tb_ActividadesBeneficiarios)
 {
     tb_ActividadesBeneficiarios.Fecha = DateTime.UtcNow;
     tb_ActividadesBeneficiarios.Fecha_actualizacion = DateTime.UtcNow;
     if (tb_ActividadesBeneficiarios.Comentarios == null)
     {
         tb_ActividadesBeneficiarios.Comentarios = "";
     }
     try
     {
         db.Tb_ActividadesBeneficiarios.Add(tb_ActividadesBeneficiarios);
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     catch {
         ViewBag.ID_actividadPrincipal  = new SelectList(db.Tb_ActividadesPrincipales, "ID_actividadPrincipal", "Nombre");
         ViewBag.ID_actividadSecundaria = new SelectList(db.Tb_ActividadesSecundarias, "ID_actividadSecundaria", "Nombre_corto");
         ViewBag.LocalBeneficiaryID     = new SelectList(db.Tb_Beneficiarios, "LocalBeneficiaryID", "AccountName");
         ViewBag.ID_categoria           = new SelectList(db.Tb_Categorias, "ID_categoria", "Nombre");
         ViewBag.FCPID              = new SelectList(db.Tb_CDI, "FCPID", "NombreCDI");
         ViewBag.ID_eje             = new SelectList(db.Tb_EjesEstrategicos, "ID_eje", "Nombre");
         ViewBag.ID_precondicionTOC = new SelectList(db.Tb_PrecondicionesTOC, "ID_precondicionTOC", "Nombre");
         ViewBag.ID_resultado       = new SelectList(db.Tb_Resultados, "ID_resultado", "Nombre");
         return(View(tb_ActividadesBeneficiarios));
     }
 }
        public ActionResult Delete(int id)
        {
            Tb_ActividadesBeneficiarios tb_ActividadesBeneficiarios = db.Tb_ActividadesBeneficiarios.Find(id);

            db.Tb_ActividadesBeneficiarios.Remove(tb_ActividadesBeneficiarios);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        // GET: ActividadesDinamicas/Edit/5
        public ActionResult Edit(int id)
        {
            if (cls_session.checkSession())
            {
                Tb_Usuarios activeuser = Session["activeUser"] as Tb_Usuarios;
                ViewBag.usuario = activeuser;
                //NOTIFICATIONS
                //List<Tb_Alerts> lstAlerts = (from a in db.Tb_Alerts where (a.ID_user == activeuser.ID_User && a.Active == true) select a).OrderByDescending(x => x.Date).Take(4).ToList();
                //ViewBag.notifications = lstAlerts;
                //FILTROS VARIABLES
                DateTime now = DateTime.Today;
                DateTime filtrostartdate;
                DateTime filtroenddate;
                ////filtros de fecha (MENSUAL)
                var sunday   = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
                var saturday = sunday.AddMonths(1).AddDays(-1);

                if (activeuser.FechaInicioPeriodos == null)
                {
                    filtrostartdate = sunday;
                }
                else
                {
                    filtrostartdate = Convert.ToDateTime(activeuser.FechaInicioPeriodos);
                }
                if (activeuser.FechaFinalPeriodos == null)
                {
                    filtroenddate = saturday;
                }
                else
                {
                    filtroenddate = Convert.ToDateTime(activeuser.FechaFinalPeriodos);
                }

                ViewBag.filtrofechastart = filtrostartdate.ToShortDateString();
                ViewBag.filtrofechaend   = filtroenddate.ToShortDateString();

                Tb_ActividadesBeneficiarios tb_ActividadesBeneficiarios = db.Tb_ActividadesBeneficiarios.Find(id);
                var plantilla = "Sin asignar";
                List <Tb_ActividadesDetalles> detalles = new List <Tb_ActividadesDetalles>();
                if (tb_ActividadesBeneficiarios.ID_plantilla != 0)
                {
                    detalles  = (from a in db.Tb_ActividadesDetalles where (a.ID_actividadBeneficiario == id) select a).ToList();
                    plantilla = (from a in db.Tb_Plantillas where (a.ID_plantilla == tb_ActividadesBeneficiarios.ID_plantilla) select a).FirstOrDefault().Nombre;
                }
                ViewBag.detalles     = detalles;
                ViewBag.ID_resultado = (from b in db.Tb_Resultados where (b.ID_actividadSecundaria == tb_ActividadesBeneficiarios.ID_actividadSecundaria && b.Activo == true)select new SelectItemOption {
                    ID = b.ID_resultado, Descripcion = b.Nombre
                }).OrderBy(b => b.Descripcion).ToList();
                ViewBag.plantilla    = plantilla;

                return(View(tb_ActividadesBeneficiarios));
            }
            else
            {
                return(RedirectToAction("Login", "Auth", new { access = false }));
            }
        }
        public ActionResult CrearActividad(int eje, int ID_categoria, int ID_Secundaria, int ID_Principal, string ID_beneficiario, string ID_CDI, int ID_Plantilla)
        {
            try
            {
                var actividad = db.Tb_ActividadesSecundarias.Find(ID_Secundaria);



                Tb_ActividadesBeneficiarios nuevaActividadBeneficiario = new Tb_ActividadesBeneficiarios();
                nuevaActividadBeneficiario.LocalBeneficiaryID = ID_beneficiario;
                nuevaActividadBeneficiario.FCPID = ID_CDI;

                nuevaActividadBeneficiario.ID_eje                = actividad.Tb_ActividadesPrincipales.Tb_Categorias.ID_eje;
                nuevaActividadBeneficiario.ID_categoria          = actividad.Tb_ActividadesPrincipales.ID_categoria;
                nuevaActividadBeneficiario.ID_actividadPrincipal = actividad.ID_actividadPrincipal;

                nuevaActividadBeneficiario.ID_actividadSecundaria = ID_Secundaria;
                nuevaActividadBeneficiario.ID_plantilla           = ID_Plantilla;
                nuevaActividadBeneficiario.ID_resultado           = 1;            //por defecto
                nuevaActividadBeneficiario.ID_precondicionTOC     = 1;            //por defecto
                nuevaActividadBeneficiario.Fecha = DateTime.UtcNow;               //por defecto
                nuevaActividadBeneficiario.Fecha_actualizacion = DateTime.UtcNow; //por defecto
                nuevaActividadBeneficiario.Comentarios         = "";              //por defecto
                nuevaActividadBeneficiario.ID_usuario          = 1;               //por defecto
                nuevaActividadBeneficiario.parent = 0;                            //por defecto
                nuevaActividadBeneficiario.masiva = false;                        //por defecto
                db.Tb_ActividadesBeneficiarios.Add(nuevaActividadBeneficiario);
                db.SaveChanges();

                //Evaluamos si utilizara plantilla
                if (ID_Plantilla != 0)
                {
                    //buscamos detalles
                    List <Tb_ActividadesDetalles> nuevalista = new List <Tb_ActividadesDetalles>();
                    var detalles = (from a in db.Tb_ActividadesDetalles where (a.ID_plantilla == ID_Plantilla && a.Original == true) select a).ToList();
                    foreach (var item in detalles)
                    {
                        Tb_ActividadesDetalles nuevoreg = new Tb_ActividadesDetalles();
                        nuevoreg          = item;
                        nuevoreg.Original = false;
                        nuevoreg.ID_actividadSecundaria   = ID_Secundaria;
                        nuevoreg.ID_actividadBeneficiario = nuevaActividadBeneficiario.ID_actividadBeneficiario;
                        nuevalista.Add(nuevoreg);
                    }
                    db.Tb_ActividadesDetalles.AddRange(nuevalista);
                    db.SaveChanges();
                }


                var result = new { mensaje = "success", id_actividadBeneficiario = nuevaActividadBeneficiario.ID_actividadBeneficiario };
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            catch
            {
                var result = new { mensaje = "error" };
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
        }
        // GET: ActividadesDinamicas/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Tb_ActividadesBeneficiarios tb_ActividadesBeneficiarios = db.Tb_ActividadesBeneficiarios.Find(id);

            if (tb_ActividadesBeneficiarios == null)
            {
                return(HttpNotFound());
            }
            return(View(tb_ActividadesBeneficiarios));
        }
 public ActionResult Edit([Bind(Include = "ID_actividadBeneficiario,LocalBeneficiaryID,FCPID,ID_eje,ID_categoria,ID_actividadPrincipal,ID_actividadSecundaria,ID_resultado,ID_precondicionTOC,Fecha,Fecha_actualizacion,Comentarios")] Tb_ActividadesBeneficiarios tb_ActividadesBeneficiarios)
 {
     if (ModelState.IsValid)
     {
         db.Entry(tb_ActividadesBeneficiarios).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ID_actividadPrincipal  = new SelectList(db.Tb_ActividadesPrincipales, "ID_actividadPrincipal", "Codigo", tb_ActividadesBeneficiarios.ID_actividadPrincipal);
     ViewBag.ID_actividadSecundaria = new SelectList(db.Tb_ActividadesSecundarias, "ID_actividadSecundaria", "Codigo", tb_ActividadesBeneficiarios.ID_actividadSecundaria);
     ViewBag.LocalBeneficiaryID     = new SelectList(db.Tb_Beneficiarios, "LocalBeneficiaryID", "BeneficiaryICPID", tb_ActividadesBeneficiarios.LocalBeneficiaryID);
     ViewBag.ID_eje       = new SelectList(db.Tb_Categorias, "ID_categoria", "Codigo", tb_ActividadesBeneficiarios.ID_eje);
     ViewBag.FCPID        = new SelectList(db.Tb_CDI, "FCPID", "Direccion", tb_ActividadesBeneficiarios.FCPID);
     ViewBag.ID_eje       = new SelectList(db.Tb_EjesEstrategicos, "ID_eje", "Codigo", tb_ActividadesBeneficiarios.ID_eje);
     ViewBag.ID_resultado = new SelectList(db.Tb_PrecondicionesTOC, "ID_precondicionTOC", "Codigo", tb_ActividadesBeneficiarios.ID_resultado);
     ViewBag.ID_resultado = new SelectList(db.Tb_Resultados, "ID_resultado", "Codigo", tb_ActividadesBeneficiarios.ID_resultado);
     return(View(tb_ActividadesBeneficiarios));
 }
        public ActionResult CrearActividadMasiva(int ID_Secundaria, string ID_CDI, int ID_Plantilla, string beneficiarios)
        {
            try
            {
                Tb_Usuarios   activeuser                  = Session["activeUser"] as Tb_Usuarios;
                List <string> lstbeneficiarios            = beneficiarios.Split(',').ToList <string>();
                List <Tb_ActividadesBeneficiarios> lstAdd = new List <Tb_ActividadesBeneficiarios>();
                var actividad = db.Tb_ActividadesSecundarias.Find(ID_Secundaria);
                var count     = 0;
                var parent    = 0;
                foreach (var itembenef in lstbeneficiarios)
                {
                    Tb_ActividadesBeneficiarios nuevaActividadBeneficiario = new Tb_ActividadesBeneficiarios();
                    nuevaActividadBeneficiario.LocalBeneficiaryID = itembenef;
                    nuevaActividadBeneficiario.FCPID = ID_CDI;

                    nuevaActividadBeneficiario.ID_eje                = actividad.Tb_ActividadesPrincipales.Tb_Categorias.ID_eje;
                    nuevaActividadBeneficiario.ID_categoria          = actividad.Tb_ActividadesPrincipales.ID_categoria;
                    nuevaActividadBeneficiario.ID_actividadPrincipal = actividad.ID_actividadPrincipal;

                    nuevaActividadBeneficiario.ID_actividadSecundaria = ID_Secundaria;
                    nuevaActividadBeneficiario.ID_plantilla           = ID_Plantilla;
                    nuevaActividadBeneficiario.ID_resultado           = 1;                  //por defecto
                    nuevaActividadBeneficiario.ID_precondicionTOC     = 1;                  //por defecto
                    nuevaActividadBeneficiario.Fecha = DateTime.UtcNow;                     //por defecto
                    nuevaActividadBeneficiario.Fecha_actualizacion = DateTime.UtcNow;       //por defecto
                    nuevaActividadBeneficiario.Comentarios         = "";                    //por defecto
                    nuevaActividadBeneficiario.ID_usuario          = activeuser.ID_usuario; //por defecto
                    if (count == 0)
                    {
                        nuevaActividadBeneficiario.parent = 0;    //por defecto
                        nuevaActividadBeneficiario.masiva = true; //por defecto
                    }
                    else
                    {
                        nuevaActividadBeneficiario.parent = parent; //por defecto
                        nuevaActividadBeneficiario.masiva = true;   //por defecto
                    }

                    db.Tb_ActividadesBeneficiarios.Add(nuevaActividadBeneficiario);
                    db.SaveChanges();
                    if (count == 0)
                    {
                        parent = nuevaActividadBeneficiario.ID_actividadBeneficiario;
                        count  = 1;
                    }

                    //Evaluamos si utilizara plantilla
                    if (ID_Plantilla != 0)
                    {
                        //buscamos detalles
                        List <Tb_ActividadesDetalles> nuevalista = new List <Tb_ActividadesDetalles>();
                        var detalles = (from a in db.Tb_ActividadesDetalles where (a.ID_plantilla == ID_Plantilla && a.Original == true) select a).ToList();
                        foreach (var item in detalles)
                        {
                            Tb_ActividadesDetalles nuevoreg = new Tb_ActividadesDetalles();
                            nuevoreg          = item;
                            nuevoreg.Original = false;
                            nuevoreg.ID_actividadSecundaria   = ID_Secundaria;
                            nuevoreg.ID_actividadBeneficiario = nuevaActividadBeneficiario.ID_actividadBeneficiario;
                            nuevalista.Add(nuevoreg);
                        }
                        db.Tb_ActividadesDetalles.AddRange(nuevalista);
                        db.SaveChanges();
                    }


                    //lstAdd.Add(nuevaActividadBeneficiario);
                }



                var result = new { mensaje = "success", id_actividadBeneficiario = parent };
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                var result = new { mensaje = "error" };
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
        }