public String getLancamento() { if (lancamento == null) { return "[null]"; } String s = "#" + lancamento.getId() + " " + lancamento.toString(); if (s.length() > 85) { s = s.substring(0, 82) + "..."; } return s; }
public Integer getLancamentoID() { if (lancamento == null) { return null; } else { return lancamento.getId(); } }
private boolean extratoLineMatch( Lancamento lancto, ExtratoLancamentoTransaction line, Conta contaOrigemEsperada, Conta contaDestinoEsperada) { Calendar dataEsperada = line.getData(); Comparator<Calendar> comparator = new TimeIgnoringComparator(); boolean dataOk = comparator.compare(lancto.getData(), dataEsperada) == 0; boolean origemOk = lancto.getContaOrigem().equals(contaOrigemEsperada); boolean destinoOk = lancto.getContaDestino().equals(contaDestinoEsperada); boolean valorOk = lancto.getValor().equals(Math.abs(line.getValor())); return dataOk && origemOk && destinoOk && valorOk; }
private void addLancamentosNaoResolvidos( Calendar dataAtual, Calendar dataProximo, List<Lancamento> lancamentoOrfaoList, List<ExtratoLineAnalyseResult> statuses) { TimeIgnoringComparator comparator = new TimeIgnoringComparator(); for (Lancamento lancamento : lancamentoOrfaoList) { boolean isPosteriorAtual = comparator.compare(lancamento.getData(), dataAtual) >= 0; boolean anteriorProximo = comparator.compare(lancamento.getData(), dataProximo) < 0; boolean isOrfao = lancamento.getExtrato() == null; if (isPosteriorAtual && anteriorProximo && isOrfao) { ExtratoLineAnalyseResult r = new ExtratoLineAnalyseResult(); r.setLinhaStatus(StatusLinha.DONT_APPLY); r.setLancamentoStatus(LancamentoStatus.DELETE); r.setLancamento(lancamento); statuses.add(r); } } }
private ExtratoLineAnalyseResult syncTransactionLine( List<Lancamento> lancamentoSemExtratoList, ContaDAO contaDAO, ExtratoLancamentoTransaction line, ExtratoAnalyseSwitches switches) { ExtratoLineAnalyseResult result = new ExtratoLineAnalyseResult(); result.setLinhaStatus(StatusLinha.TRANSACTION); Conta contaExtrato = resolveReference(contaDAO, line.getReferencia()); if (contaExtrato == null) { result.setLancamentoStatus(LancamentoStatus.CONTA_NOT_FOUND); return result; } TimeIgnoringComparator comparator = new TimeIgnoringComparator(); for (Lancamento lancamentoSemExtrato : lancamentoSemExtratoList) { // Ignora as linhas anteriores ao lancamento sem extrato int comparision = comparator.compare(lancamentoSemExtrato.getData(), line.getData()); if (comparision < 0) { continue; } else if (comparision > 0) { // Se passou da data, sai do loop, não há correspondência break; } Conta contaOrigemEsperada; Conta contaDestinoEsperada; if (line.getValor() < 0) { // Dinheiro saiu da conta contaOrigemEsperada = banco; contaDestinoEsperada = contaExtrato; } else { // Dinheiro entrou na conta contaOrigemEsperada = contaExtrato; contaDestinoEsperada = banco; } if ((lancamentoSemExtrato.getExtrato() == null) && (extratoLineMatch( lancamentoSemExtrato, line, contaOrigemEsperada, contaDestinoEsperada))) { result.setLancamentoStatus(LancamentoStatus.UPDATE); lancamentoSemExtrato.setExtrato(line.getOrigem()); if (switches.getRealize()) { lancamentoDAO.alterar(lancamentoSemExtrato); } result.setLancamento(lancamentoSemExtrato); return result; } } // Nenhum lançamento correspondente encontrado result.setLancamentoStatus(LancamentoStatus.NEW); Lancamento novoLancamento = new Lancamento(); result.setLancamento(novoLancamento); novoLancamento.setData(line.getData()); int n = (switches.getRealize() ? lancamentoDAO.getNextN(line.getData()) : -1); novoLancamento.setN(n); Conta contaOrigemEsperada; Conta contaDestinoEsperada; if (line.getValor() > 0) { // Dinheiro entrou da conta contaOrigemEsperada = contaExtrato; contaDestinoEsperada = banco; } else { // Dinheiro saiu na conta contaOrigemEsperada = banco; contaDestinoEsperada = contaExtrato; } novoLancamento.setContaOrigem(contaOrigemEsperada); novoLancamento.setContaDestino(contaDestinoEsperada); novoLancamento.setValor(Math.abs(line.getValor())); novoLancamento.setExtrato(line.getOrigem()); if (switches.getRealize()) { lancamentoDAO.inserir(novoLancamento); } return result; }