bug#11600

dev: julio
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@83856 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2018-08-02 14:23:44 +00:00
parent f7d8140953
commit 8b30be4374
3 changed files with 60 additions and 140 deletions

View File

@ -48,79 +48,51 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
List<ExportacaoBPEBase> registros = new ArrayList<ExportacaoBPEBase>(); List<ExportacaoBPEBase> registros = new ArrayList<ExportacaoBPEBase>();
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append(" select distinct "); sql.append("select distinct ");
sql.append(" c.caja_id, "); sql.append(" c.boleto_id, ");
sql.append(" c.numfoliosistema as numfoliosistema, "); sql.append(" c.numfoliosistema as numfoliosistema, ");
sql.append(" coalesce(c.preciopagado,0) + coalesce(c.importetaxaembarque,0) + coalesce(c.importeseguro,0) + coalesce(c.importepedagio,0) + coalesce(c.importeoutros,0) as valortotal, "); sql.append(" coalesce(c.preciopagado,0) + coalesce(c.importetaxaembarque,0) + coalesce(c.importeseguro,0) + coalesce(c.importepedagio,0) + coalesce(c.importeoutros,0) as valortotal, ");
sql.append(" bpe.codstat as codstatus, "); sql.append(" bpe.codstat as codstatus, ");
sql.append(" DBMS_LOB.substr(bpe.xmlregular, 3000) as xml_bpe, "); sql.append(" DBMS_LOB.substr(bpe.xmlregular, 3000) as xml_bpe, ");
sql.append(" DBMS_LOB.substr(bpe.xmlregular, 3000, 3001) as xml_bpe_2, "); sql.append(" DBMS_LOB.substr(bpe.xmlregular, 3000, 3001) as xml_bpe_2, ");
sql.append(" DBMS_LOB.substr(bpe.xmlregular, 3000, 6001) as xml_bpe_3, "); sql.append(" DBMS_LOB.substr(bpe.xmlregular, 3000, 6001) as xml_bpe_3, ");
sql.append(" bpe.tipoevento as tipoevento, "); sql.append(" bpe.tipoevento as tipoevento, ");
sql.append(" bpe.desconto as v_desconto, "); sql.append(" bpe.desconto as v_desconto, ");
sql.append(" bpe.chbpe, "); sql.append(" bpe.chbpe, ");
sql.append(" coalesce(chbpe_substituicao, ' ') as chbpe_sub, "); sql.append(" coalesce(chbpe_substituicao, ' ') as chbpe_sub, ");
sql.append(" to_char(c.feccreacion, 'yyyymmdd') as dhrecbto, "); sql.append(" c.fechorventa, ");
sql.append(" to_char(c.fechorviaje, 'yyyymmdd') as dh_emisao, "); sql.append(" c.feccreacion, ");
sql.append(" coalesce(bpe.tiposubstituicao, '0') as tp_bpe, "); sql.append(" to_char(c.feccreacion, 'yyyymmdd') as dhrecbto, ");
sql.append(" bpe.retorno_id as retorno, "); sql.append(" coalesce(to_char(c.fechorviaje, 'yyyymmdd'), ' ') as dh_emisao, ");
sql.append(" bpe.nprot, "); sql.append(" coalesce(bpe.tiposubstituicao, '0') as tp_bpe, ");
sql.append(" coalesce(c.num_bpe, c.numfoliosistema) as num_bpe, "); sql.append(" bpe.retorno_id as retorno, ");
sql.append(" coalesce(c.numserie_bpe, '1') as numserie_bpe, "); sql.append(" bpe.nprot, ");
sql.append(" c.categoria_id, "); sql.append(" coalesce(c.num_bpe, c.numfoliosistema) as num_bpe, ");
sql.append(" e.codestabelecimento as cod_estabelecimento, "); sql.append(" coalesce(c.numserie_bpe, '1') as numserie_bpe, ");
sql.append(" ep.crtbpe as crt, "); sql.append(" c.categoria_id, ");
sql.append(" (case when (coalesce(case when s.aliasorigen_id is null then po.regionmetropolitana_id else pos.regionmetropolitana_id end, -1) = coalesce(case when s.aliasorigen_id is null then pd.regionmetropolitana_id else pds.regionmetropolitana_id end, -2)) then 1 else 0 end) as isenta, "); sql.append(" e.codestabelecimento as cod_estabelecimento, ");
sql.append(" ((case when coalesce(r.indtribtarifa,0) = 1 then c.preciopagado else 0 end) + (case when coalesce(r.indtribtaxaembarque,0) = 1 then c.importetaxaembarque else 0 end) + (case when coalesce(r.indtribpedagio,0) = 1 then c.importepedagio else 0 end)) as valortributado, "); sql.append(" ep.crtbpe as crt, ");
sql.append(" (case when s.aliasorigen_id is null then co.codibge else cos.codibge end) as municipio_origem, "); sql.append(" ((case when coalesce(r.indtribtarifa,0) = 1 then c.preciopagado else 0 end) + (case when coalesce(r.indtribtaxaembarque,0) = 1 then c.importetaxaembarque else 0 end) + (case when coalesce(r.indtribpedagio,0) = 1 then c.importepedagio else 0 end)) as valortributado, ");
sql.append(" (case when s.aliasorigen_id is null then eo.cveestado else eos.cveestado end) as estado_origem, "); sql.append(" ei.porcredbaseicms as red_base_calc_estadual, ");
sql.append(" (case when s.aliasdestino_id is null then cd.codibge else cds.codibge end) as municipio_destino, "); sql.append(" ei.porcredbaseicmsim as red_base_calc_municipal, ");
sql.append(" (case when s.aliasdestino_id is null then ed.cveestado else eds.cveestado end) as estado_destino, "); sql.append(" ei.porcredmunicipal as porc_red_municipal, ");
sql.append(" (case when s.aliasorigen_id is null then ei.porcredbaseicms else eis.porcredbaseicms end) as red_base_calc_estadual, "); sql.append(" ei.porcredestadual as porc_red_estadual, ");
sql.append(" (case when s.aliasorigen_id is null then ei.porcredbaseicmsim else eis.porcredbaseicmsim end) as red_base_calc_municipal, "); sql.append(" ei.tributacaoimportacao as tributacao_importacao, ");
sql.append(" (case when s.aliasorigen_id is null then ei.porcredmunicipal else eis.porcredmunicipal end) as porc_red_municipal, "); sql.append(" ei.codigocontabilestadual as codigocontabil_estadual, ");
sql.append(" (case when s.aliasorigen_id is null then ei.porcredestadual else eis.porcredestadual end) as porc_red_estadual, "); sql.append(" ei.codigocontabilmunicipal as codigocontabil_municipal ");
sql.append(" (case when s.aliasorigen_id is null then ei.tributacaoimportacao else eis.tributacaoimportacao end) as tributacao_importacao, "); sql.append("from boleto c ");
sql.append(" (case when s.aliasorigen_id is null then ei.codigocontabilestadual else eis.codigocontabilestadual end) as codigocontabil_estadual, "); sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id ");
sql.append(" (case when s.aliasorigen_id is null then ei.codigocontabilmunicipal else eis.codigocontabilmunicipal end) as codigocontabil_municipal "); sql.append(" join estado e on e.codibge = bpe.uf ");
sql.append(" from caja c "); sql.append(" join empresa ep on c.empresacorrida_id = ep.empresa_id ");
sql.append(" join bpe bpe on c.transacao_id = bpe.boleto_id "); sql.append(" join ruta r on r.ruta_id = c.ruta_id ");
sql.append(" join estado e_bpe on e_bpe.codibge = bpe.uf "); sql.append(" left join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = e.estado_id ");
sql.append(" join empresa ep on c.empresacorrida_id = ep.empresa_id "); sql.append("where c.activo = 1 and e.activo = 1 and ei.activo = 1 ");
sql.append(" join ruta r on r.ruta_id = c.ruta_id "); sql.append(" and bpe.tipoamb = 1 ");
sql.append(" join parada po on po.parada_id = c.origen_id "); sql.append(" and (case when ei.indtribviagem = 1 then c.fechorviaje else c.feccreacion end) >= to_date(?,'DD/MM/YYYY HH24:MI:SS') ");
sql.append(" join ciudad co on co.ciudad_id = po.ciudad_id "); sql.append(" and (case when ei.indtribviagem = 1 then c.fechorviaje else c.feccreacion end) <= to_date(?,'DD/MM/YYYY HH24:MI:SS')");
sql.append(" join estado eo on eo.estado_id = co.estado_id "); sql.append(" and c.empresacorrida_id = ? ");
sql.append(" join parada pd on pd.parada_id = c.destino_id "); sql.append(" and e.cveestado = ? ");
sql.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id "); sql.append("order by dhrecbto, numfoliosistema ");
sql.append(" join estado ed on ed.estado_id = cd.estado_id ");
sql.append(" join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = eo.estado_id ");
sql.append(" left join estado e on e.estado_id = e_bpe.estado_id ");
sql.append(" left join alias_servico s on s.origen_id = c.origen_id and s.destino_id = c.destino_id and (s.corrida_id = c.corrida_id or s.corrida_id is null) and s.ruta_id = c.ruta_id ");
sql.append(" left join parada pos on pos.parada_id = s.aliasorigen_id ");
sql.append(" left join ciudad cos on cos.ciudad_id = pos.ciudad_id ");
sql.append(" left join estado eos on eos.estado_id = cos.estado_id ");
sql.append(" left join parada pds on pds.parada_id = s.aliasdestino_id ");
sql.append(" left join ciudad cds on cds.ciudad_id = pds.ciudad_id ");
sql.append(" left join estado eds on eds.estado_id = cds.estado_id ");
sql.append(" left join empresa_imposto eis on eis.empresa_id = c.empresacorrida_id and eis.estado_id = eos.estado_id ");
sql.append(" where c.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 ");
sql.append(" and coalesce(case when s.aliasorigen_id is null then ei.activo else eis.activo end, 0) = 1 ");
sql.append(" and bpe.tipoamb = 1 ");
// sql.append(" and ((c.indreimpresion = 0 and c.motivocancelacion_id is null and c.numfoliosistema is not null) or (c.indstatusboleto = 'E' and c.indreimpresion = 1)) ");
// sql.append(" and ((case when coalesce(r.indtribtarifa,0) = 1 then c.preciopagado else 0 end) + (case when coalesce(r.indtribtaxaembarque,0) = 1 then c.importetaxaembarque else 0 end) + (case when coalesce(r.indtribpedagio,0) = 1 then c.importepedagio else 0 end)) > 0 ");
// sql.append(" and c.feccreacion >= to_date(?,'DD/MM/YYYY HH24:MI:SS') and c.feccreacion <= to_date(?,'DD/MM/YYYY HH24:MI:SS') ");
sql.append(" and (case when (case when s.aliasorigen_id is null then ei.indtribviagem else eis.indtribviagem end) = 1 then ");
sql.append(" c.fechorviaje else c.feccreacion end) >= to_date(?,'DD/MM/YYYY HH24:MI:SS') ");
sql.append(" and (case when (case when s.aliasorigen_id is null then ei.indtribviagem else eis.indtribviagem end) = 1 then ");
sql.append(" c.fechorviaje else c.feccreacion end) <= to_date(?,'DD/MM/YYYY HH24:MI:SS') ");
sql.append(" and c.empresacorrida_id = ? ");
sql.append(" and ((case when s.aliasorigen_id is null then eo.cveestado else eos.cveestado end) = ?) ");
sql.append(" order by dhrecbto, chbpe, numfoliosistema ");
try { try {
PreparedStatement ps = connection.prepareStatement(sql.toString()); PreparedStatement ps = connection.prepareStatement(sql.toString());
@ -144,8 +116,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
} }
ExportacaoBPEBase registro = new ExportacaoBPEBase(); ExportacaoBPEBase registro = new ExportacaoBPEBase();
registro.setBoletoId(rs.getLong("boleto_id"));
registro.setCajaId(rs.getLong("caja_id"));
registro.setNumfoliosistema(rs.getString("numfoliosistema")); registro.setNumfoliosistema(rs.getString("numfoliosistema"));
registro.setvDesconto(rs.getBigDecimal("v_desconto")); registro.setvDesconto(rs.getBigDecimal("v_desconto"));
registro.setChbpe(rs.getString("chbpe")); registro.setChbpe(rs.getString("chbpe"));
@ -158,11 +129,6 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
registro.setNumBpe(rs.getString("num_bpe")); registro.setNumBpe(rs.getString("num_bpe"));
registro.setNumSerieBpe(rs.getString("numserie_bpe")); registro.setNumSerieBpe(rs.getString("numserie_bpe"));
registro.setCodEstabelecimento(rs.getString("cod_estabelecimento")); registro.setCodEstabelecimento(rs.getString("cod_estabelecimento"));
registro.setIsenta(rs.getBoolean("isenta"));
registro.setMunicipioOrigem(rs.getString("municipio_origem"));
registro.setEstadoOrigem(rs.getString("estado_origem"));
registro.setMunicipioDestino(rs.getString("municipio_destino"));
registro.setEstadoDestino(rs.getString("estado_destino"));
registro.setRedBaseCalcEstadual(rs.getBigDecimal("red_base_calc_estadual")); registro.setRedBaseCalcEstadual(rs.getBigDecimal("red_base_calc_estadual"));
registro.setRedBaseCalcMunicipal(rs.getBigDecimal("red_base_calc_municipal")); registro.setRedBaseCalcMunicipal(rs.getBigDecimal("red_base_calc_municipal"));
registro.setPorcRedMunicipal(rs.getBigDecimal("porc_red_municipal")); registro.setPorcRedMunicipal(rs.getBigDecimal("porc_red_municipal"));

View File

@ -6,7 +6,7 @@ import java.util.List;
public class ExportacaoBPEBase { public class ExportacaoBPEBase {
private Long cajaId; private Long boletoId;
private String numfoliosistema; private String numfoliosistema;
private BigDecimal valortotal; private BigDecimal valortotal;
private BigDecimal vDesconto; private BigDecimal vDesconto;
@ -20,12 +20,7 @@ public class ExportacaoBPEBase {
private String numBpe; private String numBpe;
private String numSerieBpe; private String numSerieBpe;
private String codEstabelecimento; private String codEstabelecimento;
private boolean isenta;
private BigDecimal valortributado; private BigDecimal valortributado;
private String municipioOrigem;
private String estadoOrigem;
private String municipioDestino;
private String estadoDestino;
private BigDecimal redBaseCalcEstadual; private BigDecimal redBaseCalcEstadual;
private BigDecimal redBaseCalcMunicipal; private BigDecimal redBaseCalcMunicipal;
private BigDecimal porcRedMunicipal; private BigDecimal porcRedMunicipal;
@ -52,12 +47,12 @@ public class ExportacaoBPEBase {
listaRegistroPRC = new ArrayList<ExportacaoBPETipoPRC>(0); listaRegistroPRC = new ArrayList<ExportacaoBPETipoPRC>(0);
} }
public Long getCajaId() { public Long getBoletoId() {
return cajaId; return boletoId;
} }
public void setCajaId(Long cajaId) { public void setBoletoId(Long boletoId) {
this.cajaId = cajaId; this.boletoId = boletoId;
} }
public String getNumfoliosistema() { public String getNumfoliosistema() {
@ -164,14 +159,6 @@ public class ExportacaoBPEBase {
this.codEstabelecimento = codEstabelecimento; this.codEstabelecimento = codEstabelecimento;
} }
public boolean isIsenta() {
return isenta;
}
public void setIsenta(boolean isenta) {
this.isenta = isenta;
}
public BigDecimal getValortributado() { public BigDecimal getValortributado() {
return valortributado; return valortributado;
} }
@ -180,38 +167,6 @@ public class ExportacaoBPEBase {
this.valortributado = valortributado; this.valortributado = valortributado;
} }
public String getMunicipioOrigem() {
return municipioOrigem;
}
public void setMunicipioOrigem(String municipioOrigem) {
this.municipioOrigem = municipioOrigem;
}
public String getEstadoOrigem() {
return estadoOrigem;
}
public void setEstadoOrigem(String estadoOrigem) {
this.estadoOrigem = estadoOrigem;
}
public String getMunicipioDestino() {
return municipioDestino;
}
public void setMunicipioDestino(String municipioDestino) {
this.municipioDestino = municipioDestino;
}
public String getEstadoDestino() {
return estadoDestino;
}
public void setEstadoDestino(String estadoDestino) {
this.estadoDestino = estadoDestino;
}
public BigDecimal getRedBaseCalcEstadual() { public BigDecimal getRedBaseCalcEstadual() {
return redBaseCalcEstadual; return redBaseCalcEstadual;
} }

View File

@ -58,11 +58,7 @@ public class ExportacaoBPEVo {
String indContribuicaoPrevidenciaria = "00000060"; String indContribuicaoPrevidenciaria = "00000060";
boolean isInterMunicipal = registro.getEstadoOrigem().equals(registro.getEstadoDestino());
String codigoContabil = isInterMunicipal ? registro.getCodigocontabilMunicipal() : registro.getCodigoContabilEstadual();
boolean isCancelamento = (registro.getCodstatus() == null ? false : (registro.getCodstatus().equals(StatusBpe.EVENTOS))); boolean isCancelamento = (registro.getCodstatus() == null ? false : (registro.getCodstatus().equals(StatusBpe.EVENTOS)));
String tpDoc = isCancelamento ? "1" : (StringUtils.isBlank(registro.getChbpeSub()) ? "0" : "2");
TBPe tbpe = null; TBPe tbpe = null;
String xml = isCancelamento ? registro.getXmlAnterior() : registro.getXml(); String xml = isCancelamento ? registro.getXmlAnterior() : registro.getXml();
@ -70,11 +66,15 @@ public class ExportacaoBPEVo {
if (xml != null) if (xml != null)
tbpe = convertXmlToBpe(xml); tbpe = convertXmlToBpe(xml);
String municipioOrigem = StringUtils.substring((StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getCMunIni() : registro.getMunicipioOrigem()), 2); String municipioOrigem = StringUtils.substring(tbpe.getInfBPe().getIde().getCMunIni(), 2);
String municipioDestino = StringUtils.substring((StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getCMunFim() : registro.getMunicipioDestino()), 2); String municipioDestino = StringUtils.substring(tbpe.getInfBPe().getIde().getCMunFim(), 2);
String estadoOrigem = tbpe.getInfBPe().getIde().getUFIni().value();
String estadoDestino = tbpe.getInfBPe().getIde().getUFFim().value();
String estadoOrigem = (StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getUFIni().value() : registro.getEstadoOrigem()); boolean isInterMunicipal = estadoOrigem.equals(estadoDestino);
String estadoDestino = (StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getUFFim().value() : registro.getEstadoDestino()); String codigoContabil = isInterMunicipal ? registro.getCodigocontabilMunicipal() : registro.getCodigoContabilEstadual();
String tpDoc = isCancelamento ? "1" : (StringUtils.isBlank(registro.getChbpeSub()) ? "0" : "2");
if (isCancelamento) { if (isCancelamento) {
@ -104,9 +104,8 @@ public class ExportacaoBPEVo {
BigDecimal valorBruto = new BigDecimal(vBP == null ? "0.0" : vBP); BigDecimal valorBruto = new BigDecimal(vBP == null ? "0.0" : vBP);
String tpBpe = (StringUtils.isBlank(registro.getChbpeSub()) ? "1" : "2");
// String tpBpe = tbpe.getInfBPe().getIde().getTpBPe();
String chbpeSub = tbpe.getInfBPe().getInfBPeSub() == null ? "" : tbpe.getInfBPe().getInfBPeSub().getChBPe(); String chbpeSub = tbpe.getInfBPe().getInfBPeSub() == null ? "" : tbpe.getInfBPe().getInfBPeSub().getChBPe();
String tpBpe = (StringUtils.isBlank(tbpe.getInfBPe().getInfBPeSub() == null ? "" : tbpe.getInfBPe().getInfBPeSub().getChBPe()) ? "1" : "2");
ExportacaoBPETipoBPE tipoBPE = new ExportacaoBPETipoBPE(registro.getCodEstabelecimento(), registro.getChbpe(), registro.getNumSerieBpe(), ExportacaoBPETipoBPE tipoBPE = new ExportacaoBPETipoBPE(registro.getCodEstabelecimento(), registro.getChbpe(), registro.getNumSerieBpe(),
registro.getNumBpe(), registro.getDhrecbto(), tpDoc, registro.getDhEmisao(), valorBruto, registro.getNumBpe(), registro.getDhrecbto(), tpDoc, registro.getDhEmisao(), valorBruto,