diff --git a/src/com/rjconsultores/integracaoreceitadespesa/dao/Totalbus.java b/src/com/rjconsultores/integracaoreceitadespesa/dao/Totalbus.java index fb41c7e9f..957fd879f 100644 --- a/src/com/rjconsultores/integracaoreceitadespesa/dao/Totalbus.java +++ b/src/com/rjconsultores/integracaoreceitadespesa/dao/Totalbus.java @@ -60,12 +60,14 @@ public class Totalbus { if (isReceitasDespesasComporte){ despesasReceitas.addAll(getDespesaCartaoDebCredComporte(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM)); + log.debug("gerando receitas..."); + despesasReceitas.addAll(getReceitasComporte(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM)); + } else { despesasReceitas.addAll(getDespesaCartaoDebCred(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM)); + log.debug("gerando receitas..."); + despesasReceitas.addAll(getReceitas(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM)); } - - log.debug("gerando receitas..."); - despesasReceitas.addAll(getReceitas(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM)); List rows = new ArrayList(); @@ -424,6 +426,94 @@ public class Totalbus { } return despesas; } + + public List getReceitasComporte(final Integer puntoVentaId, final Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) throws IntegracaoReceitaDespesaException { + List despesas = new ArrayList(); + StringBuilder sb = new StringBuilder(); + sb.append(" select "); + sb.append(" cd.feccorte AS fechorvta, "); + sb.append(" e.empresa_id AS empresa, "); + sb.append(" pv.puntoventa_id AS puntoventaId, "); + sb.append(" COALESCE(cdp.importe,0) AS valor, "); + sb.append(" tee.contacontabil AS contacontabil, "); + sb.append(" pv.numpuntoventa AS numpuntoventa, "); + sb.append(" ev.descinfo as descinfo, "); + sb.append(" ev.tipoeventoextra_id, "); + sb.append(" COALESCE(cdp.formapago_id,0) as formapagoId, "); + sb.append(" ct.numautorizacion AS numautorizacion "); + sb.append(" from "); + sb.append(" caja_diversos cd "); + sb.append(" left join evento_extra ev on ev.eventoextra_id = cd.eventoextra_id "); + sb.append(" left join empresa e on e.empresa_id = ev.empresa_id "); + sb.append(" left join punto_venta pv on pv.puntoventa_id = cd.puntoventa_id "); + sb.append(" left join caja_diversos_pago cdp on cdp.cajadiversos_id = cd.cajadiversos_id "); + sb.append(" left join tipo_evento_extra tee on tee.tipoeventoextra_id = ev.tipoeventoextra_id "); + sb.append(" left join ptovta_integra pi on e.empresa_id = pi.empresa_id and pi.puntoventa_id = pv.puntoventa_id "); + sb.append(" LEFT JOIN caja_tarjeta ct ON ct.cajatarjeta_id = cdp.cajatarjeta_id "); + sb.append(" where "); + sb.append(" cd.feccorte = ? "); + adicionaFiltroQuery(puntoVentaId, sb, " and cd.puntoventa_id = ", puntoVentaId != null && !puntoVentaId.equals(-1)); + adicionaFiltroQuery(empresaId, sb, " and e.empresa_id = ", empresaId != null); + sb.append(" and cd.activo = 1 "); + sb.append(" and tee.indtipo = 1 "); + + + PreparedStatement stmt = null; + ResultSet rs = null; + + Date fecha = fechaParam; + if (fechaParam == null) { + fecha = getData(); + } + + try { + stmt = getConnection().prepareStatement(sb.toString()); + stmt.setDate(1, new java.sql.Date(fecha.getTime())); + rs = stmt.executeQuery(); + + while (rs.next()) { + DespesaReceita receita = new DespesaReceita(); + receita.setCodigoEmpresa(rs.getInt(2)); + receita.setCodigoReceitaDespesa(rs.getString(5)); + receita.setDataLancamento(rs.getDate(1)); + receita.setDataMovimento(rs.getDate(1)); + receita.setLocalArrecadacao(rs.getString(6)); + if (rs.getBigDecimal(4).signum() == -1) { + receita.setIdentificadorReceitaDespesa("D"); + receita.setValorLancamento(df.format(rs.getBigDecimal(4).multiply(new BigDecimal(-1)))); + } else { + receita.setIdentificadorReceitaDespesa("R"); + receita.setValorLancamento(df.format(rs.getBigDecimal(4))); + } + + String desc =rs.getString(7); + if(StringUtils.isNotBlank(desc) && desc.contains("\t")){ + desc = desc.replaceAll("\t", ""); + } + receita.setDescricaoDetalhada(desc); + if (incluiTipoPagamentoTurismoBGM) { + receita.setTipoPagamentoTurismo(rs.getString("tipoeventoextra_id")); + } + receita.setFormaPagamentoId(rs.getString("formapagoId")); + despesas.add(receita); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new IntegracaoReceitaDespesaException("Erro ao processar Receitas"); + } finally { + try { + rs.close(); + } catch (Exception ignore) { + log.error(ignore.getMessage(), ignore); + } + try { + stmt.close(); + } catch (Exception ignore) { + log.error(ignore.getMessage(), ignore); + } + } + return despesas; + } public List getDespesas(Integer puntoventaId, Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) throws IntegracaoReceitaDespesaException { List despesas = new ArrayList();