/// <summary> /// Lista los planes de trabajos con su correspondiente actividades que tiene una empresa /// </summary> /// <param name="id">Recibe el id del plan de trabajo a buscar </param> /// <returns>Retorna el viewmodel PlandetrabajoActividadesViewModel </returns> // GET: PlandeTrabajo/Details/5 public ActionResult Detalles(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var plantrabajo = db.Tb_PlandeTrabajo.Find(id); var actividadesEmpresa = db.Tb_ActiCumplimiento.Where(c => c.Empr_Nit == AccountData.NitEmpresa).ToList(); List <ActiCumplimiento> actiCumplimientoSinAsignar = new List <ActiCumplimiento>(); List <ActividadesAsignadasPlanDeTrabajoViewModel> actiCumplimientoAsignados = new List <ActividadesAsignadasPlanDeTrabajoViewModel>(); foreach (var item in actividadesEmpresa) { var useractividadpt = db.Tb_UsersPlandeTrabajo.Where(c => c.Acum_Id == item.Acum_Id).ToList(); if (useractividadpt.Count <= 0) { actiCumplimientoSinAsignar.Add(item); } else { var cumplimientoPlanDetrabajo = db.Tb_UsersPlandeTrabajo.Where(c => c.Plat_Id == id && c.Acum_Id == item.Acum_Id).ToList(); if (cumplimientoPlanDetrabajo.Count > 0) { var user = db.Tb_UsersPlandeTrabajo.First(c => c.Acum_Id == item.Acum_Id); var nombre = db.Users.Find(user.Id); ActividadesAsignadasPlanDeTrabajoViewModel temp = new ActividadesAsignadasPlanDeTrabajoViewModel { IdUserPlanDeTrabajoActividad = user.Uspl_Id, NombreUser = nombre.Pers_Nom1 + " " + nombre.Pers_Apel1, IdPlantTrabajo = plantrabajo.Plat_Id, IdActiCumplimiento = item.Acum_Id, DescripcionCumplimiento = item.Acum_Desc, NombrePlanTrabajo = plantrabajo.Plat_Nom }; actiCumplimientoAsignados.Add(temp); } } } PlandetrabajoActividadesViewModel plandetrabajoActividades = new PlandetrabajoActividadesViewModel { NombrePlanTrabajo = plantrabajo.Plat_Nom, IdPlantTrabajo = plantrabajo.Plat_Id, FechaInicio = plantrabajo.FechaInicio, FechaFin = plantrabajo.FechaFin }; ViewBag.actividadesAsignadas = actiCumplimientoAsignados; return(View(plandetrabajoActividades)); }
/// <summary> /// lista y pagina las actividades que tiene un plan de trabajo dependiendo de la pagina /// </summary> /// <param name="IdPlantTrabajo">recibe el id del plan de trabajo</param> /// <param name="pagina">recibe la pagina actual en la que se esta paginando</param> /// <returns>retorna un objeto de tipo paginadorcustomer que contiene la paginacion y el objeto a paginar</returns> public ActionResult Actividadesplantra(int IdPlantTrabajo, int pagina = 1) { var plantrabajo = db.Tb_PlandeTrabajo.Find(IdPlantTrabajo); ViewBag.users = new SelectList(db.Users.Where(c => c.Empr_Nit == AccountData.NitEmpresa), "Id", "Pers_Nom1"); var actividadesEmpresa = db.Tb_ActiCumplimiento.Where(c => c.Empr_Nit == AccountData.NitEmpresa).ToList(); List <ActiCumplimiento> actiCumplimientoSinAsignar = new List <ActiCumplimiento>(); List <ActividadesAsignadasPlanDeTrabajoViewModel> actiCumplimientoAsignados = new List <ActividadesAsignadasPlanDeTrabajoViewModel>(); foreach (var item in actividadesEmpresa) { var useractividadpt = db.Tb_UsersPlandeTrabajo.Where(c => c.Acum_Id == item.Acum_Id).ToList(); if (useractividadpt.Count <= 0) { actiCumplimientoSinAsignar.Add(item); } else { var cumplimientoPlanDetrabajo = db.Tb_UsersPlandeTrabajo.Where(c => c.Plat_Id == IdPlantTrabajo && c.Acum_Id == item.Acum_Id).ToList(); if (cumplimientoPlanDetrabajo.Count > 0) { var user = db.Tb_UsersPlandeTrabajo.First(c => c.Acum_Id == item.Acum_Id); var nombre = db.Users.Find(user.Id); ActividadesAsignadasPlanDeTrabajoViewModel temp = new ActividadesAsignadasPlanDeTrabajoViewModel { IdUserPlanDeTrabajoActividad = user.Uspl_Id, NombreUser = nombre.Pers_Nom1 + " " + nombre.Pers_Apel1, IdPlantTrabajo = plantrabajo.Plat_Id, IdActiCumplimiento = item.Acum_Id, DescripcionCumplimiento = item.Acum_Desc, NombrePlanTrabajo = plantrabajo.Plat_Nom }; actiCumplimientoAsignados.Add(temp); } } } ViewBag.actividades = new SelectList(actiCumplimientoSinAsignar, "Acum_Id", "Acum_Desc"); PlandetrabajoActividadesViewModel plandetrabajoActividades = new PlandetrabajoActividadesViewModel { NombrePlanTrabajo = plantrabajo.Plat_Nom, IdPlantTrabajo = plantrabajo.Plat_Id }; int _TotalRegistros = 0; _TotalRegistros = actiCumplimientoAsignados.Count(); actiCumplimientoAsignados = actiCumplimientoAsignados.Skip((pagina - 1) * _RegistrosPorPaginaActividades) .Take(_RegistrosPorPaginaActividades) .ToList(); int _TotalPaginas = (int)Math.Ceiling((double)_TotalRegistros / _RegistrosPorPaginaActividades); _PaginadorCustomersActividades = new PaginadorGenerico <ActividadesAsignadasPlanDeTrabajoViewModel>() { RegistrosPorPagina = _RegistrosPorPaginaActividades, TotalRegistros = _TotalRegistros, TotalPaginas = _TotalPaginas, PaginaActual = pagina, Resultado = actiCumplimientoAsignados }; ViewBag.actividadesAsignadas = _PaginadorCustomersActividades; return(View(plandetrabajoActividades)); }