private BigDecimal getValorDinheiroEmCaixa(BeanMovimento movimento) { BeanLancamento beanLancamento = new BeanLancamento(); beanLancamento.setTipoFormaPagamento("DIN"); beanLancamento.setCodMov(movimento.getCodMov()); String clausula = " GROUP BY TIPO_FORMA_PAGAMENTO"; List<BeanLancamento> lsLancamento = DAOFacade.getLsLancamentoPorTipo(beanLancamento, clausula); BeanSangria beanSangria = new BeanSangria(); beanSangria.setTipoFormaPagamento("DIN"); beanSangria.setCodMov(movimento.getCodMov()); List<BeanSangria> lsSangria = DAOFacade.getLsSangriaPorTipo(beanSangria); BigDecimal totalDebito = !lsSangria.isEmpty() ? lsSangria.get(0).getValorSangria() : BigDecimal.ZERO; BigDecimal totalCredito = !lsLancamento.isEmpty() ? lsLancamento.get(0).getValorBruto() : BigDecimal.ZERO; BigDecimal saldoDinheiro = totalCredito.subtract(totalDebito); return saldoDinheiro; }
@Override protected Map efetuar(Map parametros) throws OperacaoException { Map mpRetorno = parametros; boolean result = false; try { IECFService ecfService = ECFServiceFactory.getInstance().criarECFService(); /* Obter a data na impressora */ Date data = ecfService.getData(); /* emitir comprovante de entrada do operador */ ecfService.imprimeComprovanteSaidaOperador( ((BeanOperador) parametros.get("BeanOperador")).getCodOper(), ((BeanOperador) parametros.get("BeanOperador")).getNome()); BeanMovimento movimento = (BeanMovimento) parametros.get("BeanMovimento"); BeanMovimento movimentoAntigo = movimento.clone(); movimento.setDataFechamento(data); movimento.setSaldoDinheiroFechamento(getValorDinheiroEmCaixa(movimento)); /* Atualizar movimento aberto passando data e hora do fechamento */ DAOFacade.atualizarMovimento(movimento, movimentoAntigo); mpRetorno.put("BeanMovimento", null); // Gera arquivo para exportar os dados do ECF para o ERP SigenECFSincExporta exportaDados = new SigenECFSincExporta(mpRetorno); exportaDados.run(); result = true; } catch (Exception ex) { TratamentoException.tratar(ex); } mpRetorno.put("result", result); return mpRetorno; }