public ActionResult DeleteConfirmed(int id, ActiCumplimiento X)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    ViewBag.Id       = new SelectList(db.Users, "Id", "Pers_Nom1");
                    ViewBag.Empr_Nit = new SelectList(db.Tb_Empresa, "Empr_Nit", "Empr_Nom");
                    ViewBag.Frec_Id  = new SelectList(db.Tb_Frecuencia, "Frec_Id", "Frec_Nom");
                    ViewBag.Oemp_Id  = new SelectList(db.Tb_ObjEmpresa, "Oemp_Id", "Oemp_Nombre");
                    ViewBag.Peri_Id  = new SelectList(db.Tb_Periodo, "Peri_Id", "Peri_Nom");
                    X = db.Tb_ActiCumplimiento.Find(id);

                    if (X == null)
                    {
                        return(HttpNotFound());
                    }
                    else
                    {
                        db.Tb_ActiCumplimiento.Remove(X);
                        db.SaveChanges();
                    }
                    return(RedirectToAction("Index"));
                }
                return(View(X));
            }
            catch
            {
                return(View(X));
            }
        }
 public ActionResult Delete(int?id)
 {
     ViewBag.Id       = new SelectList(db.Users, "Id", "Pers_Nom1");
     ViewBag.Empr_Nit = new SelectList(db.Tb_Empresa, "Empr_Nit", "Empr_Nom");
     ViewBag.Frec_Id  = new SelectList(db.Tb_Frecuencia, "Frec_Id", "Frec_Nom");
     ViewBag.Oemp_Id  = new SelectList(db.Tb_ObjEmpresa, "Oemp_Id", "Oemp_Nombre");
     ViewBag.Peri_Id  = new SelectList(db.Tb_Periodo, "Peri_Id", "Peri_Nom");
     if (id == null)
     {
         return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
     }
     else
     {
         ViewBag.Id       = new SelectList(db.Users, "Id", "Pers_Nom1");
         ViewBag.Empr_Nit = new SelectList(db.Tb_Empresa, "Empr_Nit", "Empr_Nom");
         ViewBag.Frec_Id  = new SelectList(db.Tb_Frecuencia, "Frec_Id", "Frec_Nom");
         ViewBag.Oemp_Id  = new SelectList(db.Tb_ObjEmpresa, "Oemp_Id", "Oemp_Nombre");
         ViewBag.Peri_Id  = new SelectList(db.Tb_Periodo, "Peri_Id", "Peri_Nom");
         ActiCumplimiento X = db.Tb_ActiCumplimiento.Find(id);
         if (X == null)
         {
             return(HttpNotFound());
         }
         else
         {
             return(View(X));
         }
     }
 }
        // GET: ActividadCumplimiento/Details/5
        /// <summary>
        /// Lista la descripcion de una actividad perteneciente a un plan de trabajo asignados a una empresa
        /// </summary>
        /// <param name="id">Recibe el id de la actividad a buscar </param>
        /// <returns>Retorna el viewmodel ViewModelActividadCumplimiento </returns>
        public ActionResult Details(int id, int?idpt)
        {
            ActiCumplimiento  list      = db.Tb_ActiCumplimiento.Find(id);
            ObjEmpresa        objetivo  = db.Tb_ObjEmpresa.Where(obj => obj.Oemp_Id == list.Oemp_Id).FirstOrDefault();
            ApplicationUser   usuario   = db.Users.Find(list.Id);
            Frecuencia        frec      = db.Tb_Frecuencia.Find(list.Frec_Id);
            ProgamacionTareas statetask = db.Tb_ProgamacionTareas.Where(est => est.Id == idpt).FirstOrDefault();

            ViewData["obj_name"]  = objetivo.Oemp_Nombre;
            ViewData["username"]  = usuario.Pers_Nom1 + "" + usuario.Pers_Nom2 + "" + usuario.Pers_Apel1 + "" + usuario.Pers_Apel2;
            ViewData["frec_name"] = frec.Frec_Descripcion;
            ViewData["idpt"]      = idpt;
            string fechaeje = Convert.ToString(statetask.Fechaeje);

            ViewData["fprog"] = statetask.FechaHora;
            if (fechaeje == "01/01/1900 0:00:00")
            {
                ViewData["fejec"] = "No se ha ejecutado";
            }
            else
            {
                ViewData["fejec"] = statetask.Fechaeje;
            }
            var estado = statetask.Finalizada;

            if (estado == true)
            {
                ViewData["statetask"] = 1;
            }
            else
            {
                ViewData["statetask"] = null;
            }
            return(View(list));
        }
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ActiCumplimiento actiCumplimiento = db.Tb_ActiCumplimiento.Find(id);

            if (actiCumplimiento == null)
            {
                return(HttpNotFound());
            }
            return(View(actiCumplimiento));
        }
 public ActionResult Edit([Bind(Include = "Acum_Id,Acum_Desc,Acum_Porcentest,Acum_Ejec,Acum_Registro,Acum_IniAct,Acum_FinAct,Oemp_Id,Id,Peri_Id,Empr_Nit,Frec_Id")] ActiCumplimiento actiCumplimiento)
 {
     if (ModelState.IsValid)
     {
         db.Entry(actiCumplimiento).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.Id       = new SelectList(db.Users, "Id", "Pers_Nom1", actiCumplimiento.Id);
     ViewBag.Empr_Nit = new SelectList(db.Tb_Empresa, "Empr_Nit", "Empr_Nom", actiCumplimiento.Empr_Nit);
     ViewBag.Frec_Id  = new SelectList(db.Tb_Frecuencia, "Frec_Id", "Frec_Nom", actiCumplimiento.Frec_Id);
     ViewBag.Oemp_Id  = new SelectList(db.Tb_ObjEmpresa, "Oemp_Id", "Oemp_Nombre", actiCumplimiento.Oemp_Id);
     ViewBag.Peri_Id  = new SelectList(db.Tb_Periodo, "Peri_Id", "Peri_Nom", actiCumplimiento.Peri_Id);
     return(View(actiCumplimiento));
 }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ActiCumplimiento actiCumplimiento = db.Tb_ActiCumplimiento.Find(id);

            if (actiCumplimiento == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Id       = new SelectList(db.Users, "Id", "Pers_Nom1", actiCumplimiento.Id);
            ViewBag.Empr_Nit = new SelectList(db.Tb_Empresa, "Empr_Nit", "Empr_Nom", actiCumplimiento.Empr_Nit);
            ViewBag.Frec_Id  = new SelectList(db.Tb_Frecuencia, "Frec_Id", "Frec_Nom", actiCumplimiento.Frec_Id);
            ViewBag.Oemp_Id  = new SelectList(db.Tb_ObjEmpresa, "Oemp_Id", "Oemp_Nombre", actiCumplimiento.Oemp_Id);
            ViewBag.Peri_Id  = new SelectList(db.Tb_Periodo, "Peri_Id", "Peri_Nom", actiCumplimiento.Peri_Id);
            return(View(actiCumplimiento));
        }
        public ActionResult Crear([Bind(Include = "NombreActividad,Meta,FechaInicial,FechaFinal,hora,Frecuencia,idObjetivo,Frecuencia_desc,period,weekly_0,weekly_1,weekly_2,weekly_3,weekly_4,weekly_5,weekly_6,retornar,asigrecursos,IdUser,idPlanDeTrabajo")] ViewModelActividadCumplimiento model)
        {
            // TODO: Add insert logic here
            Empresa empresa = db.Tb_Empresa.Where(e => e.Empr_Nit == AccountData.NitEmpresa).FirstOrDefault();

            ApplicationUser usuario = db.Users.Find(AccountData.UsuarioId);
            // resolvemos el dia de la semana segun el checkbox seleccionado
            string dias = "";

            if (model.weekly_0 != null)
            {
                dias += "lunes,";
            }
            if (model.weekly_1 != null)
            {
                dias += "martes,";
            }
            if (model.weekly_2 != null)
            {
                dias += "miercoles,";
            }
            if (model.weekly_3 != null)
            {
                dias += "jueves,";
            }
            if (model.weekly_4 != null)
            {
                dias += "viernes,";
            }
            if (model.weekly_5 != null)
            {
                dias += "sabado,";
            }
            if (model.weekly_6 != null)
            {
                dias += "domingo,";
            }

            // TODO: Add insert logic here
            ActiCumplimiento actcumplimiento = new ActiCumplimiento
            {
                Acum_Desc       = model.NombreActividad,
                Acum_Porcentest = model.Meta,
                Acum_IniAct     = model.FechaInicial,
                Acum_FinAct     = model.FechaFinal,
                Oemp_Id         = model.idObjetivo,
                Acum_Registro   = DateTime.Now,
                Id           = model.IdUser,
                Frec_Id      = Convert.ToInt32(model.Frecuencia),
                Peri_Id      = 6,
                Empr_Nit     = empresa.Empr_Nit,
                Repeticiones = model.period,
                DiasSemana   = dias,
                HoraAct      = model.hora,
                Finalizada   = false,
                asigrecursos = model.asigrecursos
            };

            db.Tb_ActiCumplimiento.Add(actcumplimiento);

            db.SaveChanges();
            /// adicionamos el usuario asignado responsable para la actividad
            UsuariosPlandetrabajo user = new UsuariosPlandetrabajo
            {
                Acum_Id = actcumplimiento.Acum_Id,
                Plat_Id = model.idPlanDeTrabajo,
                Emp_Id  = AccountData.NitEmpresa,
                Id      = model.IdUser
            };

            db.Tb_UsersPlandeTrabajo.Add(user);
            db.SaveChanges();
            //Generamos la programacion de tareas en el tiempo.
            generateAppoiment(model, actcumplimiento.Acum_Id);

            var link = model.retornar;

            return(Redirect(link));
        }
        public ActionResult Edit([Bind(Include = "IdEmpresa,IdActiCumplimiento,NombreActividad,Meta,FechaInicial,FechaFinal,hora,Frecuencia,idObjetivo,Frecuencia_desc,period,weekly_0,weekly_1,weekly_2,weekly_3,weekly_4,weekly_5,weekly_6,retornar,asigrecursos,Finalizada,IdUser")] ViewModelActividadCumplimiento model)
        {
            UsuariosPlandetrabajo uplant = db.Tb_UsersPlandeTrabajo.Where(e => e.Acum_Id == model.IdActiCumplimiento).FirstOrDefault();
            Empresa empresa = db.Tb_Empresa.Where(e => e.Empr_Nit == AccountData.NitEmpresa).FirstOrDefault();

            ApplicationUser usuario        = db.Users.Find(AccountData.UsuarioId);
            string          dias           = "";
            string          periodo        = model.Frecuencia;
            string          frecuenciadesc = "";

            if (model.weekly_0 != null)
            {
                dias += "lunes,";
            }
            if (model.weekly_1 != null)
            {
                dias += "martes,";
            }
            if (model.weekly_2 != null)
            {
                dias += "miercoles,";
            }
            if (model.weekly_3 != null)
            {
                dias += "jueves,";
            }
            if (model.weekly_4 != null)
            {
                dias += "viernes,";
            }
            if (model.weekly_5 != null)
            {
                dias += "sabado,";
            }
            if (model.weekly_6 != null)
            {
                dias += "domingo,";
            }

            if (periodo == "1")
            {
                frecuenciadesc = "norepeat";
            }
            else if (periodo == "2")
            {
                frecuenciadesc = "daily";
            }
            else if (periodo == "3")
            {
                frecuenciadesc = "weekly";
            }
            else if (periodo == "4")
            {
                frecuenciadesc = "monthly";
            }
            else if (periodo == "8")
            {
                frecuenciadesc = "bimestral";
            }
            else if (periodo == "9")
            {
                frecuenciadesc = "trimestral";
            }
            else if (periodo == "10")
            {
                frecuenciadesc = "semestral";
            }
            model.Frecuencia_desc = frecuenciadesc;

            // TODO: Add insert logic here
            ActiCumplimiento actcumplimiento = new ActiCumplimiento
            {
                Acum_Id         = model.IdActiCumplimiento,
                Acum_Ejec       = null,
                Acum_Desc       = model.NombreActividad,
                Acum_Porcentest = model.Meta,
                Acum_IniAct     = model.FechaInicial,
                Acum_FinAct     = model.FechaFinal,
                Oemp_Id         = model.idObjetivo,
                Acum_Registro   = DateTime.Now,
                Id           = model.IdUser,
                Frec_Id      = Convert.ToInt32(model.Frecuencia),
                Peri_Id      = 6,
                Empr_Nit     = empresa.Empr_Nit,
                Repeticiones = model.period,
                DiasSemana   = dias,
                HoraAct      = model.hora,
                asigrecursos = model.asigrecursos,
                Finalizada   = model.Finalizada
            };


            db.Entry(actcumplimiento).State = EntityState.Modified;
            db.SaveChanges();

            var prog = db.Tb_ProgamacionTareas.Where(e => e.ActiCumplimiento_Id == actcumplimiento.Acum_Id).ToList();

            foreach (var program in prog)
            {
                program.Estado = false;
            }

            db.SaveChanges();
            generateAppoiment(model, actcumplimiento.Acum_Id);



            //Generamos la programacion de tareas en el tiempo.

            return(RedirectToAction("Index"));
        }