public async Task <IActionResult> ListarLancamentos(ProcurarLancamento filtro) { if (filtro == null) { return(new FeedbackResult(new Feedback(TipoFeedback.Atencao, "As informações para a procura não foram preenchidas.", tipoAcao: TipoAcaoAoOcultarFeedback.Ocultar))); } LancamentoOrdenarPor ordenarPor; switch (_datatablesHelper.OrdenarPor) { case "categoria": ordenarPor = LancamentoOrdenarPor.CategoriaCaminho; break; case "pessoa": ordenarPor = LancamentoOrdenarPor.NomePessoa; break; default: ordenarPor = LancamentoOrdenarPor.Data; break; } filtro.OrdenarPor = ordenarPor; filtro.OrdenarSentido = _datatablesHelper.OrdenarSentido; filtro.PaginaIndex = _datatablesHelper.PaginaIndex; filtro.PaginaTamanho = _datatablesHelper.PaginaTamanho; var saida = await _proxy.ProcurarLancamentos(filtro); if (!saida.Sucesso) { return(new FeedbackResult(new Feedback(TipoFeedback.Erro, "Não foi possível obter a relação de lançamentos cadastrados.", saida.Mensagens))); } return(new DatatablesResult(_datatablesHelper.Draw, saida.Retorno.TotalRegistros, saida.Retorno.Registros.Select(x => new { id = x.Id, idParcela = x.IdParcela, idAgendamento = x.Parcela?.IdAgendamento, pagamentoFatura = x.Categoria.Id == 3, // Categoria referente ao pagamento de fatura data = x.Data, pessoa = x.Pessoa?.Nome, categoria = x.Categoria.Caminho, idTransferencia = x.IdTransferencia, tipoCategoria = x.Categoria.Tipo, valor = x.Categoria.Tipo == "C" ? x.Valor : x.Valor * -1, observacao = x.Observacao, anexos = x.Anexos.Count(), detalhes = x.Detalhes.Count() }).ToList())); }
/// <summary> /// Realiza a procura por lançamentos /// </summary> public async Task <Saida <ResultadoProcura <Lancamento> > > ProcurarLancamentos(ProcurarLancamento entrada) { using (var content = new StringContent(entrada.ObterJson(), Encoding.UTF8, "application/json")) { return(await _httpClientHelper.FazerRequest <Saida <ResultadoProcura <Lancamento> > >("lancamento/procurar", MetodoHttp.POST, content)); } }