public ActionResult ExportarReporteMensual(int?ciudadId, int?facilityId,
                                                   int?planProgramaticoId, int?cuentaContableId, int?contraparteId, int?codigoAuditoriaId, int?accionNacionalId, int?territorioId,
                                                   string descripcion, string notasAdicionales,
                                                   bool tieneCobertura = false)
        {
            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();

            // Exportar Excel
            string templateDocument = System.Web.HttpContext.Current.Server.MapPath("~/Templates/I02-ReporteMensual.xlsx");

            var report = reportesManager.ExportReportePresupuestoMensual(templateDocument, reporte);

            return(File(report.ToArray(), "application/octet-stream", string.Format("SOS-ReporteMensual-{0}{1}{2}.xlsx", DateTime.Now.Year, DateTime.Now.Month.ToString().PadLeft(2, '0'), DateTime.Now.Day.ToString().PadLeft(2, '0'))));
        }