public Tuple <Balanco, List <Balanco> > ObterBalancoPorPerido(DateTime dataInicial, DateTime dataFinal) { IEnumerable <LancamentoFinanceiro> _lancamentos = _lancamentoFinanceiroRepository.Buscar(c => c.DataHora.Date >= dataInicial.Date && c.DataHora.Date <= dataFinal.Date && c.Status == EStatus.CONCILIADO); List <Balanco> _balancos = new List <Balanco>(); Balanco _balanc = null; foreach (var lanc in _lancamentos) { if (_balanc == null) { _balanc = new Balanco { Data = lanc.DataHora }; } else if (!_balanc.Data.Date.Equals(lanc.DataHora.Date)) { _balancos.Add(_balanc); _balanc = null; _balanc = new Balanco { Data = lanc.DataHora }; } if (lanc.Tipo == ETipo.Credito) { _balanc.ValorTotalCredito += lanc.Valor; _balanc.ValorTotalSaldo += lanc.Valor; } else { _balanc.ValorTotalDebito += lanc.Valor; _balanc.ValorTotalSaldo -= lanc.Valor; } } if (_balanc != null) { _balancos.Add(_balanc); } _balanco.Data = DateTime.Today; _balanco.ValorTotalCredito = _balancos.Sum(c => c.ValorTotalCredito); _balanco.ValorTotalDebito = _balancos.Sum(c => c.ValorTotalDebito); _balanco.ValorTotalSaldo = _balancos.Sum(c => c.ValorTotalSaldo); return(new Tuple <Balanco, List <Balanco> >(_balanco, _balancos)); }
public Task <IEnumerable <Lancamento> > Buscar(Expression <Func <Lancamento, bool> > predicate) { return(_lancamentoFinanceiroRepository.Buscar(predicate)); }