Merge pull request 'fixes bug#AL-2979' (#7) from AL-2979 into master

Reviewed-on: adm/IntegracaoReceitaDespesa#7
Reviewed-by: aristides <aristides@rjconsultores.com.br>
master
Gleison da Cruz 2023-08-30 17:46:00 +00:00
commit 069a4e5132
4 changed files with 246 additions and 46 deletions

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId> <groupId>br.com.rjconsultores</groupId>
<artifactId>IntegracaoReceitaDespesa</artifactId> <artifactId>IntegracaoReceitaDespesa</artifactId>
<version>1.2.4</version> <version>1.2.5</version>
<distributionManagement> <distributionManagement>
<repository> <repository>

View File

@ -69,28 +69,17 @@ public class Totalbus {
} }
public List<String> getDespesasReceitas(Integer puntoventaId, Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM, boolean isLayoutNovo) throws IntegracaoReceitaDespesaException{ public List<String> getDespesasReceitas(Integer puntoventaId, Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM, boolean isLayoutNovo) throws IntegracaoReceitaDespesaException{
log.debug("gerando depositos..."); List<String> rows = new ArrayList<String>();
List<DespesaReceita> 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...");
if (isReceitasDespesasComporte){ if (isReceitasDespesasComporte){
log.debug("gerando depositos...");
List<DespesaReceitaComporte> 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)); despesasReceitas.addAll(getDespesaCartaoDebCredComporte(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM));
log.debug("gerando receitas..."); log.debug("gerando receitas...");
despesasReceitas.addAll(getReceitasComporte(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM)); despesasReceitas.addAll(getReceitasComporte(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM));
}else {
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<String> rows = new ArrayList<String>();
if( isLayoutNovo ) { if( isLayoutNovo ) {
for (DespesaReceita item : despesasReceitas) { for (DespesaReceita item : despesasReceitas) {
item.preencheLinhaLayoutNovo(rows); item.preencheLinhaLayoutNovo(rows);
@ -100,6 +89,28 @@ public class Totalbus {
item.preencheLinha(rows); item.preencheLinha(rows);
} }
} }
}else {
log.debug("gerando depositos...");
List<DespesaReceita> 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);
}
if( isLayoutNovo ) {
for (DespesaReceita item : despesasReceitas) {
item.preencheLinhaLayoutNovo(rows);
}
}else {
for (DespesaReceita item : despesasReceitas) {
item.preencheLinha(rows);
}
}
}
return rows; return rows;
} }
@ -560,7 +571,8 @@ public class Totalbus {
sb.append(" ct.numautorizacion as numautorizacion, "); sb.append(" ct.numautorizacion as numautorizacion, ");
sb.append(" pte.numsitef as numeroEstabelecimento, "); sb.append(" pte.numsitef as numeroEstabelecimento, ");
sb.append(" b.numfoliosistema,"); sb.append(" b.numfoliosistema,");
sb.append(" ct.tx_id"); sb.append(" ct.tx_id, ");
sb.append(" b.num_bpe ");
sb.append(" from "); sb.append(" from ");
sb.append(" caja_diversos cd "); sb.append(" caja_diversos cd ");
sb.append(" left join evento_extra ev on ev.eventoextra_id = cd.eventoextra_id "); 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.setCodigoEmpresa(rs.getInt(2));
despesa.setCodigoReceitaDespesa(rs.getString(5)); despesa.setCodigoReceitaDespesa(rs.getString(5));
if(StringUtils.isNotBlank(rs.getString(5)) && (rs.getString(5).equals("22") || rs.getString(5).equals("8101"))) { 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 { }else {
despesa.setNumfoliosistema(""); despesa.setNumfoliosistema("");
} }
@ -757,8 +769,8 @@ public class Totalbus {
return despesas; return despesas;
} }
public List<DespesaReceita> getReceitasComporte(final Integer puntoVentaId, final Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) throws IntegracaoReceitaDespesaException { public List<DespesaReceitaComporte> getReceitasComporte(final Integer puntoVentaId, final Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) throws IntegracaoReceitaDespesaException {
List<DespesaReceita> despesas = new ArrayList<DespesaReceita>(); List<DespesaReceitaComporte> despesas = new ArrayList<DespesaReceitaComporte>();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append(" select "); sb.append(" select ");
sb.append(" cd.feccorte AS fechorvta, "); sb.append(" cd.feccorte AS fechorvta, ");
@ -773,7 +785,7 @@ public class Totalbus {
sb.append(" ct.numautorizacion AS numautorizacion, "); sb.append(" ct.numautorizacion AS numautorizacion, ");
sb.append(" pte.numsitef AS numeroestabelecimento, "); sb.append(" pte.numsitef AS numeroestabelecimento, ");
sb.append(" ct.cantparcelas, "); 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(" ct.tx_id");
sb.append(" from "); sb.append(" from ");
sb.append(" caja_diversos cd "); sb.append(" caja_diversos cd ");
@ -810,11 +822,7 @@ public class Totalbus {
DespesaReceitaComporte receita = new DespesaReceitaComporte(); DespesaReceitaComporte receita = new DespesaReceitaComporte();
receita.setCodigoEmpresa(rs.getInt(2)); receita.setCodigoEmpresa(rs.getInt(2));
receita.setCodigoReceitaDespesa(rs.getString(5)); 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)); receita.setNumfoliosistema(rs.getString(13));
}else {
receita.setNumfoliosistema("");
}
receita.setDataLancamento(rs.getDate(1)); receita.setDataLancamento(rs.getDate(1));
receita.setDataMovimento(rs.getDate(1)); receita.setDataMovimento(rs.getDate(1));
receita.setLocalArrecadacao(rs.getString(6)); receita.setLocalArrecadacao(rs.getString(6));
@ -1060,6 +1068,7 @@ public class Totalbus {
log.error(ignore.getMessage(), ignore); log.error(ignore.getMessage(), ignore);
} }
} }
return depositos; return depositos;
} }
@ -1213,4 +1222,193 @@ public class Totalbus {
System.out.println(new BigDecimal("0").signum()); System.out.println(new BigDecimal("0").signum());
} }
public List<DespesaReceitaComporte> getDepositosComporte(Integer puntoventaId, Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM, boolean isLayoutNovo) throws IntegracaoReceitaDespesaException {
List<DespesaReceitaComporte> depositos = new ArrayList<DespesaReceitaComporte>();
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<DespesaReceitaComporte> getDespesasComporte(Integer puntoventaId, Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM, boolean isLayoutNovo ) throws IntegracaoReceitaDespesaException {
List<DespesaReceitaComporte> despesas = new ArrayList<DespesaReceitaComporte>();
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;
}
} }

View File

@ -26,17 +26,19 @@ public class DespesaReceitaComporte extends DespesaReceita {
sb.append(StringUtils.leftPad(codigoReceitaDespesa.trim(), 10, "0")); //83 sb.append(StringUtils.leftPad(codigoReceitaDespesa.trim(), 10, "0")); //83
sb.append(StringUtils.rightPad(identificadorReceitaDespesa.toUpperCase().trim(), 1, "0")); //84 sb.append(StringUtils.rightPad(identificadorReceitaDespesa.toUpperCase().trim(), 1, "0")); //84
sb.append(StringUtils.leftPad(valorLancamento.trim(), 13, "0")); //97 sb.append(StringUtils.leftPad(valorLancamento.trim(), 13, "0")); //97
sb.append(StringUtils.leftPad(numeroContratoTurismo.trim(), 10, "0")); sb.append(StringUtils.leftPad(numeroContratoTurismo.trim(), 10, "0"));//107
sb.append(StringUtils.leftPad(numeroReciboTurismo.trim(), 10, "0")); sb.append(StringUtils.leftPad(numeroReciboTurismo.trim(), 10, "0"));//117
sb.append(StringUtils.leftPad(getFormaPagamentoTurismo().trim(),2,"0")); sb.append(StringUtils.leftPad(getFormaPagamentoTurismo().trim(),2,"0"));//119
sb.append(StringUtils.leftPad(getTipoPagamentoTurismo().trim(), 2, "0")); sb.append(StringUtils.leftPad(getTipoPagamentoTurismo().trim(), 2, "0"));//121
sb.append(StringUtils.rightPad("", 80, " ")); 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")); 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, 25, "0").substring(0,24) : "", 25, " ")); sb.append(StringUtils.rightPad(StringUtils.isNotEmpty(codigoAutorizacao) ? StringUtils.rightPad(codigoAutorizacao, 22, " ").substring(0,22) : "", 22, " "));//237
sb.append(StringUtils.leftPad(formaPagamentoId, 2, "0")); sb.append(StringUtils.leftPad("0", 2, "0"));//239
sb.append(StringUtils.isNotEmpty(cantParcelas) ? StringUtils.leftPad(cantParcelas, 4,"0") : "0000"); sb.append(StringUtils.leftPad(" ", 1, " "));//239
sb.append(numfoliosistema); sb.append(StringUtils.leftPad(formaPagamentoId, 2, "0"));//239
sb.append(txId); 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(finalLinha);
sb.append(System.getProperty("line.separator")); sb.append(System.getProperty("line.separator"));
rows.add(sb.toString()); rows.add(sb.toString());
@ -55,7 +57,7 @@ public class DespesaReceitaComporte extends DespesaReceita {
} }
public void setCodigoAutorizacao(String codigoAutorizacao) { public void setCodigoAutorizacao(String codigoAutorizacao) {
this.codigoAutorizacao = StringUtils.rightPad(codigoAutorizacao != null ? truncStr(codigoAutorizacao, 25) : " ", 25, "0"); this.codigoAutorizacao = codigoAutorizacao;
} }
public String getCantParcelas() { public String getCantParcelas() {
@ -71,7 +73,7 @@ public class DespesaReceitaComporte extends DespesaReceita {
} }
public void setNumfoliosistema(String numfoliosistema) { 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() { public String getTxId() {
@ -79,7 +81,7 @@ public class DespesaReceitaComporte extends DespesaReceita {
} }
public void setTxId(String txId) { 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, " ");
} }
} }