private List<WidgetListaViewModel> GetWidgetNumerosReservas() { var searchModel = new ReservaSearchModel(); var userData = GetUserData(); var reservas = ReservasModel.GetBaseQuery(db, searchModel, userData); var currentYear = Genericos.GetDateTimeFromBrazil().Year; var lastYear = currentYear - 1; var lista = new List<WidgetListaViewModel>(); lista.Add(new WidgetListaViewModel() { Description = "Total de reservas", Total = reservas.Count() }); lista.Add(new WidgetListaViewModel() { Description = "Reservas pendentes", Total = reservas.Count(c => c.Status == (int)Enumerations.Reserva.StatusReserva.Pendente) }); lista.Add(new WidgetListaViewModel() { Description = "Reservas atendidas", Total = reservas.Count(c => c.Status == (int)Enumerations.Reserva.StatusReserva.Atendido) }); lista.Add(new WidgetListaViewModel() { Description = string.Format("Reservas atendidas este ano ({0})", currentYear), Total = reservas.Count(c => c.Status == (int)Enumerations.Reserva.StatusReserva.Atendido && c.DtPrevisaoEmprestimo.Value.Year == currentYear) }); lista.Add(new WidgetListaViewModel() { Description = string.Format("Reservas atendidas ano passado ({0})", lastYear), Total = reservas.Count(c => c.Status == (int)Enumerations.Reserva.StatusReserva.Atendido && c.DtPrevisaoEmprestimo.Value.Year == lastYear) }); return lista; }
public ActionResult EmitirReportReservas(ReservaSearchModel searchModel) { var userData = GetUserData(); var query = ReservasModel.GetBaseQuery(db, searchModel, userData).OrderByDescending(q => q.DtPrevisaoEmprestimo); var model = new ReservaSearchViewModel { SearchModel = searchModel, Termo = searchModel.Search, FoundObjects = query.Count(), Objetos = (from objeto in query.ToList() let pessoa = objeto.Pessoa let livro = objeto.Livro select new ReservaViewModel { Id = objeto.Id, PessoaId = pessoa.Id, PessoaText = pessoa.Nome, LivroId = livro.Id, LivroText = livro.Titulo, StatusId = (int)objeto.Status, StatusText = EnumsHelper.GetText(typeof(Enumerations.Reserva.StatusReserva), (int)objeto.Status), DtPrevisaoEmprestimo = objeto.DtPrevisaoEmprestimo, DtPrevisaoEmprestimoText = objeto.DtPrevisaoEmprestimo.HasValue ? objeto.DtPrevisaoEmprestimo.Value.ToShortDateString() : string.Empty, DtCadastro = objeto.DtHrCadastro, DtCadastroText = objeto.DtHrCadastro.ToShortDateString(), }).OrderBy(ob => ob.StatusId).ThenByDescending(ob => ob.DtPrevisaoEmprestimo).ToList() }; ViewBag.Title = string.Format("Relatório de {0}", "reservas"); ViewBag.Subtitle = string.Format(Constantes.GeradoEm_, Genericos.GetDateTimeFromBrazil()); return new ViewAsPdf("ReservaSearchResultList", model) { FileName = "RelatorioReservas.pdf", PageSize = Size.A4, PageOrientation = Orientation.Landscape, PageMargins = { Top = 1, Left = 1, Right = 1, Bottom = 1 } }; }