package aplicacao.service; import java.math.BigDecimal; import java.util.List; import banco.modelo.Caixa; import banco.modelo.MovimentacaoCaixa; import banco.utils.MovimentacaoCaixaUtils; public class MovimentacaoCaixaService extends MecasoftService<MovimentacaoCaixa>{ @Override public MovimentacaoCaixaUtils getDAO() { return getInjector().getInstance(MovimentacaoCaixaUtils.class); } @Override public void saveOrUpdate() { getDAO().saveOrUpdate(modelo); } @Override public void delete() { getDAO().delete(modelo); } public BigDecimal getTotalCaixa(Caixa caixa){ List<MovimentacaoCaixa> listaMovimentacao = findAllByCaixa(caixa); BigDecimal total = caixa.getValorAbertura(); for(MovimentacaoCaixa m : listaMovimentacao){ if(m.getTipo().equals(MovimentacaoCaixa.TIPOENTRADA)) total = total.add(m.getValor()); else total = total.subtract(m.getValor()); } return total; } public BigDecimal getTotalCaixaByTipo(Caixa caixa, Character tipo){ List<MovimentacaoCaixa> listaMovimentacao = getDAO().findAllByCaixaAndTipo(caixa, tipo); BigDecimal total = BigDecimal.ZERO; for(MovimentacaoCaixa m : listaMovimentacao){ total = total.add(m.getValor()); } return total; } @Override public MovimentacaoCaixa find(Long id) { return getDAO().find(id); } @Override public List<MovimentacaoCaixa> findAll() { return getDAO().findAll(); } public List<MovimentacaoCaixa> findAllByCaixa(Caixa caixa){ return getDAO().findAllByCaixaAndTipo(caixa, null); } public MovimentacaoCaixa getMovimentacao() { return getModelo(); } public void setMovimentacao(MovimentacaoCaixa movimentacao) { setModelo(movimentacao); } }