コード例 #1
0
ファイル: HomeController.cs プロジェクト: anzolin/SBSC
        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;
        }
コード例 #2
0
ファイル: RelatoriosController.cs プロジェクト: anzolin/SBSC
        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 }
            };
        }