diff --git a/pom.xml b/pom.xml
index 5bb4ae3d7..8adfcb329 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
br.com.rjconsultores
IntegracaoReceitaDespesa
- 1.2.4
+ 1.2.5
diff --git a/src/com/rjconsultores/integracaoreceitadespesa/BGMApplication.java b/src/com/rjconsultores/integracaoreceitadespesa/BGMApplication.java
index 79571742f..e3e1b8c3d 100644
--- a/src/com/rjconsultores/integracaoreceitadespesa/BGMApplication.java
+++ b/src/com/rjconsultores/integracaoreceitadespesa/BGMApplication.java
@@ -182,10 +182,10 @@ public class BGMApplication {
sourceChannel = new FileInputStream(source).getChannel();
destChannel = new FileOutputStream(dest).getChannel();
destChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
- }finally{
- sourceChannel.close();
- destChannel.close();
- }
+ }finally{
+ sourceChannel.close();
+ destChannel.close();
+ }
}
private void excluirArquivosZip(String diretorio){
diff --git a/src/com/rjconsultores/integracaoreceitadespesa/dao/Totalbus.java b/src/com/rjconsultores/integracaoreceitadespesa/dao/Totalbus.java
index aaf306ab5..2a6c137c5 100644
--- a/src/com/rjconsultores/integracaoreceitadespesa/dao/Totalbus.java
+++ b/src/com/rjconsultores/integracaoreceitadespesa/dao/Totalbus.java
@@ -69,35 +69,46 @@ public class Totalbus {
}
public List getDespesasReceitas(Integer puntoventaId, Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM, boolean isLayoutNovo) throws IntegracaoReceitaDespesaException{
- log.debug("gerando depositos...");
- List despesasReceitas = getDepositos(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM, isLayoutNovo);
- log.debug("gerando despesas...");
- despesasReceitas.addAll(getDespesas(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM, isLayoutNovo));
- log.debug("gerando despesas cartão...");
-
+ List rows = new ArrayList();
if (isReceitasDespesasComporte){
+ log.debug("gerando depositos...");
+ List despesasReceitas = getDepositosComporte(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM, isLayoutNovo);
+ log.debug("gerando despesas...");
+ despesasReceitas.addAll(getDespesasComporte(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM, isLayoutNovo));
+ log.debug("gerando despesas cartão...");
despesasReceitas.addAll(getDespesaCartaoDebCredComporte(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM));
log.debug("gerando receitas...");
despesasReceitas.addAll(getReceitasComporte(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM));
+ if( isLayoutNovo ) {
+ for (DespesaReceita item : despesasReceitas) {
+ item.preencheLinhaLayoutNovo(rows);
+ }
+ }else {
+ for (DespesaReceita item : despesasReceitas) {
+ item.preencheLinha(rows);
+ }
+ }
}else {
+ log.debug("gerando depositos...");
+ List despesasReceitas = getDepositos(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM, isLayoutNovo);
+ log.debug("gerando despesas...");
+ despesasReceitas.addAll(getDespesas(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM, isLayoutNovo));
+ log.debug("gerando despesas cartão...");
despesasReceitas.addAll(getDespesaCartaoDebCred(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM, isLayoutNovo));
log.debug("gerando receitas...");
despesasReceitas.addAll(getReceitas(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM, isLayoutNovo));
if(isReceitasDespesasOuroPrata) {
getContaCorrenteAgencia(despesasReceitas, puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM);
}
- }
-
- List rows = new ArrayList();
-
- if( isLayoutNovo ) {
- for (DespesaReceita item : despesasReceitas) {
- item.preencheLinhaLayoutNovo(rows);
- }
- }else {
- for (DespesaReceita item : despesasReceitas) {
- item.preencheLinha(rows);
+ if( isLayoutNovo ) {
+ for (DespesaReceita item : despesasReceitas) {
+ item.preencheLinhaLayoutNovo(rows);
+ }
+ }else {
+ for (DespesaReceita item : despesasReceitas) {
+ item.preencheLinha(rows);
+ }
}
}
return rows;
@@ -560,7 +571,8 @@ public class Totalbus {
sb.append(" ct.numautorizacion as numautorizacion, ");
sb.append(" pte.numsitef as numeroEstabelecimento, ");
sb.append(" b.numfoliosistema,");
- sb.append(" ct.tx_id");
+ sb.append(" ct.tx_id, ");
+ sb.append(" b.num_bpe ");
sb.append(" from ");
sb.append(" caja_diversos cd ");
sb.append(" left join evento_extra ev on ev.eventoextra_id = cd.eventoextra_id ");
@@ -598,7 +610,7 @@ public class Totalbus {
despesa.setCodigoEmpresa(rs.getInt(2));
despesa.setCodigoReceitaDespesa(rs.getString(5));
if(StringUtils.isNotBlank(rs.getString(5)) && (rs.getString(5).equals("22") || rs.getString(5).equals("8101"))) {
- despesa.setNumfoliosistema(rs.getString(11));
+ despesa.setNumfoliosistema(rs.getString("num_bpe"));
}else {
despesa.setNumfoliosistema("");
}
@@ -757,8 +769,8 @@ public class Totalbus {
return despesas;
}
- public List getReceitasComporte(final Integer puntoVentaId, final Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) throws IntegracaoReceitaDespesaException {
- List despesas = new ArrayList();
+ 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, ");
@@ -773,7 +785,7 @@ public class Totalbus {
sb.append(" ct.numautorizacion AS numautorizacion, ");
sb.append(" pte.numsitef AS numeroestabelecimento, ");
sb.append(" ct.cantparcelas, ");
- sb.append(" b.numfoliosistema,");
+ sb.append(" case when (b.num_bpe is not null) then LPAD(b.num_bpe, 9,'0') else LPAD(' ',9,0) end as num_bpe, ");
sb.append(" ct.tx_id");
sb.append(" from ");
sb.append(" caja_diversos cd ");
@@ -810,11 +822,7 @@ public class Totalbus {
DespesaReceitaComporte receita = new DespesaReceitaComporte();
receita.setCodigoEmpresa(rs.getInt(2));
receita.setCodigoReceitaDespesa(rs.getString(5));
- if(StringUtils.isNotBlank(rs.getString(5)) && (rs.getString(5).equals("22") || rs.getString(5).equals("8101"))) {
- receita.setNumfoliosistema(rs.getString(13));
- }else {
- receita.setNumfoliosistema("");
- }
+ receita.setNumfoliosistema(rs.getString(13));
receita.setDataLancamento(rs.getDate(1));
receita.setDataMovimento(rs.getDate(1));
receita.setLocalArrecadacao(rs.getString(6));
@@ -1060,6 +1068,7 @@ public class Totalbus {
log.error(ignore.getMessage(), ignore);
}
}
+
return depositos;
}
@@ -1213,4 +1222,193 @@ public class Totalbus {
System.out.println(new BigDecimal("0").signum());
}
+
+ public List getDepositosComporte(Integer puntoventaId, Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM, boolean isLayoutNovo) throws IntegracaoReceitaDespesaException {
+ List depositos = new ArrayList();
+
+ StringBuilder strFechamentos = new StringBuilder();
+ strFechamentos.append("Select distinct sum(fd.valor_pago), fdep.numdeposito, fdep.fecha_deposito, fc.empresa_id, ");
+ strFechamentos.append(" pv.numpuntoventa, ec.numagencia, ec.numconta, if.CODIGO, ec.numintegracion, fdep.feccreacion ");
+ strFechamentos.append(" from fechamento_deposito fdep ");
+ strFechamentos.append(" join fechamento_cct_deposito fd on fd.fechamentodeposito_id = fdep.fechamentodeposito_id ");
+ strFechamentos.append(" join fechamento_cntcorrente fc on fc.fechamentocntcorrente_id = fd.fechamentocntcorrente_id ");
+ strFechamentos.append(" inner join PUNTO_VENTA pv on PV.PUNTOVENTA_ID = FC.PUNTOVENTA_ID ");
+ strFechamentos.append(" join empresa_contabancaria ec on ec.EMPRESACONTABANCARIA_ID = fdep.EMPRESACONTABANCARIA_ID ");
+ strFechamentos.append(" join INSTI_FINANCEIRA if on if.INSTIFINANCEIRA_ID = EC.INSTIFINANCEIRA_ID ");
+ strFechamentos.append(" join EMPRESA e on e.empresa_id = fc.empresa_id ");
+ strFechamentos.append(" where trunc(fdep.feccreacion) = :fecha and fd.activo = 1 and fc.activo = 1 and fdep.activo = 1 ");
+ adicionaFiltroQuery(puntoventaId, strFechamentos, " and fc.puntoventa_id = ", puntoventaId != null && !puntoventaId.equals(-1));
+ adicionaFiltroQuery(empresaId, strFechamentos, " and fc.empresa_id = ", empresaId != null);
+ strFechamentos.append(" group by fdep.numdeposito, fdep.feccreacion, fdep.fecha_deposito, fc.empresa_id, pv.numpuntoventa, ec.numagencia, ec.numconta, if.CODIGO, ec.numintegracion ");
+
+ Date fecha = fechaParam;
+ if (fechaParam == null) {
+ fecha = getData();
+ }
+
+ PreparedStatement pstmtFechamentos = null;
+ ResultSet rsFechamentos = null;
+ BigDecimal soma = BigDecimal.ZERO;
+ try {
+ pstmtFechamentos = getConnection().prepareStatement(strFechamentos.toString());
+ pstmtFechamentos.setDate(1, new java.sql.Date(fecha.getTime()));
+
+ rsFechamentos = pstmtFechamentos.executeQuery();
+
+ while (rsFechamentos.next()) {
+ Integer empId = null;
+ String banco = "";
+ String agencia = "";
+ String contaCorrente = "";
+ String numDep = " Dep: " + rsFechamentos.getString(2);
+ String codRecDesp = null;
+ String numpuntoventa = rsFechamentos.getString(5);
+
+ if (empId == null) {
+ empId = rsFechamentos.getInt(4);
+ }
+ if (banco.isEmpty()) {
+ banco = "Bco: " + StringUtils.leftPad(rsFechamentos.getString(8), 3, "0");
+ }
+
+ if (agencia.isEmpty()) {
+ agencia = " Ag: " + rsFechamentos.getString(6);
+ }
+ if (contaCorrente.isEmpty()) {
+ contaCorrente = " C/C: " + rsFechamentos.getString(7);
+ }
+ if (codRecDesp == null) {
+ codRecDesp = rsFechamentos.getString(9);
+ }
+
+ DespesaReceitaComporte deposito = new DespesaReceitaComporte();
+ deposito.setCodigoEmpresa(empId);
+ deposito.setDataLancamento(rsFechamentos.getDate(10));
+ deposito.setDataMovimento(rsFechamentos.getDate(3));
+ deposito.setLocalArrecadacao(numpuntoventa);
+ deposito.setValorLancamento(df.format(rsFechamentos.getBigDecimal(1)));
+ deposito.setIdentificadorReceitaDespesa("D");
+ deposito.setCodigoReceitaDespesa(codRecDesp);
+ deposito.setDescricaoDetalhada(banco + agencia + contaCorrente + numDep);
+
+ if(isLayoutNovo) {
+ deposito.setTipoPagamentoTurismo("01");
+ deposito.setFormaPagamentoId("04");
+ deposito.setTipoDocumentoVenda("P");
+ }
+ depositos.add(deposito);
+ soma = soma.add(rsFechamentos.getBigDecimal(1));
+ }
+ log.debug("Total depositos: " + soma);
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ throw new IntegracaoReceitaDespesaException("Erro ao processar Depositos");
+ } finally {
+ try {
+ pstmtFechamentos.close();
+ } catch (Exception ignore) {
+ log.error(ignore.getMessage(), ignore);
+ }
+ try {
+ rsFechamentos.close();
+ } catch (Exception ignore) {
+ log.error(ignore.getMessage(), ignore);
+ }
+ }
+ return depositos;
+ }
+
+ public List getDespesasComporte(Integer puntoventaId, Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM, boolean isLayoutNovo ) throws IntegracaoReceitaDespesaException {
+ List despesas = new ArrayList();
+ StringBuilder sb = new StringBuilder();
+ sb.append(" select ");
+ sb.append(" cd.feccorte as feccorte, ");
+ sb.append(" e.empresa_id as empresa_id, ");
+ sb.append(" pv.numpuntoventa as numpuntoventa, ");
+ sb.append(" cdp.importe as valor, ");
+ sb.append(" tee.contacontabil as contacontabil, ");
+ sb.append(" ev.descinfo as descinfo, ");
+ sb.append(" ev.tipoeventoextra_id, ");
+ sb.append(" cdp.formapago_id as formapagoId, ");
+ sb.append(" case when (b.num_bpe is not null) then LPAD(b.num_bpe, 9,'0') else LPAD(' ',9,0) end as num_bpe ");
+ 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 boleto b on b.boleto_id = ev.boleto_id ");
+ sb.append(" where ");
+ sb.append(" cd.feccorte = ? ");
+ sb.append(" and tee.indtipo = 0 ");
+ 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 cdp.formapago_id not IN (2,3) ");
+ sb.append(" and not exists (select ee.EVENTOEXTRA_ID from evento_extra ee where ev.EVENTOEXTRA_ID = ee.EVENTOEXTRACANC_ID) ");
+ sb.append(" and ev.EVENTOEXTRACANC_ID is null ");
+
+ Date fecha = fechaParam;
+ if (fechaParam == null) {
+ fecha = getData();
+ }
+
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+
+ try {
+ pstmt = getConnection().prepareStatement(sb.toString());
+ pstmt.setDate(1, new java.sql.Date(fecha.getTime()));
+
+ rs = pstmt.executeQuery();
+ while (rs.next()) {
+ DespesaReceitaComporte despesa = new DespesaReceitaComporte();
+ despesa.setCodigoEmpresa(rs.getInt(2));
+ despesa.setCodigoReceitaDespesa(rs.getString(5));
+ despesa.setDataLancamento(rs.getDate(1));
+ despesa.setDataMovimento(rs.getDate(1));
+ despesa.setLocalArrecadacao(rs.getString(3));
+ despesa.setValorLancamento(df.format(rs.getBigDecimal(4).doubleValue() * -1));
+ despesa.setIdentificadorReceitaDespesa("D");
+ String desc =rs.getString(6);
+
+ desc = this.removerQuebraDeLinha(desc);
+
+ despesa.setDescricaoDetalhada(desc);
+ if (incluiTipoPagamentoTurismoBGM) {
+ despesa.setTipoPagamentoTurismo(rs.getString("tipoeventoextra_id"));
+ }
+ despesa.setFormaPagamentoId(rs.getString("formapagoId"));
+
+ if(isLayoutNovo) {
+ despesa.setTipoPagamentoTurismo("01");
+ despesa.setFormaPagamentoId("01");
+ despesa.setTipoDocumentoVenda("P");
+ }
+
+ despesa.setNumfoliosistema(rs.getString("num_bpe"));
+ despesas.add(despesa);
+ }
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ throw new IntegracaoReceitaDespesaException("Erro ao processar Despesas");
+ } finally {
+ try {
+ rs.close();
+ } catch (Exception ignore) {
+ log.error(ignore.getMessage(), ignore);
+ }
+ try {
+ pstmt.close();
+ } catch (Exception ignore) {
+ log.error(ignore.getMessage(), ignore);
+ }
+ }
+ return despesas;
+ }
+
+
+
}
diff --git a/src/com/rjconsultores/integracaoreceitadespesa/entidades/DespesaReceitaComporte.java b/src/com/rjconsultores/integracaoreceitadespesa/entidades/DespesaReceitaComporte.java
index 717f8542d..c42c1ef7c 100644
--- a/src/com/rjconsultores/integracaoreceitadespesa/entidades/DespesaReceitaComporte.java
+++ b/src/com/rjconsultores/integracaoreceitadespesa/entidades/DespesaReceitaComporte.java
@@ -26,17 +26,19 @@ public class DespesaReceitaComporte extends DespesaReceita {
sb.append(StringUtils.leftPad(codigoReceitaDespesa.trim(), 10, "0")); //83
sb.append(StringUtils.rightPad(identificadorReceitaDespesa.toUpperCase().trim(), 1, "0")); //84
sb.append(StringUtils.leftPad(valorLancamento.trim(), 13, "0")); //97
- sb.append(StringUtils.leftPad(numeroContratoTurismo.trim(), 10, "0"));
- sb.append(StringUtils.leftPad(numeroReciboTurismo.trim(), 10, "0"));
- sb.append(StringUtils.leftPad(getFormaPagamentoTurismo().trim(),2,"0"));
- sb.append(StringUtils.leftPad(getTipoPagamentoTurismo().trim(), 2, "0"));
- sb.append(StringUtils.rightPad("", 80, " "));
- sb.append(StringUtils.rightPad(StringUtils.isNotEmpty(numeroEstabelecimento) ? StringUtils.rightPad(numeroEstabelecimento, 10, "0").substring(0,10) : "", 10, "0"));
- sb.append(StringUtils.rightPad(StringUtils.isNotEmpty(codigoAutorizacao) ? StringUtils.rightPad(codigoAutorizacao, 25, "0").substring(0,24) : "", 25, " "));
- sb.append(StringUtils.leftPad(formaPagamentoId, 2, "0"));
- sb.append(StringUtils.isNotEmpty(cantParcelas) ? StringUtils.leftPad(cantParcelas, 4,"0") : "0000");
- sb.append(numfoliosistema);
- sb.append(txId);
+ sb.append(StringUtils.leftPad(numeroContratoTurismo.trim(), 10, "0"));//107
+ sb.append(StringUtils.leftPad(numeroReciboTurismo.trim(), 10, "0"));//117
+ sb.append(StringUtils.leftPad(getFormaPagamentoTurismo().trim(),2,"0"));//119
+ sb.append(StringUtils.leftPad(getTipoPagamentoTurismo().trim(), 2, "0"));//121
+ sb.append(StringUtils.rightPad(StringUtils.isNotEmpty(descricaoDetalhada) ? truncStr(descricaoDetalhada, 80) : "", 80, " ")); //201
+ sb.append(StringUtils.rightPad(StringUtils.isNotEmpty(numeroEstabelecimento) ? StringUtils.rightPad(numeroEstabelecimento, 10, "0").substring(0,10) : "", 10, "0")); //211
+ sb.append(StringUtils.rightPad(StringUtils.isNotEmpty(codigoAutorizacao) ? StringUtils.rightPad(codigoAutorizacao, 22, " ").substring(0,22) : "", 22, " "));//237
+ sb.append(StringUtils.leftPad("0", 2, "0"));//239
+ sb.append(StringUtils.leftPad(" ", 1, " "));//239
+ sb.append(StringUtils.leftPad(formaPagamentoId, 2, "0"));//239
+ sb.append(StringUtils.isNotEmpty(cantParcelas) ? StringUtils.leftPad(cantParcelas, 4,"0") : "0000");//243
+ sb.append(StringUtils.leftPad(numfoliosistema,16, " "));//259
+ sb.append(StringUtils.leftPad(txId,35, " "));//294
sb.append(finalLinha);
sb.append(System.getProperty("line.separator"));
rows.add(sb.toString());
@@ -55,7 +57,7 @@ public class DespesaReceitaComporte extends DespesaReceita {
}
public void setCodigoAutorizacao(String codigoAutorizacao) {
- this.codigoAutorizacao = StringUtils.rightPad(codigoAutorizacao != null ? truncStr(codigoAutorizacao, 25) : " ", 25, "0");
+ this.codigoAutorizacao = codigoAutorizacao;
}
public String getCantParcelas() {
@@ -71,7 +73,7 @@ public class DespesaReceitaComporte extends DespesaReceita {
}
public void setNumfoliosistema(String numfoliosistema) {
- this.numfoliosistema = StringUtils.leftPad(numfoliosistema != null ? numfoliosistema : "", 16, " ");
+ this.numfoliosistema = StringUtils.leftPad(numfoliosistema != null ? numfoliosistema :StringUtils.leftPad(" ", 16) , 16, " ");
}
public String getTxId() {
@@ -79,7 +81,7 @@ public class DespesaReceitaComporte extends DespesaReceita {
}
public void setTxId(String txId) {
- this.txId = StringUtils.leftPad(txId != null ? truncStr(txId, 36) : "", 35, " ");
+ this.txId = StringUtils.leftPad(txId != null ? truncStr(txId, 36) : StringUtils.leftPad(" ", 35), 35, " ");
}
}