13559: ADM – Geração de informações RecDespDiv e DepBco (parte 2)

fixes bug#13559
dev:valdevir
qua:Juliane

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/Integracion/IntegracaoReceitaDespesa/trunk/IntegracaoReceitaDespesa@90970 d1611594-4594-4d17-8e1d-87c2c4800839
master
leonardo 2019-03-20 14:27:34 +00:00
parent 7168eee984
commit 8303cdd25c
5 changed files with 219 additions and 32 deletions

View File

@ -30,6 +30,7 @@ public class BGMApplication {
private static final int TAMANHO_BUFFER = 4096; // 4kb private static final int TAMANHO_BUFFER = 4096; // 4kb
private boolean isReceitasDespesasComporte;
private BGMApplication(){ private BGMApplication(){
@ -71,7 +72,12 @@ public class BGMApplication {
return props; return props;
} }
public String executaExportacao(Date dataInicio, Date dataFinal, String diretorio, Integer empresaId, Integer puntoVentaId, Connection con,String pathGravacaoExternaArquivos, boolean incluiTipoPagamentoTurismoBGM) throws IllegalArgumentException{ public String executaExportacao(Date dataInicio, Date dataFinal, String diretorio, Integer empresaId, Integer puntoVentaId, Connection con,String pathGravacaoExternaArquivos, boolean incluiTipoPagamentoTurismoBGM, boolean isReceitasDespesasComporte) throws IllegalArgumentException, IntegracaoReceitaDespesaException{
this.isReceitasDespesasComporte = isReceitasDespesasComporte;
return executaExportacao(dataInicio, dataFinal, diretorio, empresaId, puntoVentaId, con, pathGravacaoExternaArquivos, incluiTipoPagamentoTurismoBGM);
}
public String executaExportacao(Date dataInicio, Date dataFinal, String diretorio, Integer empresaId, Integer puntoVentaId, Connection con,String pathGravacaoExternaArquivos, boolean incluiTipoPagamentoTurismoBGM) throws IllegalArgumentException, IntegracaoReceitaDespesaException{
if (empresaId == null){ if (empresaId == null){
throw new IllegalArgumentException("o parâmetro empesaId é obrigatório!"); throw new IllegalArgumentException("o parâmetro empesaId é obrigatório!");
} }
@ -79,7 +85,7 @@ public class BGMApplication {
throw new IllegalArgumentException("o parâmetro puntoVentaId é obrigatório!"); throw new IllegalArgumentException("o parâmetro puntoVentaId é obrigatório!");
} }
excluirArquivosZip(diretorio); excluirArquivosZip(diretorio);
Totalbus totalbus = new Totalbus(con); Totalbus totalbus = new Totalbus(con, isReceitasDespesasComporte);
if (totalbus.isConstanteBloqueioMenorQueData(empresaId, dataFinal)){ if (totalbus.isConstanteBloqueioMenorQueData(empresaId, dataFinal)){
totalbus.updateDataBloqueio(empresaId, dataFinal); totalbus.updateDataBloqueio(empresaId, dataFinal);
} }
@ -116,6 +122,8 @@ public class BGMApplication {
compactarArquivos(files, fileZip); compactarArquivos(files, fileZip);
return fileZip; return fileZip;
} catch (IntegracaoReceitaDespesaException e){
throw e;
} catch (Exception e) { } catch (Exception e) {
log.error("", e); log.error("", e);
return ""; return "";

View File

@ -0,0 +1,13 @@
package com.rjconsultores.integracaoreceitadespesa;
public class IntegracaoReceitaDespesaException extends Exception{
/**
*
*/
private static final long serialVersionUID = -5422391379643449955L;
public IntegracaoReceitaDespesaException(String message) {
super(message);
}
}

View File

@ -14,7 +14,9 @@ import java.util.List;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import com.rjconsultores.integracaoreceitadespesa.IntegracaoReceitaDespesaException;
import com.rjconsultores.integracaoreceitadespesa.entidades.DespesaReceita; import com.rjconsultores.integracaoreceitadespesa.entidades.DespesaReceita;
import com.rjconsultores.integracaoreceitadespesa.entidades.DespesaReceitaComporte;
import com.rjconsultores.integracaoreceitadespesa.entidades.Empresa; import com.rjconsultores.integracaoreceitadespesa.entidades.Empresa;
import com.rjconsultores.integracaoreceitadespesa.entidades.PuntoVenta; import com.rjconsultores.integracaoreceitadespesa.entidades.PuntoVenta;
@ -28,21 +30,28 @@ public class Totalbus {
private List<PuntoVenta> pontosVenda = new ArrayList<PuntoVenta>(); private List<PuntoVenta> pontosVenda = new ArrayList<PuntoVenta>();
private List<Empresa> empresas = new ArrayList<Empresa>(); private List<Empresa> empresas = new ArrayList<Empresa>();
private Boolean isReceitasDespesasComporte = false;
private DecimalFormat df = new DecimalFormat("#0.00"); private DecimalFormat df = new DecimalFormat("#0.00");
public Totalbus(Connection con) { public Totalbus(Connection con, Boolean isReceitasDespesasComporte) {
this.conn = con; this.conn = con;
this.isReceitasDespesasComporte = isReceitasDespesasComporte;
loadEmpresas(); loadEmpresas();
loadPuntosVenta(); loadPuntosVenta();
} }
public List<String> getDespesasReceitas(Integer puntoventaId, Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) { public List<String> getDespesasReceitas(Integer puntoventaId, Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) throws IntegracaoReceitaDespesaException{
log.debug("gerando depósitos..."); log.debug("gerando depósitos...");
List<DespesaReceita> despesasReceitas = getDepositos(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM); List<DespesaReceita> despesasReceitas = getDepositos(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM);
log.debug("gerando despesas..."); log.debug("gerando despesas...");
despesasReceitas.addAll(getDespesas(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM)); despesasReceitas.addAll(getDespesas(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM));
log.debug("gerando despesas cartão..."); log.debug("gerando despesas cartão...");
despesasReceitas.addAll(getDespesaCartaoDebCred(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM)); if (!isReceitasDespesasComporte){
despesasReceitas.addAll(getDespesaCartaoDebCred(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM));
} else {
despesasReceitas.addAll(getDespesaCartaoDebCredComporte(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM));
}
log.debug("gerando receitas..."); log.debug("gerando receitas...");
despesasReceitas.addAll(getReceitas(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM)); despesasReceitas.addAll(getReceitas(puntoventaId, empresaId, fechaParam, incluiTipoPagamentoTurismoBGM));
@ -116,7 +125,7 @@ public class Totalbus {
return this.conn; return this.conn;
} }
public List<DespesaReceita> getDespesaCartaoDebCred(final Integer puntoVentaId, final Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) { public List<DespesaReceita> getDespesaCartaoDebCred(final Integer puntoVentaId, final Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) throws IntegracaoReceitaDespesaException{
List<DespesaReceita> despesas = new ArrayList<DespesaReceita>(); List<DespesaReceita> despesas = new ArrayList<DespesaReceita>();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append(" select "); sb.append(" select ");
@ -185,6 +194,100 @@ public class Totalbus {
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.toString(), e); log.error(e.toString(), e);
throw new IntegracaoReceitaDespesaException("Erro ao processar Despesas Cartão Crédito/Débito");
} finally {
try {
rs.close();
} catch (Exception ignore) {
log.error("", ignore);
}
try {
stmt.close();
} catch (Exception ignore) {
log.error("", ignore);
}
}
return despesas;
}
public List<DespesaReceita> getDespesaCartaoDebCredComporte(final Integer puntoVentaId, final Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) throws IntegracaoReceitaDespesaException{
List<DespesaReceita> despesas = new ArrayList<DespesaReceita>();
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(" sum(cdp.importe) AS valor, ");
sb.append(" tee.contacontabil AS contacontabil, ");
sb.append(" pv.numpuntoventa AS numpuntoventa, ");
sb.append(" ev.tipoeventoextra_id, ");
sb.append(" cdp.formapago_id as formapagoId, ");
sb.append(" ct.numautorizacion as numautorizacion, ");
sb.append(" pte.numsitef as numeroEstabelecimento ");
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(" left join ptovta_empresa pte on pte.puntoventa_id = pv.puntoventa_id and pte.empresa_id = e.empresa_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 cdp.formapago_id in (2,3) ");
sb.append(" group by ");
sb.append(" cd.feccorte, ");
sb.append(" e.empresa_id, ");
sb.append(" pv.puntoventa_id, ");
sb.append(" tee.contacontabil, ");
sb.append(" pv.numpuntoventa, ev.tipoeventoextra_id, ");
sb.append(" cdp.formapago_id, ");
sb.append(" ct.numautorizacion, ");
sb.append(" pte.numsitef ");
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()) {
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(6));
if (rs.getBigDecimal(4).signum() == -1) {
despesa.setIdentificadorReceitaDespesa("R");
despesa.setValorLancamento(df.format(rs.getBigDecimal(4).multiply(new BigDecimal(-1))));
} else {
despesa.setIdentificadorReceitaDespesa("D");
despesa.setValorLancamento(df.format(rs.getBigDecimal(4)));
}
if (incluiTipoPagamentoTurismoBGM) {
despesa.setTipoPagamentoTurismo(rs.getString("tipoeventoextra_id"));
}
despesa.setFormaPagamentoId(rs.getString("formapagoId"));
despesa.setCodigoAutorizacao(rs.getString("numautorizacion"));
despesa.setNumeroEstabelecimento(rs.getString("numeroEstabelecimento"));
despesas.add(despesa);
}
} catch (Exception e) {
log.error(e.toString(), e);
throw new IntegracaoReceitaDespesaException("Erro ao processar Despesas Cartão Crédito/Débito");
} finally { } finally {
try { try {
rs.close(); rs.close();
@ -206,7 +309,7 @@ public class Totalbus {
} }
} }
public List<DespesaReceita> getReceitas(final Integer puntoVentaId, final Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) { public List<DespesaReceita> getReceitas(final Integer puntoVentaId, final Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) throws IntegracaoReceitaDespesaException {
List<DespesaReceita> despesas = new ArrayList<DespesaReceita>(); List<DespesaReceita> despesas = new ArrayList<DespesaReceita>();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append(" select "); sb.append(" select ");
@ -275,6 +378,7 @@ public class Totalbus {
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
throw new IntegracaoReceitaDespesaException("Erro ao processar Receitas");
} finally { } finally {
try { try {
rs.close(); rs.close();
@ -290,7 +394,7 @@ public class Totalbus {
return despesas; return despesas;
} }
public List<DespesaReceita> getDespesas(Integer puntoventaId, Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) { public List<DespesaReceita> getDespesas(Integer puntoventaId, Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) throws IntegracaoReceitaDespesaException {
List<DespesaReceita> despesas = new ArrayList<DespesaReceita>(); List<DespesaReceita> despesas = new ArrayList<DespesaReceita>();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append(" select "); sb.append(" select ");
@ -350,6 +454,7 @@ public class Totalbus {
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
throw new IntegracaoReceitaDespesaException("Erro ao processar Despesas");
} finally { } finally {
try { try {
rs.close(); rs.close();
@ -365,7 +470,7 @@ public class Totalbus {
return despesas; return despesas;
} }
public List<DespesaReceita> getDepositos(Integer puntoventaId, Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) { public List<DespesaReceita> getDepositos(Integer puntoventaId, Integer empresaId, Date fechaParam, boolean incluiTipoPagamentoTurismoBGM) throws IntegracaoReceitaDespesaException {
List<DespesaReceita> depositos = new ArrayList<DespesaReceita>(); List<DespesaReceita> depositos = new ArrayList<DespesaReceita>();
StringBuilder strFechamentos = new StringBuilder(); StringBuilder strFechamentos = new StringBuilder();
@ -439,6 +544,7 @@ public class Totalbus {
log.debug("Total depósitos: " + soma); log.debug("Total depósitos: " + soma);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
throw new IntegracaoReceitaDespesaException("Erro ao processar Depósitos");
} finally { } finally {
try { try {
pstmtFechamentos.close(); pstmtFechamentos.close();
@ -568,4 +674,10 @@ public class Totalbus {
public void setEmpresas(List<Empresa> empresas) { public void setEmpresas(List<Empresa> empresas) {
this.empresas = empresas; this.empresas = empresas;
} }
public void setIsReceitasDespesasComporte(Boolean isReceitasDespesasComporte) {
this.isReceitasDespesasComporte = isReceitasDespesasComporte;
}
} }

View File

@ -7,29 +7,29 @@ import java.util.List;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
public class DespesaReceita { public class DespesaReceita {
private String dataLancamento; // DD/MM/YYYY protected String dataLancamento; // DD/MM/YYYY
private String codigoEmpresa; // 011 003 Numérico protected String codigoEmpresa; // 011 003 Numérico
private final String codigoFilial = "001"; // 014 003 Numérico protected final String codigoFilial = "001"; // 014 003 Numérico
private String localArrecadação; // 017 005 Alfanumérico protected String localArrecadação; // 017 005 Alfanumérico
private final String numeroDaGuia = " "; // 022 025 Alfanumérico protected final String numeroDaGuia = " "; // 022 025 Alfanumérico
private String dataMovimento; // 047 010 Alfanumérico protected String dataMovimento; // 047 010 Alfanumérico
private final String usuarioGlobus = "TOTALBUS ";// 057 015 Alfanumérico protected final String usuarioGlobus = "TOTALBUS ";// 057 015 Alfanumérico
private final String turno = "01";// 072 002 Numérico protected final String turno = "01";// 072 002 Numérico
private String codigoReceitaDespesa;// 074 010 Numérico CONSTANTE CODIGO_RECEITA_DESPESA_GLOBUS protected String codigoReceitaDespesa;// 074 010 Numérico CONSTANTE CODIGO_RECEITA_DESPESA_GLOBUS
private String identificadorReceitaDespesa;// 084 001 Alfanumérico protected String identificadorReceitaDespesa;// 084 001 Alfanumérico
private String valorLancamento;// 085 013 Numérico protected String valorLancamento;// 085 013 Numérico
private final String numeroContratoTurismo = "0000000000";// 098 010 Numérico protected final String numeroContratoTurismo = "0000000000";// 098 010 Numérico
private final String numeroReciboTurismo = " ";// 108 010 Alfanumérico protected final String numeroReciboTurismo = " ";// 108 010 Alfanumérico
private final String formaPagamentoTurismo = "00";// 118 002 Numérico protected final String formaPagamentoTurismo = "00";// 118 002 Numérico
private String tipoPagamentoTurismo = "00";// 120 002 Numérico protected String tipoPagamentoTurismo = "00";// 120 002 Numérico
private String descricaoDetalhada = " ";// 122 100 Alfanumérico protected String descricaoDetalhada = " ";// 122 100 Alfanumérico
private final String documentoVenda = "000000";// 222 6 Numérico protected final String documentoVenda = "000000";// 222 6 Numérico
private final String tipoDocumentoVenda = " ";// 228 1 Alfanumérico protected final String tipoDocumentoVenda = " ";// 228 1 Alfanumérico
private final String numerodocumentoCPG = "0000000000";// 229 10 Numérico protected final String numerodocumentoCPG = "0000000000";// 229 10 Numérico
private final String finalLinha = "*";// 239 1 Alfanumérico protected final String finalLinha = "*";// 239 1 Alfanumérico
private String formaPagamentoId = "";// 240 Numérico protected String formaPagamentoId = "";// 240 Numérico
private SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); protected SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
public DespesaReceita() { public DespesaReceita() {
@ -118,7 +118,7 @@ public class DespesaReceita {
this.formaPagamentoId = formaPagamentoId; this.formaPagamentoId = formaPagamentoId;
} }
private String truncStr(String str, int size) { protected String truncStr(String str, int size) {
if (str.length() > size) { if (str.length() > size) {
return str.substring(0, size - 1); return str.substring(0, size - 1);
} }

View File

@ -0,0 +1,54 @@
package com.rjconsultores.integracaoreceitadespesa.entidades;
import java.util.List;
import org.apache.commons.lang.StringUtils;
public class DespesaReceitaComporte extends DespesaReceita {
protected String numeroEstabelecimento;
protected String codigoAutorizacao;
@Override
public void preencheLinha(List<String> rows) {
StringBuilder sb = new StringBuilder();
sb.append(dataLancamento);
sb.append(codigoEmpresa);
sb.append(codigoFilial);
sb.append(localArrecadação.toUpperCase());
sb.append(numeroDaGuia);
sb.append(dataMovimento);
sb.append(usuarioGlobus);
sb.append(turno);
sb.append(codigoReceitaDespesa);
sb.append(identificadorReceitaDespesa.toUpperCase());
sb.append(valorLancamento);
sb.append(numeroContratoTurismo);
sb.append(numeroReciboTurismo);
sb.append(getFormaPagamentoTurismo());
sb.append(getTipoPagamentoTurismo());
sb.append(descricaoDetalhada);
sb.append(numeroEstabelecimento);
sb.append(codigoAutorizacao);
sb.append(formaPagamentoId);
sb.append(finalLinha);
sb.append(System.getProperty("line.separator"));
rows.add(sb.toString());
}
public String getNumeroEstabelecimento() {
return numeroEstabelecimento;
}
public void setNumeroEstabelecimento(String numeroEstabelecimento) {
this.numeroEstabelecimento = StringUtils.leftPad(numeroEstabelecimento != null ? numeroEstabelecimento : "", 10, "0");
}
public String getCodigoAutorizacao() {
return codigoAutorizacao;
}
public void setCodigoAutorizacao(String codigoAutorizacao) {
this.codigoAutorizacao = StringUtils.rightPad(codigoAutorizacao != null ? truncStr(codigoAutorizacao, 22) : "", 22, " ");
}
}