public ActionResult VentasNegativasPorTicket(RetirosPersonalesPorTicketFiltrosModel model)
 {
     return PartialOrView(model);
 }
        public ActionResult GenerarVentasNegativasPorTicket(RetirosPersonalesPorTicketFiltrosModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    if (model.Hasta.HasValue)
                    {
                        var date = model.Hasta.GetValueOrDefault().AddDays(1);
                        model.Hasta = date.ToZeroTime();
                    }
                    var retirosPorTicketDataSource = Uow.Reportes
                        .VentasNegativasPorTicket(model.Desde, model.Hasta, model.UsuarioId).OrderBy(x => x.FechaVenta).ToList();

                    var reporteFactory = new ReporteFactory();

                    var usuario = model.UsuarioId == null
                                    ? "TODOS"
                                    : Uow.Usuarios.Obtener(model.UsuarioId.GetValueOrDefault()).NombreUsuario;
                    var parameters = new Dictionary<string, string>
                                  {
                                      {"Desde", model.Desde.ToLongString("-")},
                                      {"Hasta", model.Hasta.ToLongString("-")},
                                      {"Usuario", usuario}
                                  };

                    reporteFactory.SetPathCompleto(Server.MapPath("~/Reportes/VentasNegativasPorTicket.rdl"))
                        .SetDataSource("VentasNegativasPorTicketDataSet", retirosPorTicketDataSource)
                        .SetParametro(parameters);

                    byte[] archivo = reporteFactory.Renderizar(model.ReporteTipo);

                    return File(archivo, reporteFactory.MimeType);

                }
                catch (Exception ex)
                {
                    EventLogger.Log(ex);
                    return null;
                }
            }
            return null;
        }