예제 #1
0
        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));
        }
예제 #2
0
 public ActionResult ComprasPorProveedor(ReporteComprasPorProveedorFiltrosModel filtros)
 {
     return(PartialOrView(filtros));
 }