diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java index 5f0cfee60..10eaa98ba 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java @@ -48,79 +48,51 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { List registros = new ArrayList(); StringBuilder sql = new StringBuilder(); - sql.append(" select distinct "); - sql.append(" c.caja_id, "); - 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(" bpe.codstat as codstatus, "); - 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, 6001) as xml_bpe_3, "); - sql.append(" bpe.tipoevento as tipoevento, "); - sql.append(" bpe.desconto as v_desconto, "); - sql.append(" bpe.chbpe, "); - sql.append(" coalesce(chbpe_substituicao, ' ') as chbpe_sub, "); - sql.append(" to_char(c.feccreacion, 'yyyymmdd') as dhrecbto, "); - sql.append(" to_char(c.fechorviaje, 'yyyymmdd') as dh_emisao, "); - sql.append(" coalesce(bpe.tiposubstituicao, '0') as tp_bpe, "); - sql.append(" bpe.retorno_id as retorno, "); - sql.append(" bpe.nprot, "); - sql.append(" coalesce(c.num_bpe, c.numfoliosistema) as num_bpe, "); - sql.append(" coalesce(c.numserie_bpe, '1') as numserie_bpe, "); - sql.append(" c.categoria_id, "); - sql.append(" e.codestabelecimento as cod_estabelecimento, "); - sql.append(" ep.crtbpe as crt, "); - 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(" ((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 co.codibge else cos.codibge end) as municipio_origem, "); - sql.append(" (case when s.aliasorigen_id is null then eo.cveestado else eos.cveestado end) as estado_origem, "); - sql.append(" (case when s.aliasdestino_id is null then cd.codibge else cds.codibge end) as municipio_destino, "); - sql.append(" (case when s.aliasdestino_id is null then ed.cveestado else eds.cveestado end) as estado_destino, "); - sql.append(" (case when s.aliasorigen_id is null then ei.porcredbaseicms else eis.porcredbaseicms end) as red_base_calc_estadual, "); - sql.append(" (case when s.aliasorigen_id is null then ei.porcredbaseicmsim else eis.porcredbaseicmsim end) as red_base_calc_municipal, "); - sql.append(" (case when s.aliasorigen_id is null then ei.porcredmunicipal else eis.porcredmunicipal end) as porc_red_municipal, "); - sql.append(" (case when s.aliasorigen_id is null then ei.porcredestadual else eis.porcredestadual end) as porc_red_estadual, "); - sql.append(" (case when s.aliasorigen_id is null then ei.tributacaoimportacao else eis.tributacaoimportacao end) as tributacao_importacao, "); - sql.append(" (case when s.aliasorigen_id is null then ei.codigocontabilestadual else eis.codigocontabilestadual end) as codigocontabil_estadual, "); - sql.append(" (case when s.aliasorigen_id is null then ei.codigocontabilmunicipal else eis.codigocontabilmunicipal end) as codigocontabil_municipal "); - sql.append(" from caja c "); - sql.append(" join bpe bpe on c.transacao_id = bpe.boleto_id "); - sql.append(" join estado e_bpe on e_bpe.codibge = bpe.uf "); - sql.append(" join empresa ep on c.empresacorrida_id = ep.empresa_id "); - sql.append(" join ruta r on r.ruta_id = c.ruta_id "); - sql.append(" join parada po on po.parada_id = c.origen_id "); - sql.append(" join ciudad co on co.ciudad_id = po.ciudad_id "); - sql.append(" join estado eo on eo.estado_id = co.estado_id "); - sql.append(" join parada pd on pd.parada_id = c.destino_id "); - sql.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id "); - 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 "); + sql.append("select distinct "); + sql.append(" c.boleto_id, "); + 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(" bpe.codstat as codstatus, "); + 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, 6001) as xml_bpe_3, "); + sql.append(" bpe.tipoevento as tipoevento, "); + sql.append(" bpe.desconto as v_desconto, "); + sql.append(" bpe.chbpe, "); + sql.append(" coalesce(chbpe_substituicao, ' ') as chbpe_sub, "); + sql.append(" c.fechorventa, "); + sql.append(" c.feccreacion, "); + sql.append(" to_char(c.feccreacion, 'yyyymmdd') as dhrecbto, "); + sql.append(" coalesce(to_char(c.fechorviaje, 'yyyymmdd'), ' ') as dh_emisao, "); + sql.append(" coalesce(bpe.tiposubstituicao, '0') as tp_bpe, "); + sql.append(" bpe.retorno_id as retorno, "); + sql.append(" bpe.nprot, "); + sql.append(" coalesce(c.num_bpe, c.numfoliosistema) as num_bpe, "); + sql.append(" coalesce(c.numserie_bpe, '1') as numserie_bpe, "); + sql.append(" c.categoria_id, "); + sql.append(" e.codestabelecimento as cod_estabelecimento, "); + sql.append(" ep.crtbpe as crt, "); + 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(" ei.porcredbaseicms as red_base_calc_estadual, "); + sql.append(" ei.porcredbaseicmsim as red_base_calc_municipal, "); + sql.append(" ei.porcredmunicipal as porc_red_municipal, "); + sql.append(" ei.porcredestadual as porc_red_estadual, "); + sql.append(" ei.tributacaoimportacao as tributacao_importacao, "); + sql.append(" ei.codigocontabilestadual as codigocontabil_estadual, "); + sql.append(" ei.codigocontabilmunicipal as codigocontabil_municipal "); + sql.append("from boleto c "); + sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id "); + sql.append(" join estado e on e.codibge = bpe.uf "); + sql.append(" join empresa ep on c.empresacorrida_id = ep.empresa_id "); + sql.append(" join ruta r on r.ruta_id = c.ruta_id "); + sql.append(" left join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = e.estado_id "); + sql.append("where c.activo = 1 and e.activo = 1 and ei.activo = 1 "); + sql.append(" and bpe.tipoamb = 1 "); + 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(" and (case when ei.indtribviagem = 1 then c.fechorviaje else c.feccreacion end) <= to_date(?,'DD/MM/YYYY HH24:MI:SS')"); + sql.append(" and c.empresacorrida_id = ? "); + sql.append(" and e.cveestado = ? "); + sql.append("order by dhrecbto, numfoliosistema "); try { PreparedStatement ps = connection.prepareStatement(sql.toString()); @@ -144,8 +116,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { } ExportacaoBPEBase registro = new ExportacaoBPEBase(); - - registro.setCajaId(rs.getLong("caja_id")); + registro.setBoletoId(rs.getLong("boleto_id")); registro.setNumfoliosistema(rs.getString("numfoliosistema")); registro.setvDesconto(rs.getBigDecimal("v_desconto")); registro.setChbpe(rs.getString("chbpe")); @@ -158,11 +129,6 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { registro.setNumBpe(rs.getString("num_bpe")); registro.setNumSerieBpe(rs.getString("numserie_bpe")); 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.setRedBaseCalcMunicipal(rs.getBigDecimal("red_base_calc_municipal")); registro.setPorcRedMunicipal(rs.getBigDecimal("porc_red_municipal")); diff --git a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEBase.java b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEBase.java index 080def5cc..1fb07b46a 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEBase.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEBase.java @@ -6,7 +6,7 @@ import java.util.List; public class ExportacaoBPEBase { - private Long cajaId; + private Long boletoId; private String numfoliosistema; private BigDecimal valortotal; private BigDecimal vDesconto; @@ -20,12 +20,7 @@ public class ExportacaoBPEBase { private String numBpe; private String numSerieBpe; private String codEstabelecimento; - private boolean isenta; private BigDecimal valortributado; - private String municipioOrigem; - private String estadoOrigem; - private String municipioDestino; - private String estadoDestino; private BigDecimal redBaseCalcEstadual; private BigDecimal redBaseCalcMunicipal; private BigDecimal porcRedMunicipal; @@ -52,12 +47,12 @@ public class ExportacaoBPEBase { listaRegistroPRC = new ArrayList(0); } - public Long getCajaId() { - return cajaId; + public Long getBoletoId() { + return boletoId; } - public void setCajaId(Long cajaId) { - this.cajaId = cajaId; + public void setBoletoId(Long boletoId) { + this.boletoId = boletoId; } public String getNumfoliosistema() { @@ -164,14 +159,6 @@ public class ExportacaoBPEBase { this.codEstabelecimento = codEstabelecimento; } - public boolean isIsenta() { - return isenta; - } - - public void setIsenta(boolean isenta) { - this.isenta = isenta; - } - public BigDecimal getValortributado() { return valortributado; } @@ -180,38 +167,6 @@ public class ExportacaoBPEBase { 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() { return redBaseCalcEstadual; } diff --git a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEVo.java b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEVo.java index de17bd243..8d2489d88 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEVo.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEVo.java @@ -58,11 +58,7 @@ public class ExportacaoBPEVo { 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))); - String tpDoc = isCancelamento ? "1" : (StringUtils.isBlank(registro.getChbpeSub()) ? "0" : "2"); TBPe tbpe = null; String xml = isCancelamento ? registro.getXmlAnterior() : registro.getXml(); @@ -70,11 +66,15 @@ public class ExportacaoBPEVo { if (xml != null) tbpe = convertXmlToBpe(xml); - String municipioOrigem = StringUtils.substring((StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getCMunIni() : registro.getMunicipioOrigem()), 2); - String municipioDestino = StringUtils.substring((StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getCMunFim() : registro.getMunicipioDestino()), 2); + String municipioOrigem = StringUtils.substring(tbpe.getInfBPe().getIde().getCMunIni(), 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()); - String estadoDestino = (StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getUFFim().value() : registro.getEstadoDestino()); + boolean isInterMunicipal = estadoOrigem.equals(estadoDestino); + String codigoContabil = isInterMunicipal ? registro.getCodigocontabilMunicipal() : registro.getCodigoContabilEstadual(); + + String tpDoc = isCancelamento ? "1" : (StringUtils.isBlank(registro.getChbpeSub()) ? "0" : "2"); if (isCancelamento) { @@ -104,9 +104,8 @@ public class ExportacaoBPEVo { 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 tpBpe = (StringUtils.isBlank(tbpe.getInfBPe().getInfBPeSub() == null ? "" : tbpe.getInfBPe().getInfBPeSub().getChBPe()) ? "1" : "2"); ExportacaoBPETipoBPE tipoBPE = new ExportacaoBPETipoBPE(registro.getCodEstabelecimento(), registro.getChbpe(), registro.getNumSerieBpe(), registro.getNumBpe(), registro.getDhrecbto(), tpDoc, registro.getDhEmisao(), valorBruto,