public ActionResult ReporteMensual(int?ciudadId, int?facilityId, int?planProgramaticoId, int?cuentaContableId, int?contraparteId, int?codigoAuditoriaId, int?accionNacionalId, int?territorioId, string descripcion, string notasAdicionales, bool tieneCobertura = false) { var listaPlanProgramatico = planProgramaticoManager.GetAllPlan(); if (facilityId != null) { listaPlanProgramatico = planProgramaticoManager.GetPlanByFacility(facilityId.Value); } // Parámetros ViewBag.CiudadId = new SelectList(ciudadesManager.GetAllCiudades(), "Id", "Nombre"); ViewBag.FacilityId = ciudadId != null ? new SelectList(facilitiesManager.GetFacilitiesPorCiudad(ciudadId.Value), "Id", "NombreDespliegue") : new SelectList(facilitiesManager.GetAllFacilities(), "Id", "NombreDespliegue"); ViewBag.PlanProgramaticoId = new SelectList(listaPlanProgramatico, "Id", "NombreLista", new object(), planProgramaticoManager.GetParentsPlanIds()); ViewBag.CuentaContableId = new SelectList(cuentasContablesManager.GetAllCuentasContables(), "Id", "NombreDespliegue"); ViewBag.ContraparteId = new SelectList(new ContrapartesManager().GetAllContrapartes(), "Id", "NombreDespliegue"); ViewBag.CodigoAuditoriaId = new SelectList(new CodigosAuditoriasManager().GetAllCodigosAuditoria(), "Id", "Descripcion"); ViewBag.AccionNacionalId = new SelectList(new AccionesNacionalesManager().GetAllAccionesNacionales(), "Id", "NombreDespliegue"); ViewBag.TerritorioId = new SelectList(new TerritoriosManager().GetAllTerritorios(), "Id", "NombreDespliegue"); var presupuestoActual = presupuestosManager.GetPresupuestoActual(); ViewBag.CiudadOrigenId = ciudadId; var reporte = reportesManager.GetReportePresupuestoMensual(presupuestoActual.Id, ciudadId, facilityId); //Filtros reporte = FiltrarReporteMensual(reporte, planProgramaticoId, cuentaContableId, contraparteId, codigoAuditoriaId, accionNacionalId, territorioId, descripcion, notasAdicionales); reporte = tieneCobertura ? reporte.Where(r => r.Recurso.Cobertura.HasValue && r.Recurso.Cobertura.Value > 0).ToList() : reporte.Where(r => !r.Recurso.Cobertura.HasValue || r.Recurso.Cobertura.Value == 0).ToList(); ViewBag.TotalReporte = reporte.Sum(r => r.Recurso.Monto); ViewBag.TotalReporteCobertura = reporte.Sum(r => r.Recurso.Cobertura); ViewBag.TieneCobertura = tieneCobertura; return(View(reporte)); }