public ActionResult ComprasPorProveedor(ReporteComprasPorProveedorFiltrosModel filtros) { return PartialOrView(filtros); }
public ActionResult GenerarComprasPorProveedor(ReporteComprasPorProveedorFiltrosModel model) { DateTime? hasta = model.Hasta == null ? (DateTime?)null : model.Hasta.GetValueOrDefault().AddDays(1); var proveedoresDataSource = Uow.Reportes.ComprasPorProveedor(model.Desde, hasta, model.ProveedorId, UsuarioActual.CuentaId); var top5DataSource = Uow.Reportes.ComprasPorProveedor(model.Desde, hasta, null, UsuarioActual.CuentaId) .OrderByDescending(p => p.DescuentoTotal).Take(5).ToList(); var reporteFactory = new ReporteFactory(); var datasources = new Dictionary<string, object> { {"ComprasPorProveedorDataSet", proveedoresDataSource}, {"Top5", top5DataSource } }; var proveedor = Uow.Proveedores.Obtener(m => m.ProveedorId == model.ProveedorId); var proveedorNombre = proveedor != null ? proveedor.Nombre : TodosText; reporteFactory .SetParametro("Desde", model.Desde.ToShortDateString(null)) .SetParametro("Hasta", model.Hasta.ToShortDateString(null)) .SetParametro("ProveedorNombre", proveedorNombre) .SetParametro("ProveedorId", model.ProveedorId.GetValueOrDefault().ToString()) .SetParametro("CuentaId", UsuarioActual.CuentaId.ToString()) .SetPathCompleto(Server.MapPath("~/Reportes/ComprasPorProveedor.rdl")) .SetDataSource(datasources); byte[] archivo = reporteFactory.Renderizar(model.ReporteTipo); return File(archivo, reporteFactory.MimeType); }