public ActionResult Index(PesquisaAgendamentoModel model, int idSituacao) { try { if (idSituacao == 0) { model.Situacao = Situacao.Todos; } else if (idSituacao == 1) { model.Situacao = Situacao.Pagos; } else { model.Situacao = Situacao.EmAberto; } var service = new PesquisaService(); model.Parcelas = service.Pesquisar(model); return View(model); } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.Message); return View(model); } }
public List<Parcela> Pesquisar(PesquisaAgendamentoModel pesquisa) { if (pesquisa.IdEmpresa == 0 && pesquisa.IdGrupoCusto == 0 && pesquisa.IdItemCusto == 0 && pesquisa.IdFornecedor == 0 && pesquisa.Referencia == null && string.IsNullOrEmpty(pesquisa.Descricao) && pesquisa.VenctoInicial == null && pesquisa.VenctoFinal == null && pesquisa.Valor == null && pesquisa.IdPgto == 0 && string.IsNullOrEmpty(pesquisa.Observ) && pesquisa.IdFpgto == 0 && pesquisa.DataPgto == null && pesquisa.IdConta == 0 && pesquisa.Cheque == null && pesquisa.CadastradoEm == null && pesquisa.CadastradoAPartirDe == null && pesquisa.Situacao == Situacao.Todos) { throw new ArgumentException("Nenhum parâmetro selecionado para pesquisa"); } var lista = (from a in db.Agendamento join p in db.Parcela on a.Id equals p.IdAgendamento into ap from p in ap where ( (pesquisa.IdEmpresa == 0 || a.IdEmpresa == pesquisa.IdEmpresa) && (pesquisa.IdGrupoCusto == 0 || a.IdGrupoCusto == pesquisa.IdGrupoCusto) && (pesquisa.IdItemCusto == 0 || a.IdItemCusto == pesquisa.IdItemCusto) && (pesquisa.IdFornecedor == 0 || a.IdFornecedor == pesquisa.IdFornecedor) && (pesquisa.Referencia == null || a.Referencia == pesquisa.Referencia) && (string.IsNullOrEmpty(pesquisa.Descricao) || a.Descricao.Contains(pesquisa.Descricao.ToUpper().Trim())) && (pesquisa.VenctoInicial == null || p.Vencto >= pesquisa.VenctoInicial) && (pesquisa.VenctoFinal == null || p.Vencto <= pesquisa.VenctoFinal) && (pesquisa.Valor == null || p.Valor == pesquisa.Valor) && (pesquisa.IdPgto == 0 || p.IdPgto == pesquisa.IdPgto) && (string.IsNullOrEmpty(pesquisa.Observ) || p.Observ.Contains(pesquisa.Observ.ToUpper().Trim())) && (pesquisa.IdFpgto == 0 || p.IdFpgto == pesquisa.IdFpgto) && (pesquisa.DataPgto == null || p.DataPgto == pesquisa.DataPgto) && (pesquisa.IdConta == 0 || p.IdConta == pesquisa.IdConta) && (pesquisa.Cheque == null || p.Cheque == pesquisa.Cheque) && (pesquisa.CadastradoEm == null || DbFunctions.TruncateTime(a.CadastradoEm) == pesquisa.CadastradoEm) && (pesquisa.CadastradoAPartirDe == null || DbFunctions.TruncateTime(a.CadastradoEm) >= pesquisa.CadastradoAPartirDe) && ((pesquisa.Situacao == Situacao.Pagos && p.Cheque > 0) || (pesquisa.Situacao == Situacao.EmAberto && p.Cheque == 0) || (pesquisa.Situacao == Situacao.Todos && p.Cheque >=0)) ) select p); return lista. OrderBy(x => x.Vencto) .ToList(); }