예제 #1
0
파일: Pessoas.cs 프로젝트: anzolin/SBSC
        public static IQueryable<Pessoa> GetBaseQuery(SBSCEntities db, PessoaSearchModel searchModel)
        {
            IQueryable<Pessoa> query = db.Pessoa.Where(q => !q.IsSistema);

            if (!string.IsNullOrEmpty(searchModel.Search))
            {
                var term = searchModel.Search.Trim();

                query = from q in query
                        where q.Nome.Contains(term)
                        || q.Login.Contains(term)
                        select q;
            }

            return query;
        }
예제 #2
0
        public ActionResult EmitirReportPessoas(PessoaSearchModel searchModel)
        {
            var query = PessoasModel.GetBaseQuery(db, searchModel).OrderBy(q => q.Nome);

            var model = new PessoaSearchViewModel
            {
                SearchModel = searchModel,
                Termo = searchModel.Search,
                FoundObjects = query.Count(),
                Objetos = (from objeto in query.ToList()
                           let totalVinculos = PessoasModel.GetTotalByItemLinkedRecords(db, objeto.Id)
                           select new PessoaViewModel
                           {
                               Id = objeto.Id,
                               Nome = objeto.Nome,
                               CodigoMatricula = objeto.CodigoMatricula,
                               Login = objeto.Login,
                               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.Nome).ToList()
            };

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

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