Пример #1
0
        public ActionResult Search(LivroSearchModel searchModel)
        {
            if (!TemPermissao(Enumerations.Generico.TipoAcao.Consultar, permissoesAdministrador, permissoesBibliotecario, permissoesAluno))
                return RedirectToAction("Index", "Home");

            if (searchModel == null)
                searchModel = new LivroSearchModel();

            var query = LivrosModel.GetBaseQuery(db, searchModel).OrderBy(q => q.Titulo);

            var queryResult = SearchHelper.ApplyPaging(query, query.Count(), ConstantesModel.GridPageSize, searchModel.Page);

            searchModel.Page = (searchModel.Page ?? 1);
            searchModel.CurrentPage = searchModel.Page.Value;
            searchModel.PageSize = ConstantesModel.GridPageSize;
            searchModel.TotalPages = Math.Ceiling((double)query.Count() / ConstantesModel.GridPageSize);

            var model = new LivroSearchViewModel
            {
                SearchModel = searchModel,
                Termo = searchModel.Search,
                FoundObjects = query.Count(),
                Objetos = (from objeto in queryResult.ToList()
                           let status = LivrosModel.GetStatus(objeto)
                           let totalVinculos = LivrosModel.GetTotalByItemLinkedRecords(db, objeto.Id)
                           select new LivroViewModel
                           {
                               Id = objeto.Id,
                               Codigo = objeto.Codigo,
                               StatusId = (int)status,
                               StatusText = EnumsHelper.GetText(typeof(Enumerations.Livro.StatusLivro), (int)status),
                               Titulo = objeto.Titulo,
                               Autor = objeto.Autor,
                               Genero = objeto.Genero,
                               Editora = objeto.Editora,
                               EstadoConservacaoId = (int)objeto.EstadoConservacao,
                               EstadoConservacaoText = EnumsHelper.GetText(typeof(Enumerations.Livro.EstadoConservacaoLivro), (int)objeto.EstadoConservacao),
                               BaixadoId = objeto.IsBaixado ? (int)Enumerations.Generico.SimOuNao.Sim : (int)Enumerations.Generico.SimOuNao.Nao,
                               BaixadoText = objeto.IsBaixado ? EnumsHelper.GetText(Enumerations.Generico.SimOuNao.Sim) : EnumsHelper.GetText(Enumerations.Generico.SimOuNao.Nao),
                               DtBaixa = objeto.DtBaixa,
                               DtBaixaText = objeto.DtBaixa.HasValue ? objeto.DtBaixa.Value.ToShortDateString() : string.Empty,
                               DtCadastro = objeto.DtHrCadastro,
                               DtCadastroText = objeto.DtHrCadastro.ToShortDateString(),
                               DtEdicao = objeto.DtHrEdicao,
                               DtEdicaoText = objeto.DtHrEdicao.HasValue ? objeto.DtHrEdicao.Value.ToShortDateString() : string.Empty,
                               TotalReservas = totalVinculos.Item1,
                               TotalEmprestimos = totalVinculos.Item2
                           }).OrderBy(ob => ob.Titulo).ToList()
            };

            ViewBag.PodeCadastrar = TemPermissao(Enumerations.Generico.TipoAcao.Cadastrar, permissoesAdministrador, permissoesBibliotecario, permissoesAluno);
            ViewBag.PodeEditar = TemPermissao(Enumerations.Generico.TipoAcao.Editar, permissoesAdministrador, permissoesBibliotecario, permissoesAluno);
            ViewBag.PodeExcluir = TemPermissao(Enumerations.Generico.TipoAcao.Excluir, permissoesAdministrador, permissoesBibliotecario, permissoesAluno);

            ViewBag.SearchWaterMark = "Pesquisar pelos campos: código, título, gênero, autores, editora, local";
            ViewBag.Title = GetModuleNamePlural();
            ViewBag.Subtitle = string.Format("Pesquisa de {0}", GetModuleNamePlural());

            return View(model);
        }
Пример #2
0
        public ActionResult EmitirReportLivros(LivroSearchModel searchModel)
        {
            var query = LivrosModel.GetBaseQuery(db, searchModel).OrderBy(q => q.Titulo);

            var model = new LivroSearchViewModel
            {
                SearchModel = searchModel,
                Termo = searchModel.Search,
                FoundObjects = query.Count(),
                Objetos = (from objeto in query.ToList()
                           let status = LivrosModel.GetStatus(objeto)
                           let totalVinculos = LivrosModel.GetTotalByItemLinkedRecords(db, objeto.Id)
                           select new LivroViewModel
                           {
                               Id = objeto.Id,
                               Codigo = objeto.Codigo,
                               StatusId = (int)status,
                               StatusText = EnumsHelper.GetText(typeof(Enumerations.Livro.StatusLivro), (int)status),
                               Titulo = objeto.Titulo,
                               Autor = objeto.Autor,
                               Genero = objeto.Genero,
                               Editora = objeto.Editora,
                               EstadoConservacaoId = (int)objeto.EstadoConservacao,
                               EstadoConservacaoText = EnumsHelper.GetText(typeof(Enumerations.Livro.EstadoConservacaoLivro), (int)objeto.EstadoConservacao),
                               BaixadoId = objeto.IsBaixado ? (int)Enumerations.Generico.SimOuNao.Sim : (int)Enumerations.Generico.SimOuNao.Nao,
                               BaixadoText = objeto.IsBaixado ? EnumsHelper.GetText(Enumerations.Generico.SimOuNao.Sim) : EnumsHelper.GetText(Enumerations.Generico.SimOuNao.Nao),
                               DtBaixa = objeto.DtBaixa,
                               DtBaixaText = objeto.DtBaixa.HasValue ? objeto.DtBaixa.Value.ToShortDateString() : string.Empty,
                               DtCadastro = objeto.DtHrCadastro,
                               DtCadastroText = objeto.DtHrCadastro.ToShortDateString(),
                               DtEdicao = objeto.DtHrEdicao,
                               DtEdicaoText = objeto.DtHrEdicao.HasValue ? objeto.DtHrEdicao.Value.ToShortDateString() : string.Empty,
                               TotalReservas = totalVinculos.Item1,
                               TotalEmprestimos = totalVinculos.Item2
                           }).OrderBy(ob => ob.Titulo).ToList()
            };

            ViewBag.Title = string.Format("Relatório de {0}", "livros");
            ViewBag.Subtitle = string.Format(Constantes.GeradoEm_, Genericos.GetDateTimeFromBrazil());

            return new ViewAsPdf("LivroSearchResultList", model)
            {
                FileName = "RelatorioLivros.pdf",
                PageSize = Size.A4,
                PageOrientation = Orientation.Landscape,
                PageMargins = { Top = 1, Left = 1, Right = 1, Bottom = 1 }
            };
        }