From fd2542d1b9d32be51e0f292b4ce0b8c8242da8e7 Mon Sep 17 00:00:00 2001 From: julio Date: Mon, 8 Jul 2019 19:31:20 +0000 Subject: [PATCH] fixes bug#14453 bug#14829 dev: julio qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@95546 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../dao/hibernate/BpeHibernateDAO.java | 896 +++++++++--------- .../dao/hibernate/FiscalHibernateDAO.java | 7 +- .../utilerias/exportacao/ExportacaoBpe.java | 34 +- .../exportacao/bpe/ExportacaoBPEBase.java | 327 ++++++- .../exportacao/bpe/ExportacaoBPEVo.java | 180 +++- .../utilerias/fiscal/vo/DetalhadoFiscal.java | 344 +++++++ 6 files changed, 1316 insertions(+), 472 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java index 7e1970d51..a2f7e1842 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java @@ -8,7 +8,9 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.Collections; import java.util.Date; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -19,18 +21,18 @@ import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.BpeDAO; +import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.entidad.Estado; +import com.rjconsultores.ventaboletos.service.ConstanteService; import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.utilerias.MoneyHelper; import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPEBase; import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPEVo; -import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPEVo.TipoComp; -import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.xml.BPeUtil; import com.rjconsultores.ventaboletos.utilerias.fiscal.vo.DetalhadoFiscal; import com.rjconsultores.ventaboletos.utilerias.fiscal.vo.FiscalRdi; import com.rjconsultores.ventaboletos.utilerias.fiscal.vo.RdiValidacion; import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; - -import br.inf.portalfiscal.bpe.TBPe; +import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; @Repository("bpeDAO") public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { @@ -43,110 +45,75 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { setSessionFactory(factory); } + @SuppressWarnings("deprecation") @Override public ExportacaoBPEVo buscarRegistroExportacaoBpe(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { log.info("Inicio da consulta buscarRegistroExportacaoBpe: " + new Date()); - ExportacaoBPEVo exportacaoBPEVo = new ExportacaoBPEVo(); + ConstanteService constanteService = (ConstanteService) AppContext.getApplicationContext().getBean("constanteService"); + Constante contante = constanteService.buscarPorNomeConstante("IMPORT_BPE_LAYOUT_DIF"); + String valorConstante = contante == null ? null : contante.getValorconstante(); + boolean isVersao131 = StringUtils.isBlank(valorConstante) ? true : false; + + List registros = consultaRegistroExportacaoBpe(connection, inicio, fim, empresaId, cveestado, isVersao131); + + /* + * Bilhetes emitidos dentro do mes for cancelados apenas informar o cancelamento; Bilhetes emitidos em um mês e cancelados em outro mês, este deve ir apenas no relatório de devolução; + */ + LinkedHashMap mapAux = new LinkedHashMap(); + for (ExportacaoBPEBase e1 : registros) { + + if (mapAux.containsKey(e1.getChbpe())) { + if (ExportacaoBPEVo.isBpeCancelado(e1.getCodstatus())) { + mapAux.put(e1.getChbpe(), e1); + } + } else { + if (!ExportacaoBPEVo.isBpeCancelado(e1.getCodstatus())) + mapAux.put(e1.getChbpe(), e1); + } + } + + List listaRegistroBaseBPE = new ArrayList(); + + for (Map.Entry pair : mapAux.entrySet()) { + + if (isVersao131) { + listaRegistroBaseBPE.add(ExportacaoBPEVo.gerarListas(pair.getValue())); + } else { + listaRegistroBaseBPE.add(ExportacaoBPEVo.gerarListasXML(pair.getValue())); + } + } + + ExportacaoBPEVo resp = new ExportacaoBPEVo(); + resp.setListaRegistroBaseBPE(listaRegistroBaseBPE); + + log.info(" !!!! --- Fim preocesso da ExportacaoBpe: " + new Date()); + + return resp; + } + + private List consultaRegistroExportacaoBpe(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado, boolean isVersao131) { List registros = new ArrayList(); - StringBuilder sql = new StringBuilder(); - sql.append("select distinct "); - sql.append(" c.boleto_id, "); - sql.append(" coalesce(c.num_bpe, c.numfoliosistema) as num_bpe, "); - 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, "); + String sql = null; + if (isVersao131) { + sql = queryNoXml(); + } else { + sql = queryXml(); + } - sql.append(" bpe.xml_bpe as xml_bpe, "); - sql.append(" bpe.xml_bpe_2 as xml_bpe_2, "); - sql.append(" bpe.xml_bpe_3 as xml_bpe_3, "); - sql.append(" bpe.xml_bpe_4 as xml_bpe_4, "); - sql.append(" bpe.xml_bpe_5 as xml_bpe_5, "); - - // sql.append(" DBMS_LOB.substr(COALESCE(bpe_cancel.xmlregular, bpe_cancel.xmlcontingencia, bpe.xmlregular, bpe.xmlcontingencia), 3000) AS xml_bpe, "); - // sql.append(" DBMS_LOB.substr(COALESCE(bpe_cancel.xmlregular, bpe_cancel.xmlcontingencia, bpe.xmlregular, bpe.xmlcontingencia), 3000, 3001) AS xml_bpe_2, "); - // sql.append(" DBMS_LOB.substr(COALESCE(bpe_cancel.xmlregular, bpe_cancel.xmlcontingencia, bpe.xmlregular, bpe.xmlcontingencia), 3000, 6001) AS xml_bpe_3, "); - - // sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlregular, bpe.xmlcontingencia), 3000) as xml_bpe, "); - // sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlregular, bpe.xmlcontingencia), 3000, 3001) as xml_bpe_2, "); - // sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlregular, bpe.xmlcontingencia), 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(bpe.chbpe_substituicao, ' ') as chbpe_sub, "); - sql.append(" to_char(c.feccreacion, 'yyyymmdd') as dh_emisao, "); - sql.append(" to_char(c.fechorviaje, 'yyyymmdd') as dhrecbto, "); - sql.append(" coalesce(bpe.tiposubstituicao, '0') as tp_bpe, "); - sql.append(" bpe.retorno_id as retorno, "); - sql.append(" bpe.nprot, "); - 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(" co.codibge as municipio_origem, "); - // sql.append(" eo.cveestado as estado_origem, "); - // sql.append(" cd.codibge as municipio_destino, "); - // sql.append(" ed.cveestado as estado_destino, "); - 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(" coalesce(ei.indtarifamunicipal,0) as indtarifamunicipal, "); - sql.append(" coalesce(ei.indseguromunicipal,0) as indseguromunicipal, "); - sql.append(" coalesce(ei.indtxembarquemunicipal,0) as indtxembarquemunicipal, "); - sql.append(" coalesce(ei.indpedagiomunicipal,0) as indpedagiomunicipal, "); - sql.append(" coalesce(ei.indtarifaestadual,0) as indtarifaestadual,"); - sql.append(" coalesce(ei.indseguroestadual,0) as indseguroestadual, "); - sql.append(" coalesce(ei.indtxembarqueestadual,0) as indtxembarqueestadual, "); - sql.append(" coalesce(ei.indpedagioestdual,0) as indpedagioestdual "); - sql.append("from boleto c "); - sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id "); - // sql.append(" and bpe.activo = (case when c.motivocancelacion_id = 17 and c.boletooriginal_id is null then 0 else 1 end) "); - sql.append(" and bpe.activo = 1 "); - - // sql.append(" left join bpe bpe_cancel on bpe.chbpe = bpe_cancel.chbpe and bpe.codstat in ('135') and bpe_cancel.codstat in ('100','150') "); - - sql.append(" join estado e on e.codibge = bpe.uf "); - sql.append(" join marca ma on c.marca_id = ma.marca_id "); - sql.append(" join empresa ep on ma.empresa_id = ep.empresa_id "); - sql.append(" join ruta r on r.ruta_id = c.ruta_id "); - // sql.append(" left join alias_servico ase on ase.origen_id = c.origen_id "); - // sql.append(" and ase.destino_id = c.destino_id and ase.ruta_id = c.ruta_id and ase.activo = 1 and ase.corrida_id is null "); - // sql.append(" inner join parada o on coalesce(ase.aliasorigen_id, c.origen_id) = o.parada_id "); - // sql.append(" inner join ciudad co on o.ciudad_id = co.ciudad_id "); - // sql.append(" inner join estado eo on eo.estado_id = co.estado_id "); - // sql.append(" inner join parada d on coalesce(ase.aliasdestino_id, c.destino_id) = d.parada_id "); - // sql.append(" inner join ciudad cd on d.ciudad_id = cd.ciudad_id "); - // sql.append(" inner join estado ed on ed.estado_id = cd.estado_id "); - sql.append(" inner join empresa_imposto ei on ei.empresa_id = ep.empresa_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 and ep.activo = 1 "); - sql.append(" and bpe.codstat in ('-1','100','101','102','135','150') "); - sql.append(" and (bpe.tipoevento <> '110115' or bpe.tipoevento is null) "); - sql.append(" and c.feccreacion >= to_date(?,'DD/MM/YYYY HH24:MI:SS') "); - sql.append(" and c.feccreacion <= to_date(?,'DD/MM/YYYY HH24:MI:SS') "); - sql.append(" and ep.empresa_id = ? "); - sql.append(" and e.cveestado = ? "); - sql.append("order by to_number(c.numfoliosistema), to_number(num_bpe), dh_emisao "); - - // ResultSet rs = null; - // PreparedStatement ps = null; try { - PreparedStatement ps = connection.prepareStatement(sql.toString()); + log.info("Consulta Exportacao Bpe: " + sql); + + PreparedStatement ps = connection.prepareStatement(sql); ps.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_DMY) + " 00:00:00"); ps.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_DMY) + " 23:59:59"); ps.setLong(3, Long.valueOf(empresaId)); ps.setString(4, cveestado); - ps.setFetchSize(999); + ps.setFetchSize(9999); ResultSet rs = ps.executeQuery(); while (rs.next()) { @@ -184,10 +151,6 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { registro.setTipoevento(rs.getString("tipoevento")); registro.setCodigoContabilEstadual(rs.getString("codigocontabil_estadual")); registro.setCodigocontabilMunicipal(rs.getString("codigocontabil_municipal")); - // 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.setCrt(rs.getInt("crt")); registro.setIndPedagioMunicipal(rs.getInt("indpedagiomunicipal") == 1); registro.setIndSeguroMunicipal(rs.getInt("indseguromunicipal") == 1); @@ -200,25 +163,54 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { registro.setValortributado(valortributado); registro.setValortotal(valortotal); - // String xml_bpe = rs.getNString("xml_bpe"); - // String xml_bpe_2 = rs.getNString("xml_bpe_2"); - // String xml_bpe_3 = rs.getNString("xml_bpe_3"); + if (isVersao131) { + registro.setCmunini(rs.getString("cmunini")); + registro.setCmunfim(rs.getString("cmunfim")); + registro.setUfini(rs.getString("ufini")); + registro.setUffim(rs.getString("uffim")); + registro.setNbp(rs.getString("nbp")); + registro.setDhemb(rs.getString("dhemb")); + registro.setCst00(rs.getString("cst00")); + registro.setCst20(rs.getString("cst20")); + registro.setCst45(rs.getString("cst45")); + registro.setCst90(rs.getString("cst90")); + registro.setCstoutrauf(rs.getString("cstoutrauf")); + registro.setCstsn(rs.getString("cstsn")); + registro.setVbc00(rs.getString("vbc00")); + registro.setPicms00(rs.getString("picms00")); + registro.setVicms00(rs.getString("vicms00")); + registro.setVbc20(rs.getString("vbc20")); + registro.setPicms20(rs.getString("picms20")); + registro.setVicms20(rs.getString("vicms20")); + registro.setVbp(rs.getString("vbp")); + registro.setVdesconto(rs.getString("vdesconto")); + registro.setVpgto(rs.getString("vpgto")); + registro.setTpcomp01(rs.getString("tpcomp01")); + registro.setTpcomp02(rs.getString("tpcomp02")); + registro.setTpcomp03(rs.getString("tpcomp03")); + registro.setTpcomp04(rs.getString("tpcomp04")); + registro.setTpcomp05(rs.getString("tpcomp05")); + registro.setTpcomp06(rs.getString("tpcomp06")); + registro.setTpcomp99(rs.getString("tpcomp99")); + registro.setVcomp01(rs.getString("vcomp01")); + registro.setVcomp02(rs.getString("vcomp02")); + registro.setVcomp03(rs.getString("vcomp03")); + registro.setVcomp04(rs.getString("vcomp04")); + registro.setVcomp05(rs.getString("vcomp05")); + registro.setVcomp06(rs.getString("vcomp06")); + registro.setVcomp99(rs.getString("vcomp99")); + registro.setpRedBC(rs.getString("pRedBC")); + } else { + String xml_bpe = rs.getNString("xml_bpe"); + String xml_bpe_2 = rs.getNString("xml_bpe_2"); + String xml_bpe_3 = rs.getNString("xml_bpe_3"); + registro.setXml(StringUtils.join(new String[] { xml_bpe, xml_bpe_2, xml_bpe_3 })); - String xml_bpe = rs.getString("xml_bpe"); - String xml_bpe_2 = rs.getString("xml_bpe_2"); - String xml_bpe_3 = rs.getString("xml_bpe_3"); - String xml_bpe_4 = rs.getString("xml_bpe_4"); - String xml_bpe_5 = rs.getString("xml_bpe_5"); - - String xml = StringUtils.join(new String[] { xml_bpe, xml_bpe_2, xml_bpe_3, xml_bpe_4, xml_bpe_5 }); - - // String xml = StringUtils.join(new String[] { xml_bpe, xml_bpe_2, xml_bpe_3 }); - registro.setXml(xml); - - if (exportacaoBPEVo.isBpeCanceladoENaoEmbarque(registro)) { - String xmlAnterior = buscarXmlBPE(connection, (StringUtils.isBlank(registro.getChbpeSub()) ? registro.getChbpe() : registro.getChbpeSub())); - registro.setXmlAnterior(xmlAnterior); - registro.setXml(null); + if (ExportacaoBPEVo.isBpeCancelado(registro.getCodstatus())) { + String xmlAnterior = buscarXmlBPE(connection, (StringUtils.isBlank(registro.getChbpeSub()) ? registro.getChbpe() : registro.getChbpeSub())); + registro.setXmlAnterior(xmlAnterior); + registro.setXml(null); + } } registros.add(registro); @@ -227,47 +219,178 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { rs.close(); ps.close(); - log.info("Fim buscarRegistroExportacaoBpe: " + new Date()); - } catch (Exception e) { log.error(e.getMessage(), e); } - List aux = new ArrayList(); + return registros; + } - for (ExportacaoBPEBase e1 : registros) { - if (exportacaoBPEVo.isBpeCanceladoENaoEmbarque(e1)) { - for (ExportacaoBPEBase e2 : registros) { - if (e1.getChbpe().equals(e2.getChbpe()) && !exportacaoBPEVo.isBpeCanceladoENaoEmbarque(e2)) { - aux.add(e1); - break; - } - } - } else { + private String queryNoXml() { + StringBuilder sql = new StringBuilder(); + sql.append("select /*+INDEX(BPE IDX__BPE_BOLETO)*/ "); + sql.append(" c.boleto_id, "); + sql.append(" coalesce(c.num_bpe, c.numfoliosistema) as num_bpe, "); + 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(" bpe.tipoevento as tipoevento, "); + sql.append(" bpe.desconto as v_desconto, "); + sql.append(" bpe.chbpe, "); + sql.append(" coalesce(bpe.chbpe_substituicao, ' ') as chbpe_sub, "); + sql.append(" to_char(c.feccreacion, 'yyyymmdd') as dh_emisao, "); + sql.append(" to_char(c.fechorviaje, 'yyyymmdd') as dhrecbto, "); + sql.append(" coalesce(bpe.tiposubstituicao, '0') as tp_bpe, "); + sql.append(" bpe.retorno_id as retorno, "); + sql.append(" bpe.nprot, "); + 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(" coalesce(ei.indtarifamunicipal,0) as indtarifamunicipal, "); + sql.append(" coalesce(ei.indseguromunicipal,0) as indseguromunicipal, "); + sql.append(" coalesce(ei.indtxembarquemunicipal,0) as indtxembarquemunicipal, "); + sql.append(" coalesce(ei.indpedagiomunicipal,0) as indpedagiomunicipal, "); + sql.append(" coalesce(ei.indtarifaestadual,0) as indtarifaestadual,"); + sql.append(" coalesce(ei.indseguroestadual,0) as indseguroestadual, "); + sql.append(" coalesce(ei.indtxembarqueestadual,0) as indtxembarqueestadual, "); + sql.append(" coalesce(ei.indpedagioestdual,0) as indpedagioestdual, "); - boolean temItemCancelado = false; - for (ExportacaoBPEBase e2 : registros) { + sql.append(" bpe.cmunini, "); + sql.append(" bpe.cmunfim, "); + sql.append(" bpe.ufini, "); + sql.append(" bpe.uffim, "); + sql.append(" bpe.nbp, "); + sql.append(" bpe.dhemb, "); + sql.append(" bpe.cst00, "); + sql.append(" bpe.cst20, "); + sql.append(" bpe.cst45, "); + sql.append(" bpe.cst90, "); + sql.append(" bpe.cstoutrauf, "); + sql.append(" bpe.cstsn, "); + sql.append(" bpe.vbc00, "); + sql.append(" bpe.picms00, "); + sql.append(" bpe.vicms00, "); + sql.append(" bpe.vbc20, "); + sql.append(" bpe.picms20, "); + sql.append(" bpe.vicms20, "); + sql.append(" bpe.vbp, "); + sql.append(" bpe.vdesconto, "); + sql.append(" bpe.vpgto, "); + sql.append(" bpe.tpcomp01, "); + sql.append(" bpe.tpcomp02, "); + sql.append(" bpe.tpcomp03, "); + sql.append(" bpe.tpcomp04, "); + sql.append(" bpe.tpcomp05, "); + sql.append(" bpe.tpcomp06, "); + sql.append(" bpe.tpcomp99, "); + sql.append(" bpe.vcomp01, "); + sql.append(" bpe.vcomp02, "); + sql.append(" bpe.vcomp03, "); + sql.append(" bpe.vcomp04, "); + sql.append(" bpe.vcomp05, "); + sql.append(" bpe.vcomp06, "); + sql.append(" bpe.vcomp99, "); + sql.append(" bpe.pRedBC "); - if (e1.getChbpe().equals(e2.getChbpe()) && exportacaoBPEVo.isBpeCanceladoENaoEmbarque(e2)) { - temItemCancelado = true; - break; - } - } - if (!temItemCancelado) { - aux.add(e1); - } - } - } + sql.append("from boleto c "); + sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id and bpe.activo = 1 "); + // sql.append(" and bpe.activo = (case when c.motivocancelacion_id = 17 and c.boletooriginal_id is null then 0 else 1 end) "); + sql.append(" join estado e on e.codibge = bpe.uf "); + sql.append(" join marca ma on c.marca_id = ma.marca_id "); + sql.append(" join empresa ep on ma.empresa_id = ep.empresa_id "); + sql.append(" join ruta r on r.ruta_id = c.ruta_id "); + sql.append(" inner join empresa_imposto ei on ei.empresa_id = ep.empresa_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 and ep.activo = 1 "); + sql.append(" and bpe.codstat in ('-1','100','101','102','135','150') "); + sql.append(" and (bpe.tipoevento not in ('110115','110116') or bpe.tipoevento is null) "); + sql.append(" and c.feccreacion >= to_date(?,'DD/MM/YYYY HH24:MI:SS') "); + sql.append(" and c.feccreacion <= to_date(?,'DD/MM/YYYY HH24:MI:SS') "); + sql.append(" and ep.empresa_id = ? "); + sql.append(" and e.cveestado = ? "); + sql.append("order by to_number(c.numfoliosistema), to_number(num_bpe), dh_emisao "); + return sql.toString(); + } - log.info(" --- Inicio preocesso da ExportacaoBpe: " + new Date()); - - for (ExportacaoBPEBase registro : aux) { - exportacaoBPEVo.gerarListas(registro); - } - - log.info(" !!!! --- Fim preocesso da ExportacaoBpe: " + new Date()); - - return exportacaoBPEVo; + private String queryXml() { + StringBuilder sql = new StringBuilder(); + sql.append("select distinct "); + sql.append(" c.boleto_id, "); + sql.append(" coalesce(c.num_bpe, c.numfoliosistema) as num_bpe, "); + 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(coalesce(bpe.xmlregular, bpe.xmlcontingencia), 3000) as xml_bpe, "); + sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlregular, bpe.xmlcontingencia), 3000, 3001) as xml_bpe_2, "); + sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlregular, bpe.xmlcontingencia), 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(bpe.chbpe_substituicao, ' ') as chbpe_sub, "); + sql.append(" to_char(c.feccreacion, 'yyyymmdd') as dh_emisao, "); + sql.append(" to_char(c.fechorviaje, 'yyyymmdd') as dhrecbto, "); + sql.append(" coalesce(bpe.tiposubstituicao, '0') as tp_bpe, "); + sql.append(" bpe.retorno_id as retorno, "); + sql.append(" bpe.nprot, "); + 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(" co.codibge as municipio_origem, "); + sql.append(" eo.cveestado as estado_origem, "); + sql.append(" cd.codibge as municipio_destino, "); + sql.append(" ed.cveestado as estado_destino, "); + 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(" coalesce(ei.indtarifamunicipal,0) as indtarifamunicipal, "); + sql.append(" coalesce(ei.indseguromunicipal,0) as indseguromunicipal, "); + sql.append(" coalesce(ei.indtxembarquemunicipal,0) as indtxembarquemunicipal, "); + sql.append(" coalesce(ei.indpedagiomunicipal,0) as indpedagiomunicipal, "); + sql.append(" coalesce(ei.indtarifaestadual,0) as indtarifaestadual,"); + sql.append(" coalesce(ei.indseguroestadual,0) as indseguroestadual, "); + sql.append(" coalesce(ei.indtxembarqueestadual,0) as indtxembarqueestadual, "); + sql.append(" coalesce(ei.indpedagioestdual,0) as indpedagioestdual "); + sql.append("from boleto c "); + sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id "); + sql.append(" and bpe.activo = (case when c.motivocancelacion_id = 17 and c.boletooriginal_id is null then 0 else 1 end) "); + sql.append(" join estado e on e.codibge = bpe.uf "); + sql.append(" join marca ma on c.marca_id = ma.marca_id "); + sql.append(" join empresa ep on ma.empresa_id = ep.empresa_id "); + sql.append(" join ruta r on r.ruta_id = c.ruta_id "); + sql.append(" left join alias_servico ase on ase.origen_id = c.origen_id "); + sql.append(" and ase.destino_id = c.destino_id and ase.ruta_id = c.ruta_id and ase.activo = 1 and ase.corrida_id is null "); + sql.append(" inner join parada o on coalesce(ase.aliasorigen_id, c.origen_id) = o.parada_id "); + sql.append(" inner join ciudad co on o.ciudad_id = co.ciudad_id "); + sql.append(" inner join estado eo on eo.estado_id = co.estado_id "); + sql.append(" inner join parada d on coalesce(ase.aliasdestino_id, c.destino_id) = d.parada_id "); + sql.append(" inner join ciudad cd on d.ciudad_id = cd.ciudad_id "); + sql.append(" inner join estado ed on ed.estado_id = cd.estado_id "); + sql.append(" left join empresa_imposto ei on ei.empresa_id = ep.empresa_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 and ep.activo = 1 "); + sql.append(" and bpe.codstat in ('-1','100','101','102','135','150') "); + sql.append(" and (bpe.tipoevento <> '110115' or bpe.tipoevento is null) "); + sql.append(" and c.feccreacion >= to_date(?,'DD/MM/YYYY HH24:MI:SS') "); + sql.append(" and c.feccreacion <= to_date(?,'DD/MM/YYYY HH24:MI:SS') "); + sql.append(" and ep.empresa_id = ? "); + sql.append(" and e.cveestado = ? "); + sql.append("order by to_number(c.numfoliosistema), to_number(num_bpe), dh_emisao "); + return sql.toString(); } @Override @@ -396,21 +519,21 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { } private FiscalRdi montarParametros(FiscalRdi agr, FiscalRdi detail) { - agr.setQuantBilhetes(agr.getQuantBilhetes().add(detail.getTarifa() == null ? BigDecimal.ZERO : BigDecimal.ONE)); + agr.setQuantBilhetes(MoneyHelper.somar(agr.getQuantBilhetes(), detail.getTarifa() == null ? BigDecimal.ZERO : BigDecimal.ONE)); agr.setTarifa(agr.getTarifa().add(detail.getTarifa() == null ? BigDecimal.ZERO : detail.getTarifa())); - agr.setSeguro(agr.getSeguro().add(detail.getSeguro() == null ? BigDecimal.ZERO : detail.getSeguro())); - agr.setTxEmbarque(agr.getTxEmbarque().add(detail.getTxEmbarque() == null ? BigDecimal.ZERO : detail.getTxEmbarque())); - agr.setPedagio(agr.getPedagio().add(detail.getPedagio() == null ? BigDecimal.ZERO : detail.getPedagio())); - agr.setPassagem(agr.getPassagem().add(detail.getPassagem() == null ? BigDecimal.ZERO : detail.getPassagem())); - agr.setIsentos(agr.getIsentos().add(detail.getIsentos() == null ? BigDecimal.ZERO : detail.getIsentos())); - agr.setOutros(agr.getOutros().add(detail.getOutros() == null ? BigDecimal.ZERO : detail.getOutros())); + agr.setSeguro(MoneyHelper.somar(agr.getSeguro(), detail.getSeguro())); + agr.setTxEmbarque(MoneyHelper.somar(agr.getTxEmbarque(), detail.getTxEmbarque())); + agr.setPedagio(MoneyHelper.somar(agr.getPedagio(), detail.getPedagio())); + agr.setPassagem(MoneyHelper.somar(agr.getPassagem(), detail.getPassagem())); + agr.setIsentos(MoneyHelper.somar(agr.getIsentos(), detail.getIsentos())); + agr.setOutros(MoneyHelper.somar(agr.getOutros(), detail.getOutros())); agr.setRbc(detail.getRbc() == null ? BigDecimal.ZERO : detail.getRbc()); - agr.setBaseCalculo(agr.getBaseCalculo().add(detail.getBaseCalculo() == null ? BigDecimal.ZERO : detail.getBaseCalculo())); + agr.setBaseCalculo(MoneyHelper.somar(agr.getBaseCalculo(), detail.getBaseCalculo())); agr.setAliquota(detail.getAliquota() == null ? BigDecimal.ZERO : detail.getAliquota()); - agr.setIcms(agr.getIcms().add(detail.getIcms() == null ? BigDecimal.ZERO : detail.getIcms())); + agr.setIcms(MoneyHelper.somar(agr.getIcms(), detail.getIcms())); agr.setCp(detail.getCp() == null ? BigDecimal.ZERO : detail.getCp()); - agr.setCredPres(agr.getCredPres().add(detail.getCredPres() == null ? BigDecimal.ZERO : detail.getCredPres())); - agr.setIcmsRec(agr.getIcmsRec().add(detail.getIcmsRec() == null ? BigDecimal.ZERO : detail.getIcmsRec())); + agr.setCredPres(MoneyHelper.somar(agr.getCredPres(), detail.getCredPres())); + agr.setIcmsRec(MoneyHelper.somar(agr.getIcmsRec(), detail.getIcmsRec())); return agr; } @@ -418,79 +541,71 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { List rdis = new ArrayList(); - BigDecimal aliquotaAnt = null; + /* + * Bilhetes emitidos dentro do mes for cancelados apenas informar o cancelamento; Bilhetes emitidos em um mês e cancelados em outro mês, este deve ir apenas no relatório de devolução; + */ + LinkedHashMap mapAux = new LinkedHashMap(); for (DetalhadoFiscal det : list) { - String xml = det.getXml(); + if (mapAux.containsKey(det.getChbpe())) { + if (ExportacaoBPEVo.isBpeCancelado(det.getCodstatus())) { + mapAux.put(det.getChbpe(), det); + } + } else { + if (!ExportacaoBPEVo.isBpeCancelado(det.getCodstatus())) + mapAux.put(det.getChbpe(), det); + } + } - BigDecimal tarifa = BigDecimal.ZERO; - BigDecimal taxaEmbarque = BigDecimal.ZERO; - BigDecimal pedagio = BigDecimal.ZERO; - BigDecimal seguro = BigDecimal.ZERO; - BigDecimal passagem = BigDecimal.ZERO; - BigDecimal isentos = BigDecimal.ZERO; + BigDecimal aliquotaAnt = null; + for (Map.Entry pair : mapAux.entrySet()) { + + DetalhadoFiscal det = pair.getValue(); + + // if (ExportacaoBPEVo.isBpeCancelado(det.getCodstatus())) + // det.setTipoReceita("DEV"); + // else + // det.setTipoReceita("REC"); boolean isEstadual = det.isInterEstadual(); String tipoViagem = isEstadual ? "IE" : "IM"; - TBPe tbpe = null; - if (StringUtils.isNotBlank(xml)) - tbpe = BPeUtil.convertXmlToBpe(xml); - String vBC = null; String pICMS = null; String vICMS = null; String pRedBC = null; - if (StringUtils.isNotBlank(xml)) { - if (tbpe.getInfBPe().getImp().getICMS().getICMS00() != null) { - vBC = tbpe.getInfBPe().getImp().getICMS().getICMS00().getVBC(); - pICMS = tbpe.getInfBPe().getImp().getICMS().getICMS00().getPICMS(); - vICMS = tbpe.getInfBPe().getImp().getICMS().getICMS00().getVICMS(); - } else if (tbpe.getInfBPe().getImp().getICMS().getICMS20() != null) { - vBC = tbpe.getInfBPe().getImp().getICMS().getICMS20().getVBC(); - pICMS = tbpe.getInfBPe().getImp().getICMS().getICMS20().getPICMS(); - vICMS = tbpe.getInfBPe().getImp().getICMS().getICMS20().getVICMS(); - pRedBC = tbpe.getInfBPe().getImp().getICMS().getICMS20().getPRedBC(); - } - - if (tbpe.getInfBPe().getInfValorBPe() != null) { - - String vPgto = tbpe.getInfBPe().getInfValorBPe().getVPgto(); - passagem = new BigDecimal(vPgto == null ? "0.0" : vPgto); - - for (TBPe.InfBPe.InfValorBPe.Comp comp : tbpe.getInfBPe().getInfValorBPe().getComp()) { - if (comp.getTpComp().equals(TipoComp.TARIFA)) { - String vDesconto = tbpe.getInfBPe().getInfValorBPe().getVDesconto(); - tarifa = new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()); - tarifa = tarifa.subtract(new BigDecimal(vDesconto == null ? "0.0" : vDesconto)); - } - - if (comp.getTpComp().equals(TipoComp.PEDAGIO)) { - isentos = isentos.add(isEstadual && !det.getIndPedagioEstdual() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO); - isentos = isentos.add(!isEstadual && !det.getIndPedagioMunicipal() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO); - - pedagio = isReceitaTerceiros ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO; - } - - if (comp.getTpComp().equals(TipoComp.TAXA_EMBARQUE)) { - isentos = isentos.add(isEstadual && !det.getIndTxembarqueEstadual() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO); - isentos = isentos.add(!isEstadual && !det.getIndTxembarqueMunicipal() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO); - - taxaEmbarque = isReceitaTerceiros ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO; - } - - if (comp.getTpComp().equals(TipoComp.SEGURO)) { - isentos = isentos.add(isEstadual && !det.getIndSeguroEstadual() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO); - isentos = isentos.add(!isEstadual && !det.getIndSeguroMunicipal() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO); - - seguro = isReceitaTerceiros ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO; - } - } - } + if (StringUtils.isNotBlank(det.getPicms00())) { + vBC = det.getVbc00(); + pICMS = det.getPicms00(); + vICMS = det.getVicms00(); + } else if (StringUtils.isNotBlank(det.getPicms20())) { + vBC = det.getVbc20(); + pICMS = det.getPicms20(); + vICMS = det.getVicms20(); + pRedBC = det.getpRedBC(); } - BigDecimal baseCalculo = new BigDecimal(vBC == null ? "0.0" : vBC); + String vDesconto = det.getVdesconto(); + String vPgto = det.getVpgto(); + BigDecimal passagem = new BigDecimal(vPgto == null ? "0.0" : vPgto); + + BigDecimal tarifa = new BigDecimal(det.getVcomp01() == null ? "0.0" : det.getVcomp01()); + tarifa = MoneyHelper.subtrair(tarifa, new BigDecimal(vDesconto == null ? "0.0" : vDesconto)); + + BigDecimal isentos = BigDecimal.ZERO; + + isentos = isentos.add(isEstadual && !det.getIndPedagioEstdual() ? new BigDecimal(det.getVcomp02() == null ? "0.0" : det.getVcomp02()) : BigDecimal.ZERO); + isentos = isentos.add(!isEstadual && !det.getIndPedagioMunicipal() ? new BigDecimal(det.getVcomp02() == null ? "0.0" : det.getVcomp02()) : BigDecimal.ZERO); + BigDecimal pedagio = isReceitaTerceiros ? new BigDecimal(det.getVcomp02() == null ? "0.0" : det.getVcomp02()) : BigDecimal.ZERO; + + isentos = isentos.add(isEstadual && !det.getIndTxembarqueEstadual() ? new BigDecimal(det.getVcomp03() == null ? "0.0" : det.getVcomp03()) : BigDecimal.ZERO); + isentos = isentos.add(!isEstadual && !det.getIndTxembarqueMunicipal() ? new BigDecimal(det.getVcomp03() == null ? "0.0" : det.getVcomp03()) : BigDecimal.ZERO); + BigDecimal taxaEmbarque = isReceitaTerceiros ? new BigDecimal(det.getVcomp03() == null ? "0.0" : det.getVcomp03()) : BigDecimal.ZERO; + + isentos = isentos.add(isEstadual && !det.getIndSeguroEstadual() ? new BigDecimal(det.getVcomp04() == null ? "0.0" : det.getVcomp04()) : BigDecimal.ZERO); + isentos = isentos.add(!isEstadual && !det.getIndSeguroMunicipal() ? new BigDecimal(det.getVcomp04() == null ? "0.0" : det.getVcomp04()) : BigDecimal.ZERO); + BigDecimal seguro = isReceitaTerceiros ? new BigDecimal(det.getVcomp04() == null ? "0.0" : det.getVcomp04()) : BigDecimal.ZERO; BigDecimal aliquota = new BigDecimal(pICMS == null ? "0.0" : pICMS); aliquota = (aliquota.intValue() == 0 ? (aliquotaAnt == null ? aliquota : aliquotaAnt) : aliquota); @@ -506,14 +621,16 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { cp = det.getPorcRedMunicipal() == null ? BigDecimal.ZERO : det.getPorcRedMunicipal(); } - BigDecimal credPres = icms.multiply(cp.divide(BigDecimal.TEN.multiply(BigDecimal.TEN))); - BigDecimal icmsRec = icms.subtract(credPres); - BigDecimal vRedBC = det.getRedBaseCalcIcms(); + BigDecimal cpPor = MoneyHelper.dividir(cp, BigDecimal.TEN.multiply(BigDecimal.TEN)); + BigDecimal credPres = MoneyHelper.multiplicar(icms, cpPor); + BigDecimal icmsRec = MoneyHelper.subtrair(icms, credPres); + BigDecimal vRedBC = new BigDecimal(pRedBC == null ? "0.0" : pRedBC); - BigDecimal outros = isentos.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : passagem.subtract(isentos).subtract(baseCalculo); + BigDecimal baseCalculo = new BigDecimal(vBC == null ? "0.0" : vBC); + BigDecimal outros = isentos.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : MoneyHelper.subtrair(passagem, MoneyHelper.subtrair(isentos, baseCalculo)); if (pRedBC != null) { - outros = passagem.subtract(baseCalculo); - outros = outros.subtract(isentos); + outros = MoneyHelper.subtrair(passagem, baseCalculo); + outros = MoneyHelper.subtrair(outros, isentos); } rdis.add(new FiscalRdi(det.getEstadoOrigem(), tipoViagem, det.getTipoReceita(), tarifa, @@ -526,44 +643,31 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { private List montaRelatorioRDI(Connection connection, Date inicio, Date fim, Integer empresaId, String ufs) { + log.info("Inicio da consulta busca RelatorioRDI BPe: " + new Date()); + List list = new ArrayList(); try { - StringBuilder sql = new StringBuilder(); - sql.append(sqlRelatorioRDIVendidos(ufs)); - sql.append(" union all "); - sql.append(sqlRelatorioRDICancelados(ufs)); + String sql = sqlRelatorioRDI(ufs); - NamedParameterStatement ps = new NamedParameterStatement(connection, sql.toString()); + log.info("Consulta RDI Bpe: " + sql); + + NamedParameterStatement ps = new NamedParameterStatement(connection, sql); ps.setLong("EMPRESA_ID", Long.valueOf(empresaId)); - ps.setTimestamp("DATE_INICIO", new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime())); - ps.setTimestamp("DATE_FIM", new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime())); + ps.setString("DATE_INICIO", DateUtil.getStringDate(inicio, DATE_FORMAT_DMY) + " 00:00:00"); + ps.setString("DATE_FIM", DateUtil.getStringDate(fim, DATE_FORMAT_DMY) + " 23:59:59"); + + // ps.setTimestamp("DATE_INICIO", new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime())); + // ps.setTimestamp("DATE_FIM", new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime())); + + ps.getStatement().setFetchSize(99999); ResultSet rs = ps.executeQuery(); while (rs.next()) { - String xml_bpe = rs.getNString("xml_bpe"); - String xml_bpe_2 = rs.getNString("xml_bpe_2"); - String xml_bpe_3 = rs.getNString("xml_bpe_3"); - String xml = StringUtils.join(new String[] { xml_bpe, xml_bpe_2, xml_bpe_3 }); - - TBPe tbpe = null; - if (StringUtils.isNotBlank(xml)) - tbpe = BPeUtil.convertXmlToBpe(xml); - DetalhadoFiscal df = new DetalhadoFiscal(); - df.setXml(xml); - String municipioOrigem = StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getCMunIni() : rs.getString("municipioOrigem"); - String estadoOrigem = (StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getUFIni().value() : rs.getString("estadoOrigem")); - String estadoDestino = (StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getUFFim().value() : rs.getString("estadoDestino")); - - boolean isInterEstadual = !estadoOrigem.equals(estadoDestino); - df.setEstadoOrigem(estadoOrigem); - df.setEstadoDestino(estadoDestino); - df.setMunicipioOrigem(municipioOrigem); - df.setInterEstadual(isInterEstadual); df.setCajaId(rs.getLong("cajaId")); df.setTipoReceita(rs.getString("tipoReceita")); df.setNumoperacion(rs.getString("numoperacion")); @@ -591,6 +695,55 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { df.setSeguro(rs.getBigDecimal("seguro")); df.setOutros(rs.getBigDecimal("outros")); df.setDatamov(rs.getString("datamov")); + df.setChbpe(rs.getString("chbpe")); + df.setCodstatus(rs.getString("codstatus")); + df.setCmunini(rs.getString("cmunini")); + df.setCmunfim(rs.getString("cmunfim")); + df.setUfini(rs.getString("ufini")); + df.setUffim(rs.getString("uffim")); + df.setNbp(rs.getString("nbp")); + df.setDhemb(rs.getString("dhemb")); + df.setCst00(rs.getString("cst00")); + df.setCst20(rs.getString("cst20")); + df.setCst45(rs.getString("cst45")); + df.setCst90(rs.getString("cst90")); + df.setCstoutrauf(rs.getString("cstoutrauf")); + df.setCstsn(rs.getString("cstsn")); + df.setVbc00(rs.getString("vbc00")); + df.setPicms00(rs.getString("picms00")); + df.setVicms00(rs.getString("vicms00")); + df.setVbc20(rs.getString("vbc20")); + df.setPicms20(rs.getString("picms20")); + df.setVicms20(rs.getString("vicms20")); + df.setVbp(rs.getString("vbp")); + df.setVdesconto(rs.getString("vdesconto")); + df.setVpgto(rs.getString("vpgto")); + df.setTpcomp01(rs.getString("tpcomp01")); + df.setTpcomp02(rs.getString("tpcomp02")); + df.setTpcomp03(rs.getString("tpcomp03")); + df.setTpcomp04(rs.getString("tpcomp04")); + df.setTpcomp05(rs.getString("tpcomp05")); + df.setTpcomp06(rs.getString("tpcomp06")); + df.setTpcomp99(rs.getString("tpcomp99")); + df.setVcomp01(rs.getString("vcomp01")); + df.setVcomp02(rs.getString("vcomp02")); + df.setVcomp03(rs.getString("vcomp03")); + df.setVcomp04(rs.getString("vcomp04")); + df.setVcomp05(rs.getString("vcomp05")); + df.setVcomp06(rs.getString("vcomp06")); + df.setVcomp99(rs.getString("vcomp99")); + df.setpRedBC(rs.getString("pRedBC")); + + String municipioOrigem = StringUtils.isNotBlank(df.getCmunini()) ? df.getCmunini() : rs.getString("municipioOrigem"); + String estadoOrigem = (StringUtils.isNotBlank(df.getUfini()) ? df.getUfini() : rs.getString("estadoOrigem")); + String estadoDestino = (StringUtils.isNotBlank(df.getUffim()) ? df.getUffim() : rs.getString("estadoDestino")); + + boolean isInterEstadual = !estadoOrigem.equals(estadoDestino); + df.setEstadoOrigem(estadoOrigem); + df.setEstadoDestino(estadoDestino); + df.setMunicipioOrigem(municipioOrigem); + df.setInterEstadual(isInterEstadual); + list.add(df); } @@ -601,24 +754,24 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { log.error("", e); } + log.info("Fim da consulta busca RelatorioRDI BPe: " + new Date()); + return list; } - private String sqlRelatorioRDIVendidos(String ufs) { + private String sqlRelatorioRDI(String ufs) { StringBuilder sql = new StringBuilder(); - sql.append("select distinct "); + sql.append("select /*+INDEX(BPE IDX__BPE_BOLETO)*/ "); sql.append(" c.boleto_id as cajaId, "); - sql.append(" 'REC' as tipoReceita, "); + sql.append(" case when bpe.codstat not in ('135', '101') then 'REC' else 'DEV' end as tipoReceita, "); + sql.append(" coalesce(c.num_bpe, c.numfoliosistema) as num_bpe, "); + sql.append(" c.numfoliosistema as numfoliosistema, "); sql.append(" c.numoperacion as numoperacion, "); sql.append(" trunc(c.feccreacion) as fechorVenta, "); sql.append(" e.estado_id as estadoId, "); sql.append(" ei.icms as icmsInterestadual, "); sql.append(" ei.icmsim as icmsIntermunicipal, "); - sql.append(" e.cveestado as estadoOrigem, "); - sql.append(" ed.cveestado as estadoDestino, "); - sql.append(" co.codibge as municipioOrigem, "); - sql.append(" case when (e.cveestado = ed.cveestado) then 0 else 1 end as isInterEstadual, "); sql.append(" 0 as isenta, "); sql.append(" ei.porcredbaseicms as redBaseCalcIcms, "); sql.append(" ei.porcredmunicipal as porcRedMunicipal, "); @@ -638,197 +791,60 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { sql.append(" coalesce(c.importeseguro, 0) as seguro, "); sql.append(" coalesce(c.importeoutros, 0) as outros, "); sql.append(" to_char(trunc(c.feccreacion), 'yyyymmdd') as datamov, "); - sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlregular, bpe.xmlcontingencia), 3000) as xml_bpe, "); - sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlregular, bpe.xmlcontingencia), 3000, 3001) as xml_bpe_2, "); - sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlregular, bpe.xmlcontingencia), 3000, 6001) as xml_bpe_3 "); + sql.append(" bpe.chbpe, "); + sql.append(" bpe.codstat as codstatus, "); + sql.append(" bpe.cmunini, "); + sql.append(" bpe.cmunfim, "); + sql.append(" bpe.ufini, "); + sql.append(" bpe.uffim, "); + sql.append(" bpe.nbp, "); + sql.append(" bpe.dhemb, "); + sql.append(" bpe.cst00, "); + sql.append(" bpe.cst20, "); + sql.append(" bpe.cst45, "); + sql.append(" bpe.cst90, "); + sql.append(" bpe.cstoutrauf, "); + sql.append(" bpe.cstsn, "); + sql.append(" bpe.vbc00, "); + sql.append(" bpe.picms00, "); + sql.append(" bpe.vicms00, "); + sql.append(" bpe.vbc20, "); + sql.append(" bpe.picms20, "); + sql.append(" bpe.vicms20, "); + sql.append(" bpe.vbp, "); + sql.append(" bpe.vdesconto, "); + sql.append(" bpe.vpgto, "); + sql.append(" bpe.tpcomp01, "); + sql.append(" bpe.tpcomp02, "); + sql.append(" bpe.tpcomp03, "); + sql.append(" bpe.tpcomp04, "); + sql.append(" bpe.tpcomp05, "); + sql.append(" bpe.tpcomp06, "); + sql.append(" bpe.tpcomp99, "); + sql.append(" bpe.vcomp01, "); + sql.append(" bpe.vcomp02, "); + sql.append(" bpe.vcomp03, "); + sql.append(" bpe.vcomp04, "); + sql.append(" bpe.vcomp05, "); + sql.append(" bpe.vcomp06, "); + sql.append(" bpe.vcomp99, "); + sql.append(" bpe.pRedBC "); sql.append("from boleto c "); - sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id "); - sql.append(" and bpe.activo = (case when c.motivocancelacion_id = 17 and c.boletooriginal_id is null then 0 else 1 end) "); - sql.append(" left join bpe bpecan on bpecan.chbpe = bpe.chbpe and bpecan.codstat in ('101','135') and bpe.codstat = '100' "); - sql.append(" and (bpecan.tipoevento = '110111' or bpecan.tipoevento is null) and bpecan.activo = 1 "); + sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id and bpe.activo = 1 "); sql.append(" join estado e on e.codibge = bpe.uf "); sql.append(" join marca ma on c.marca_id = ma.marca_id "); sql.append(" join empresa ep on ma.empresa_id = ep.empresa_id "); sql.append(" join ruta r on r.ruta_id = c.ruta_id "); - sql.append(" left join alias_servico ase on ase.origen_id = c.origen_id "); - sql.append(" and ase.destino_id = c.destino_id and ase.ruta_id = c.ruta_id and ase.activo = 1 and ase.corrida_id is null and ase.activo = 1 "); - sql.append(" inner join parada o on coalesce(ase.aliasorigen_id, c.origen_id) = o.parada_id "); - sql.append(" inner join ciudad co on o.ciudad_id = co.ciudad_id "); - sql.append(" inner join estado eo on eo.estado_id = co.estado_id "); - sql.append(" inner join parada d on coalesce(ase.aliasdestino_id, c.destino_id) = d.parada_id "); - sql.append(" inner join ciudad cd on d.ciudad_id = cd.ciudad_id "); - sql.append(" inner join estado ed on ed.estado_id = cd.estado_id "); sql.append(" left join empresa_imposto ei on ei.empresa_id = ep.empresa_id and ei.estado_id = e.estado_id and ei.activo = 1 "); - sql.append("where c.activo = 1 and bpe.tipoamb = 1 and bpe.codstat in ('-1','100','102','150') "); - sql.append(" and (bpe.fecmodif < (case when (to_char(bpe.fecmodif, 'mm/yyyy') <> to_char(bpecan.fecmodif, 'mm/yyyy') ) "); - sql.append(" then bpecan.fecmodif else bpe.fecmodif end) or bpecan.fecmodif is null) "); - sql.append(" and c.feccreacion >= :DATE_INICIO "); - sql.append(" and c.feccreacion <= :DATE_FIM "); + sql.append("where c.activo = 1 and e.activo = 1 and ei.activo = 1 "); + sql.append(" and bpe.tipoamb = 1 and ep.activo = 1 "); + sql.append(" and bpe.codstat in ('-1','100','101','102','135','150') "); + sql.append(" and (bpe.tipoevento not in ('110115','110116') or bpe.tipoevento is null) "); + sql.append(" and c.feccreacion >= to_date(:DATE_INICIO,'DD/MM/YYYY HH24:MI:SS') "); + sql.append(" and c.feccreacion <= to_date(:DATE_FIM,'DD/MM/YYYY HH24:MI:SS') "); sql.append(" and ep.empresa_id = :EMPRESA_ID "); sql.append(" and e.cveestado in ( ").append(ufs).append(" ) "); - - return sql.toString(); - } - - private String sqlRelatorioRDICancelados(String ufs) { - - StringBuilder sql = new StringBuilder(); - sql.append("select distinct "); - sql.append(" b.boleto_id as cajaId, "); - sql.append(" 'DEV' as tipoReceita, "); - sql.append(" b.numoperacion as numoperacion, "); - sql.append(" trunc(bori.feccreacion) as fechorVenta, "); - sql.append(" est_bpe.estado_id as estadoId, "); - sql.append(" ei.icms as icmsInterestadual, "); - sql.append(" ei.icmsim as icmsIntermunicipal, "); - sql.append(" est_bpe.cveestado as estadoOrigem, "); - sql.append(" eds.cveestado as estadoDestino, "); - sql.append(" co.codibge as municipioOrigem, "); - sql.append(" case when (est_bpe.cveestado = eds.cveestado) then 0 else 1 end as isInterEstadual, "); - sql.append(" 0 as isenta, "); - sql.append(" ei.porcredbaseicms as redBaseCalcIcms, "); - sql.append(" ei.porcredmunicipal as porcRedMunicipal, "); - sql.append(" ei.porcredestadual as porcRedEstadual, "); - sql.append(" ei.indtarifamunicipal as indtarifamunicipal, "); - sql.append(" ei.indseguromunicipal as indseguromunicipal, "); - sql.append(" ei.indtxembarquemunicipal as indtxembarquemunicipal, "); - sql.append(" ei.indpedagiomunicipal as indpedagiomunicipal, "); - sql.append(" ei.indtarifaestadual as indtarifaestadual, "); - sql.append(" ei.indseguroestadual as indseguroestadual, "); - sql.append(" ei.indtxembarqueestadual as indtxembarqueestadual, "); - sql.append(" ei.indpedagioestdual as indpedagioestdual, "); - sql.append(" ei.tributacaoImportacao as tributacaoImportacao, "); - sql.append(" coalesce(b.preciopagado, 0) as tarifa, "); - sql.append(" coalesce(b.importetaxaembarque, 0) as taxaEmbarque, "); - sql.append(" coalesce(b.importepedagio, 0) as pedagio, "); - sql.append(" coalesce(b.importeseguro, 0) as seguro, "); - sql.append(" coalesce(b.importeoutros, 0) as outros, "); - sql.append(" to_char(trunc(bori.feccreacion), 'yyyymmdd') as datamov, "); - sql.append(" dbms_lob.substr((case when bpeori.tipoevento is not null then bpeant.xmlregular else bpeori.xmlregular end), 3000) as xml_bpe, "); - sql.append(" dbms_lob.substr((case when bpeori.tipoevento is not null then bpeant.xmlregular else bpeori.xmlregular end), 3000, 3001) as xml_bpe_2, "); - sql.append(" dbms_lob.substr((case when bpeori.tipoevento is not null then bpeant.xmlregular else bpeori.xmlregular end), 3000, 6001) as xml_bpe_3 "); - sql.append("from boleto bori "); - sql.append(" inner join marca m on m.marca_id = bori.marca_id and m.activo = 1 "); - sql.append(" inner join empresa e on e.empresa_id = m.empresa_id "); - sql.append(" inner join bpe bpe on bpe.boleto_id = bori.boleto_id "); - sql.append(" and bpe.activo = (case when bori.motivocancelacion_id = 17 and bori.boletooriginal_id is null then 0 else 1 end) "); - sql.append(" inner join estado est_bpe on bpe.uf = est_bpe.codibge "); - sql.append(" left join bpe bpeori on bpeori.chbpe = bpe.chbpe_substituicao "); - sql.append(" and bpeori.activo = (case when bori.motivocancelacion_id = 17 and bori.boletooriginal_id is null then 0 else 1 end) "); - sql.append(" left join boleto b on b.boleto_id = bpeori.boleto_id "); - sql.append(" inner join punto_venta ptv on ptv.puntoventa_id = b.puntoventa_id "); - sql.append(" inner join parada ori on (b.origen_id = ori.parada_id ) "); - sql.append(" inner join parada des on (b.destino_id = des.parada_id ) "); - sql.append(" inner join ciudad co on (co.ciudad_id = ori.ciudad_id ) "); - sql.append(" inner join ciudad cd on (cd.ciudad_id = des.ciudad_id ) "); - sql.append(" inner join estado est on est.estado_id = co.estado_id "); - sql.append(" left join alias_servico s on s.origen_id = b.origen_id "); - sql.append(" and s.destino_id = b.destino_id and (s.corrida_id = b.corrida_id or s.corrida_id is null) "); - sql.append(" and s.ruta_id = b.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(" join inscricao_estadual ie on e.empresa_id = ie.empresa_id "); - sql.append(" and ie.estado_id = coalesce(eos.estado_id, est.estado_id) and ie.activo = 1 "); - sql.append(" join empresa_imposto ei on ei.empresa_id = e.empresa_id "); - sql.append(" and ei.estado_id = coalesce(eos.estado_id, est.estado_id) and ei.activo = 1 "); - sql.append(" left join aidf aidf on aidf.aidf_id = b.aidf_id and b.tipoventa_id = 3 "); - sql.append(" left join estado esaidf on esaidf.estado_id = aidf.estado_id "); - sql.append(" left join boleto bant on bant.boleto_id = (case when bpeori.tipoevento is not null then coalesce(b.boletoanterior_id, b.boletooriginal_id) else null end) "); - sql.append(" left join bpe bpeant on bpeant.boleto_id = bant.boleto_id "); - sql.append(" left join punto_venta ptvo on ptvo.puntoventa_id = coalesce(bant.puntoventa_id, bori.puntoventa_id,b.ptovtaventa_id) "); - sql.append("where ( (bpe.codstat in ('-1','100','101','102','135','150') and bpe.chbpe_substituicao is not null) "); - sql.append(" or (bpe.codstat in ('101','135') and to_char(b.feccreacion, 'mm/yyyy') < to_char(bori.feccreacion, 'mm/yyyy')) ) "); - sql.append(" and (bpe.codstat in ('-1','100','101','102','135','150') and bpe.tipoevento <> '110115' or bpe.tipoevento is null) "); - sql.append(" and (bpeori.codstat in ('-1','100','101','102','135','150') and bpeori.tipoevento <> '110115' or bpeori.tipoevento is null) "); - sql.append(" and bori.feccreacion >= :DATE_INICIO "); - sql.append(" and bori.feccreacion <= :DATE_FIM "); - sql.append(" and est_bpe.cveestado in ( ").append(ufs).append(" ) "); - sql.append(" and e.empresa_id = :EMPRESA_ID "); - sql.append(" "); - sql.append(" union all "); - sql.append(" "); - sql.append("select distinct "); - sql.append(" b.boleto_id as cajaId, "); - sql.append(" 'DEV' as tipoReceita, "); - sql.append(" b.numoperacion as numoperacion, "); - sql.append(" trunc(bori.feccreacion) as fechorVenta, "); - sql.append(" est_bpe.estado_id as estadoId, "); - sql.append(" ei.icms as icmsInterestadual, "); - sql.append(" ei.icmsim as icmsIntermunicipal, "); - sql.append(" est_bpe.cveestado as estadoOrigem, "); - sql.append(" eds.cveestado as estadoDestino, "); - sql.append(" co.codibge as municipioOrigem, "); - sql.append(" case when (est_bpe.cveestado = eds.cveestado) then 0 else 1 end as isInterEstadual, "); - sql.append(" 0 as isenta, "); - sql.append(" ei.porcredbaseicms as redBaseCalcIcms, "); - sql.append(" ei.porcredmunicipal as porcRedMunicipal, "); - sql.append(" ei.porcredestadual as porcRedEstadual, "); - sql.append(" ei.indtarifamunicipal as indtarifamunicipal, "); - sql.append(" ei.indseguromunicipal as indseguromunicipal, "); - sql.append(" ei.indtxembarquemunicipal as indtxembarquemunicipal, "); - sql.append(" ei.indpedagiomunicipal as indpedagiomunicipal, "); - sql.append(" ei.indtarifaestadual as indtarifaestadual, "); - sql.append(" ei.indseguroestadual as indseguroestadual, "); - sql.append(" ei.indtxembarqueestadual as indtxembarqueestadual, "); - sql.append(" ei.indpedagioestdual as indpedagioestdual, "); - sql.append(" ei.tributacaoImportacao as tributacaoImportacao, "); - sql.append(" coalesce(b.preciopagado, 0) as tarifa, "); - sql.append(" coalesce(b.importetaxaembarque, 0) as taxaEmbarque, "); - sql.append(" coalesce(b.importepedagio, 0) as pedagio, "); - sql.append(" coalesce(b.importeseguro, 0) as seguro, "); - sql.append(" coalesce(b.importeoutros, 0) as outros, "); - sql.append(" to_char(trunc(bori.feccreacion), 'yyyymmdd') as datamov, "); - sql.append(" dbms_lob.substr((case when bpeori.tipoevento is not null then bpeant.xmlregular else bpeori.xmlregular end), 3000) as xml_bpe, "); - sql.append(" dbms_lob.substr((case when bpeori.tipoevento is not null then bpeant.xmlregular else bpeori.xmlregular end), 3000, 3001) as xml_bpe_2, "); - sql.append(" dbms_lob.substr((case when bpeori.tipoevento is not null then bpeant.xmlregular else bpeori.xmlregular end), 3000, 6001) as xml_bpe_3 "); - sql.append("from boleto bori "); - sql.append(" inner join marca m on m.marca_id = bori.marca_id and m.activo = 1 "); - sql.append(" inner join empresa e on e.empresa_id = m.empresa_id "); - sql.append(" inner join bpe bpe on bpe.boleto_id = bori.boleto_id "); - sql.append(" and bpe.activo = (case when bori.motivocancelacion_id = 17 and bori.boletooriginal_id is null then 0 else 1 end) "); - sql.append(" inner join estado est_bpe on bpe.uf = est_bpe.codibge "); - sql.append(" left join boleto b on b.boleto_id = (case when bori.motivocancelacion_id = 99 then bori.boletoanterior_id else bori.boletooriginal_id end) "); - sql.append(" left join bpe bpeori on b.boleto_id = bpeori.boleto_id "); - sql.append(" and bpeori.activo = (case when bori.motivocancelacion_id = 17 and bori.boletooriginal_id is null then 0 else 1 end) "); - sql.append(" inner join punto_venta ptv on ptv.puntoventa_id = bori.puntoventa_id "); - sql.append(" inner join parada ori on (b.origen_id = ori.parada_id ) "); - sql.append(" inner join parada des on (b.destino_id = des.parada_id ) "); - sql.append(" inner join ciudad co on (co.ciudad_id = ori.ciudad_id ) "); - sql.append(" inner join ciudad cd on (cd.ciudad_id = des.ciudad_id ) "); - sql.append(" inner join estado est on est.estado_id = co.estado_id "); - sql.append("left join alias_servico s on s.origen_id = b.origen_id "); - sql.append(" and s.destino_id = b.destino_id and (s.corrida_id = b.corrida_id or s.corrida_id is null) "); - sql.append(" and s.ruta_id = b.ruta_id and s.activo = 1 "); - 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("join inscricao_estadual ie on e.empresa_id = ie.empresa_id "); - sql.append(" and ie.estado_id = coalesce(eos.estado_id, est.estado_id) and ie.activo = 1 "); - sql.append("join empresa_imposto ei on ei.empresa_id = e.empresa_id "); - sql.append(" and ei.estado_id = coalesce(eos.estado_id, est.estado_id) and ei.activo = 1 "); - sql.append("left join aidf aidf on aidf.aidf_id = b.aidf_id and b.tipoventa_id = 3 "); - sql.append("left join estado esaidf on esaidf.estado_id = aidf.estado_id "); - sql.append("left join boleto bant on bant.boleto_id = (case when bpeori.tipoevento is not null then coalesce(b.boletoanterior_id, b.boletooriginal_id) else null end) "); - sql.append("left join bpe bpeant on bpeant.boleto_id = bant.boleto_id "); - sql.append(" and bpeant.activo = (case when bori.motivocancelacion_id = 17 and bori.boletooriginal_id is null then 0 else 1 end) "); - sql.append("left join punto_venta ptvo on ptvo.puntoventa_id = coalesce(bant.puntoventa_id, bori.puntoventa_id,b.ptovtaventa_id) "); - sql.append("where "); - sql.append(" (bpe.codstat in ('101','135') and to_char(b.feccreacion, 'mm/yyyy') < to_char(bori.feccreacion, 'mm/yyyy')) "); - sql.append(" and (bpe.codstat in ('-1','100','101','102','135','150') and bpe.tipoevento <> '110115' or bpe.tipoevento is null) "); - sql.append(" and (bpeori.codstat in ('-1','100','101','102','135','150') and bpeori.tipoevento <> '110115' or bpeori.tipoevento is null) "); - sql.append(" and bori.feccreacion >= :DATE_INICIO "); - sql.append(" and bori.feccreacion <= :DATE_FIM "); - sql.append(" and est_bpe.cveestado in ( ").append(ufs).append(" ) "); - sql.append(" and e.empresa_id = :EMPRESA_ID "); - - sql.append("order by estadoId, isInterEstadual "); + sql.append("order by estadoId, to_number(c.numfoliosistema), to_number(num_bpe), fechorVenta "); return sql.toString(); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index 7e6c71c2d..4c791492f 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -2399,7 +2399,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sb.append(" and f.empresa_id = ? "); sb.append(" and eof.cveestado like ? "); sb.append(" and (f.indcancelacion = 1 or ( "); - + if (isDif) { sb.append(" ((b.tipoventa_id not in (5,12,18,81,82,49,41) and b.indstatusboleto = 'V' and b.indreimpresion = 0) "); sb.append(" or (b.tipoventa_id in (5,12,18,81,82,49,41) "); @@ -3694,7 +3694,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO } else if (isCancelamento) { sql = getSqlImpressaoRMDCancelados(); } - + NamedParameterStatement ps = new NamedParameterStatement(connection, sql); ps.getStatement().setFetchSize(100); ps.setInt("EMPRESA_ID", empresaId); @@ -3772,7 +3772,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO public boolean validaConstanteCustom(String valor, String nomeConstante) { ConstanteService constanteService = (ConstanteService) AppContext.getApplicationContext().getBean("constanteService"); - String value = constanteService.buscarPorNomeConstante(nomeConstante).getValorconstante(); + Constante contante = constanteService.buscarPorNomeConstante(nomeConstante); + String value = contante == null ? null : contante.getValorconstante(); if (StringUtils.isBlank(value)) return false; diff --git a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/ExportacaoBpe.java b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/ExportacaoBpe.java index 4ac07945f..a4f5489aa 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/ExportacaoBpe.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/ExportacaoBpe.java @@ -8,6 +8,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.stereotype.Service; +import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.service.ConstanteService; import com.rjconsultores.ventaboletos.utilerias.UtiliteriasFiscal; import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPEBase; @@ -36,9 +37,8 @@ public class ExportacaoBpe { StringBuilder writer = new StringBuilder(); ConstanteService constanteService = (ConstanteService) AppContext.getApplicationContext().getBean("constanteService"); - String valorConstante = constanteService.buscarPorNomeConstante("IMPORT_BPE_LAYOUT_DIF") == null - ? null - : constanteService.buscarPorNomeConstante("IMPORT_BPE_LAYOUT_DIF").getValorconstante(); + Constante contante = constanteService.buscarPorNomeConstante("IMPORT_BPE_LAYOUT_DIF"); + String valorConstante = contante == null ? null : contante.getValorconstante(); boolean isVersao131 = StringUtils.isBlank(valorConstante) ? true : false; String versaoLayout = StringUtils.isBlank(valorConstante) ? "131" : valorConstante; @@ -63,22 +63,20 @@ public class ExportacaoBpe { linhas++; } - // for (ExportacaoBPETipoOBE tipoOBE : ee.getListaRegistroOBE()) { - // adicionarRegistroBPETipoOBE(writer, tipoOBE); - // linhas++; - // } - - // for (ExportacaoBPETipoPRC tipoPRC : ee.getListaRegistroPRC()) { - // adicionarRegistroBPETipoRPC(writer, tipoPRC); - // linhas++; - // } - + /* + * Expecificado na documentação original + * + * for (ExportacaoBPETipoOBE tipoOBE : ee.getListaRegistroOBE()) { adicionarRegistroBPETipoOBE(writer, tipoOBE); linhas++; + * + * + * for (ExportacaoBPETipoPRC tipoPRC : ee.getListaRegistroPRC()) { adicionarRegistroBPETipoRPC(writer, tipoPRC); linhas++; } + */ } writer.append("TRA|" + linhas + UtiliteriasFiscal.QUEBRA_LINHA); log.info(" Fim -- Retorno da lista " + new Date()); - + return writer.toString(); } catch (Exception e) { log.error(e.getMessage(), e); @@ -200,6 +198,10 @@ public class ExportacaoBpe { sb.append(UtiliteriasFiscal.QUEBRA_LINHA); } + /* + * Expecificado na documentação original + */ + @SuppressWarnings("unused") private void adicionarRegistroBPETipoOBE(final StringBuilder sb, ExportacaoBPETipoOBE tipoOBE) { String tipoRegistro = "OBE"; String codigo = tipoOBE.getCodigo(); @@ -211,6 +213,10 @@ public class ExportacaoBpe { sb.append(UtiliteriasFiscal.QUEBRA_LINHA); } + /* + * Expecificado na documentação original + */ + @SuppressWarnings("unused") private void adicionarRegistroBPETipoRPC(final StringBuilder sb, ExportacaoBPETipoPRC tipoPRC) { String tipoRegistro = "RPC"; String UF = tipoPRC.getUf(); diff --git a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEBase.java b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEBase.java index d4ae3f2e7..7fd13d0d4 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEBase.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEBase.java @@ -46,7 +46,44 @@ public class ExportacaoBPEBase { private Boolean indSeguroEstadual; private Boolean indTxEmbarqueEstadual; private Boolean indPedadioEstdual; - + + private String cmunini; + private String cmunfim; + private String ufini; + private String uffim; + private String nbp; + private String dhemb; + private String cst00; + private String cst20; + private String cst45; + private String cst90; + private String cstoutrauf; + private String cstsn; + private String vbc00; + private String picms00; + private String vicms00; + private String vbc20; + private String picms20; + private String vicms20; + private String vbp; + private String vdesconto; + private String vpgto; + private String tpcomp01; + private String tpcomp02; + private String tpcomp03; + private String tpcomp04; + private String tpcomp05; + private String tpcomp06; + private String tpcomp99; + private String vcomp01; + private String vcomp02; + private String vcomp03; + private String vcomp04; + private String vcomp05; + private String vcomp06; + private String vcomp99; + private String pRedBC; + private List listaRegistroBPE; private List listaRegistroDPE; private List listaRegistroOBE; @@ -411,4 +448,292 @@ public class ExportacaoBPEBase { this.xmlAnterior = xmlAnterior; } + public String getCmunini() { + return cmunini; + } + + public void setCmunini(String cmunini) { + this.cmunini = cmunini; + } + + public String getCmunfim() { + return cmunfim; + } + + public void setCmunfim(String cmunfim) { + this.cmunfim = cmunfim; + } + + public String getUfini() { + return ufini; + } + + public void setUfini(String ufini) { + this.ufini = ufini; + } + + public String getUffim() { + return uffim; + } + + public void setUffim(String uffim) { + this.uffim = uffim; + } + + public String getNbp() { + return nbp; + } + + public void setNbp(String nbp) { + this.nbp = nbp; + } + + public String getDhemb() { + return dhemb; + } + + public void setDhemb(String dhemb) { + this.dhemb = dhemb; + } + + public String getCst00() { + return cst00; + } + + public void setCst00(String cst00) { + this.cst00 = cst00; + } + + public String getCst20() { + return cst20; + } + + public void setCst20(String cst20) { + this.cst20 = cst20; + } + + public String getCst45() { + return cst45; + } + + public void setCst45(String cst45) { + this.cst45 = cst45; + } + + public String getCst90() { + return cst90; + } + + public void setCst90(String cst90) { + this.cst90 = cst90; + } + + public String getCstoutrauf() { + return cstoutrauf; + } + + public void setCstoutrauf(String cstoutrauf) { + this.cstoutrauf = cstoutrauf; + } + + public String getCstsn() { + return cstsn; + } + + public void setCstsn(String cstsn) { + this.cstsn = cstsn; + } + + public String getVbc00() { + return vbc00; + } + + public void setVbc00(String vbc00) { + this.vbc00 = vbc00; + } + + public String getPicms00() { + return picms00; + } + + public void setPicms00(String picms00) { + this.picms00 = picms00; + } + + public String getVicms00() { + return vicms00; + } + + public void setVicms00(String vicms00) { + this.vicms00 = vicms00; + } + + public String getVbc20() { + return vbc20; + } + + public void setVbc20(String vbc20) { + this.vbc20 = vbc20; + } + + public String getPicms20() { + return picms20; + } + + public void setPicms20(String picms20) { + this.picms20 = picms20; + } + + public String getVicms20() { + return vicms20; + } + + public void setVicms20(String vicms20) { + this.vicms20 = vicms20; + } + + public String getVbp() { + return vbp; + } + + public void setVbp(String vbp) { + this.vbp = vbp; + } + + public String getVdesconto() { + return vdesconto; + } + + public void setVdesconto(String vdesconto) { + this.vdesconto = vdesconto; + } + + public String getVpgto() { + return vpgto; + } + + public void setVpgto(String vpgto) { + this.vpgto = vpgto; + } + + public String getTpcomp01() { + return tpcomp01; + } + + public void setTpcomp01(String tpcomp01) { + this.tpcomp01 = tpcomp01; + } + + public String getTpcomp02() { + return tpcomp02; + } + + public void setTpcomp02(String tpcomp02) { + this.tpcomp02 = tpcomp02; + } + + public String getTpcomp03() { + return tpcomp03; + } + + public void setTpcomp03(String tpcomp03) { + this.tpcomp03 = tpcomp03; + } + + public String getTpcomp04() { + return tpcomp04; + } + + public void setTpcomp04(String tpcomp04) { + this.tpcomp04 = tpcomp04; + } + + public String getTpcomp05() { + return tpcomp05; + } + + public void setTpcomp05(String tpcomp05) { + this.tpcomp05 = tpcomp05; + } + + public String getTpcomp06() { + return tpcomp06; + } + + public void setTpcomp06(String tpcomp06) { + this.tpcomp06 = tpcomp06; + } + + public String getTpcomp99() { + return tpcomp99; + } + + public void setTpcomp99(String tpcomp99) { + this.tpcomp99 = tpcomp99; + } + + public String getVcomp01() { + return vcomp01; + } + + public void setVcomp01(String vcomp01) { + this.vcomp01 = vcomp01; + } + + public String getVcomp02() { + return vcomp02; + } + + public void setVcomp02(String vcomp02) { + this.vcomp02 = vcomp02; + } + + public String getVcomp03() { + return vcomp03; + } + + public void setVcomp03(String vcomp03) { + this.vcomp03 = vcomp03; + } + + public String getVcomp04() { + return vcomp04; + } + + public void setVcomp04(String vcomp04) { + this.vcomp04 = vcomp04; + } + + public String getVcomp05() { + return vcomp05; + } + + public void setVcomp05(String vcomp05) { + this.vcomp05 = vcomp05; + } + + public String getVcomp06() { + return vcomp06; + } + + public void setVcomp06(String vcomp06) { + this.vcomp06 = vcomp06; + } + + public String getVcomp99() { + return vcomp99; + } + + public void setVcomp99(String vcomp99) { + this.vcomp99 = vcomp99; + } + + public String getpRedBC() { + return pRedBC; + } + + public void setpRedBC(String pRedBC) { + this.pRedBC = pRedBC; + } + } diff --git a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEVo.java b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEVo.java index 56d43287f..c9a0d9c39 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEVo.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEVo.java @@ -18,7 +18,10 @@ public class ExportacaoBPEVo { static final BigDecimal ZERO = BigDecimal.ZERO; public class StatusBpe { + static final String CONTIGENCIA_ENVIADA = "-1"; static final String VENDA = "100"; + static final String CANCELAMENTO_BPE_HOMOLOGADO = "101"; + static final String SUBSTITUICAO_BPE_HOMOLOGADA = "102"; static final String VENDA_CONTIGENCIA = "150"; static final String EVENTOS = "135"; } @@ -26,6 +29,7 @@ public class ExportacaoBPEVo { public class EventosBpe { static final String CANCELAMENTO = "110111"; static final String NAO_EMBARQUE = "110115"; + static final String TROCA_POLTRONA = "110116"; } public static class CrtBpe { @@ -55,19 +59,170 @@ public class ExportacaoBPEVo { return listaRegistroBaseBPE; } - public boolean isBpeCanceladoENaoEmbarque(ExportacaoBPEBase registro) { - return (registro.getCodstatus() == null ? false : (registro.getCodstatus().equals(StatusBpe.EVENTOS))); + public void setListaRegistroBaseBPE(List listaRegistroBaseBPE) { + this.listaRegistroBaseBPE = listaRegistroBaseBPE; } - public boolean isBpeCancelado(ExportacaoBPEBase registro) { - return (registro.getCodstatus() == null ? false : (registro.getCodstatus().equals(StatusBpe.EVENTOS))); + public static boolean isBpeCancelado(String codstatus) { + return (codstatus == null ? false : (codstatus.equals(StatusBpe.EVENTOS) || codstatus.equals(StatusBpe.CANCELAMENTO_BPE_HOMOLOGADO))); } - public void gerarListas(ExportacaoBPEBase registro) { + public static ExportacaoBPEBase gerarListas(ExportacaoBPEBase registro) { String indContribuicaoPrevidenciaria = "00000060"; - boolean isCancelamento = isBpeCancelado(registro); + boolean isCancelamento = isBpeCancelado(registro.getCodstatus()); + + String municipioOrigem = StringUtils.substring(registro.getCmunini(), 2); + String municipioDestino = StringUtils.substring(registro.getCmunfim(), 2); + String estadoOrigem = registro.getUfini(); + String estadoDestino = registro.getUffim(); + + boolean isInterMunicipal = estadoOrigem.equals(estadoDestino); + String codigoContabil = isInterMunicipal ? registro.getCodigocontabilMunicipal() : registro.getCodigoContabilEstadual(); + + String tpDoc = isCancelamento ? "1" : (StringUtils.isBlank(registro.getChbpeSub()) ? "0" : "0"); + String numBpe = registro.getNbp(); + String dhEmisao = registro.getDhEmisao(); + String dataPrestacao = StringUtils.isBlank(registro.getDhemb()) ? registro.getDhrecbto() + : DateUtil.changeFormatStringDate(registro.getDhemb(), DateUtil.formatGMT, DateUtil.formatExp); + + if (isCancelamento) { + + ExportacaoBPETipoBPE tipoBPE = new ExportacaoBPETipoBPE(registro.getCodEstabelecimento(), registro.getChbpe(), registro.getNumSerieBpe(), + numBpe, dhEmisao, tpDoc, VAZIO, null, null, + VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, null, VAZIO, VAZIO, VAZIO, + VAZIO, registro.getRetorno(), VAZIO); + + registro.getListaRegistroBPE().add(tipoBPE); + + } else { + String vBC = null; + String pICMS = null; + String vICMS = null; + String cst = null; + String pRedBC = null; + String vBP = null; + String vDesconto = null; + String vPgto = null; + + String vTxEmbarque = null; + String vPedagio = null; + String vSeguro = null; + + if (StringUtils.isNotBlank(registro.getPicms00())) { + vBC = registro.getVbc00(); + pICMS = registro.getPicms00(); + vICMS = registro.getVicms00(); + } else if (StringUtils.isNotBlank(registro.getPicms20())) { + vBC = registro.getVbc20(); + pICMS = registro.getPicms20(); + vICMS = registro.getVicms20(); + pRedBC = registro.getpRedBC(); + } + + vBP = registro.getVbp(); + vDesconto = registro.getVdesconto(); + vPgto = registro.getVpgto(); + + vPedagio = (isInterMunicipal && !registro.getIndPedadioEstdual()) ? (registro.getVcomp02() == null ? "0.0" : registro.getVcomp02()) : "0.0"; + if (vPedagio.equals("0.0")) + vPedagio = (!isInterMunicipal && !registro.getIndPedagioMunicipal()) ? (registro.getVcomp02() == null ? "0.0" : registro.getVcomp02()) : "0.0"; + + vTxEmbarque = (isInterMunicipal && !registro.getIndTxEmbarqueEstadual()) ? (registro.getVcomp03() == null ? "0.0" : registro.getVcomp03()) : "0.0"; + if (vTxEmbarque.equals("0.0")) + vTxEmbarque = (!isInterMunicipal && !registro.getIndTxEmbarqueMunicipal()) ? (registro.getVcomp03() == null ? "0.0" : registro.getVcomp03()) : "0.0"; + + vSeguro = (isInterMunicipal && !registro.getIndSeguroEstadual()) ? (registro.getVcomp04() == null ? "0.0" : registro.getVcomp04()) : "0.0"; + if (vSeguro.equals("0.0")) + vSeguro = (!isInterMunicipal && !registro.getIndSeguroMunicipal()) ? (registro.getVcomp04() == null ? "0.0" : registro.getVcomp04()) : "0.0"; + + // validar cst enviado + if (StringUtils.isNotBlank(registro.getCst00())) + cst = registro.getCst00(); + else if (StringUtils.isNotBlank(registro.getCst20())) + cst = registro.getCst20(); + else if (StringUtils.isNotBlank(registro.getCst45())) + cst = registro.getCst45(); + else if (StringUtils.isNotBlank(registro.getCst90())) + cst = registro.getCst90(); + else if (StringUtils.isNotBlank(registro.getCstoutrauf())) + cst = registro.getCstoutrauf(); + else if (StringUtils.isNotBlank(registro.getCstsn())) + cst = registro.getCstsn(); + + String cstCofins = "01"; + String cstPis = "01"; + + // dependende dos parametros + BigDecimal valorPago = new BigDecimal(vPgto == null ? "0.0" : vPgto); + BigDecimal txEmbarque = new BigDecimal(vTxEmbarque == null ? "0.0" : vTxEmbarque); + BigDecimal pedagio = new BigDecimal(vPedagio == null ? "0.0" : vPedagio); + BigDecimal seguro = new BigDecimal(vSeguro == null ? "0.0" : vSeguro); + + BigDecimal receitaTriCofins = new BigDecimal(vBC == null ? "0.0" : vBC); + if (pRedBC != null) { + receitaTriCofins = valorPago.subtract(txEmbarque.add(pedagio).add(pedagio).add(seguro)); + } + + BigDecimal valorBruto = StringUtils.isBlank(vBP) ? registro.getValortotal() : new BigDecimal(vBP == null ? "0.0" : vBP); + BigDecimal desconto = StringUtils.isBlank(vDesconto) ? registro.getvDesconto() : new BigDecimal(vDesconto == null ? "0.0" : vDesconto); + + String chbpeSub = registro.getChbpeSub(); + String tpBpe = StringUtils.isBlank(registro.getChbpeSub()) ? "1" : "2"; + + ExportacaoBPETipoBPE tipoBPE = new ExportacaoBPETipoBPE(registro.getCodEstabelecimento(), registro.getChbpe(), registro.getNumSerieBpe(), + numBpe, dhEmisao, tpDoc, dataPrestacao, valorBruto, + desconto, estadoOrigem, municipioOrigem, estadoDestino, municipioDestino, + cstCofins, receitaTriCofins, tpBpe, chbpeSub, codigoContabil, + indContribuicaoPrevidenciaria, registro.getRetorno(), cstPis); + + registro.getListaRegistroBPE().add(tipoBPE); + + String cfop = isInterMunicipal ? "5357" : "6357"; + + String csosnb = ""; + if (registro.getCrt().equals(CrtBpe.SIMPLES_NACIONAL)) { + csosnb = CrtBpe.SIMPLES_NACIONAL.toString(); + csosnb = UtiliteriasFiscal.formataNumerico(csosnb, 3); + } else if (registro.getCrt().equals(CrtBpe.SIMPLES_NACIONAL_EXCESSO_RECEITA_BRUTA)) { + csosnb = CrtBpe.SIMPLES_NACIONAL_EXCESSO_RECEITA_BRUTA.toString(); + csosnb = UtiliteriasFiscal.formataNumerico(csosnb, 3); + } + + BigDecimal baseCalculoICMS = new BigDecimal(vBC == null ? "0.0" : vBC); + BigDecimal aliquotaICMS = new BigDecimal(pICMS == null ? "0.0" : pICMS); + BigDecimal icms = new BigDecimal(vICMS == null ? "0.0" : vICMS); + + BigDecimal isentas = registro.getValortotal().subtract(baseCalculoICMS); + if (pRedBC != null) { + isentas = txEmbarque.add(pedagio).add(seguro); + } + + BigDecimal outras = new BigDecimal(pRedBC == null ? "0.0" : pRedBC); + if (pRedBC != null) { + outras = valorPago.subtract(baseCalculoICMS); + outras = outras.subtract(isentas); + } + + ExportacaoBPETipoDPE tipoDPE = new ExportacaoBPETipoDPE(registro.getValortotal(), cfop, cst, csosnb, + baseCalculoICMS, aliquotaICMS, icms, isentas, outras); + registro.getListaRegistroDPE().add(tipoDPE); + + } + + return registro; + } + + /* + * Apos a implementação dos novos campos na taleta BPE na venda não utilizar mais este metodo para importação de dados BPe + */ + @Deprecated + public static ExportacaoBPEBase gerarListasXML(ExportacaoBPEBase registro) { + + String indContribuicaoPrevidenciaria = "00000060"; + + boolean isCancelamento = isBpeCancelado(registro.getCodstatus()); TBPe tbpe = null; String xml = StringUtils.isNotBlank(registro.getXmlAnterior()) ? registro.getXmlAnterior() : registro.getXml(); @@ -133,20 +288,17 @@ public class ExportacaoBPEVo { if (comp.getTpComp().equals(TipoComp.PEDAGIO)) { vPedagio = (isInterMunicipal && !registro.getIndPedadioEstdual()) ? (comp.getVComp() == null ? "0.0" : comp.getVComp()) : "0.0"; - if (vPedagio.equals("0.0")) - vPedagio = (!isInterMunicipal && !registro.getIndPedagioMunicipal()) ? (comp.getVComp() == null ? "0.0" : comp.getVComp()) : "0.0"; + vPedagio = (!isInterMunicipal && !registro.getIndPedagioMunicipal()) ? (comp.getVComp() == null ? "0.0" : comp.getVComp()) : "0.0"; } if (comp.getTpComp().equals(TipoComp.TAXA_EMBARQUE)) { vTxEmbarque = (isInterMunicipal && !registro.getIndTxEmbarqueEstadual()) ? (comp.getVComp() == null ? "0.0" : comp.getVComp()) : "0.0"; - if (vTxEmbarque.equals("0.0")) - vTxEmbarque = (!isInterMunicipal && !registro.getIndTxEmbarqueMunicipal()) ? (comp.getVComp() == null ? "0.0" : comp.getVComp()) : "0.0"; + vTxEmbarque = (!isInterMunicipal && !registro.getIndTxEmbarqueMunicipal()) ? (comp.getVComp() == null ? "0.0" : comp.getVComp()) : "0.0"; } if (comp.getTpComp().equals(TipoComp.SEGURO)) { vSeguro = (isInterMunicipal && !registro.getIndSeguroEstadual()) ? (comp.getVComp() == null ? "0.0" : comp.getVComp()) : "0.0"; - if (vSeguro.equals("0.0")) - vSeguro = (!isInterMunicipal && !registro.getIndSeguroMunicipal()) ? (comp.getVComp() == null ? "0.0" : comp.getVComp()) : "0.0"; + vSeguro = (!isInterMunicipal && !registro.getIndSeguroMunicipal()) ? (comp.getVComp() == null ? "0.0" : comp.getVComp()) : "0.0"; } } } @@ -212,7 +364,7 @@ public class ExportacaoBPEVo { BigDecimal isentas = registro.getValortotal().subtract(baseCalculoICMS); if (pRedBC != null) { - isentas = txEmbarque.add(pedagio).add(seguro); + isentas = txEmbarque.add(pedagio).add(pedagio).add(seguro); } BigDecimal outras = new BigDecimal(pRedBC == null ? "0.0" : pRedBC); @@ -227,7 +379,7 @@ public class ExportacaoBPEVo { } - this.getListaRegistroBaseBPE().add(registro); + return registro; } } diff --git a/src/com/rjconsultores/ventaboletos/utilerias/fiscal/vo/DetalhadoFiscal.java b/src/com/rjconsultores/ventaboletos/utilerias/fiscal/vo/DetalhadoFiscal.java index a4fb9931d..efb4bdb26 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/fiscal/vo/DetalhadoFiscal.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/fiscal/vo/DetalhadoFiscal.java @@ -38,6 +38,46 @@ public class DetalhadoFiscal { private String xml; + private String codstatus; + private String chbpe; + + private String cmunini; + private String cmunfim; + private String ufini; + private String uffim; + private String nbp; + private String dhemb; + private String cst00; + private String cst20; + private String cst45; + private String cst90; + private String cstoutrauf; + private String cstsn; + private String vbc00; + private String picms00; + private String vicms00; + private String vbc20; + private String picms20; + private String vicms20; + private String vbp; + private String vdesconto; + private String vpgto; + private String tpcomp01; + private String tpcomp02; + private String tpcomp03; + private String tpcomp04; + private String tpcomp05; + private String tpcomp06; + private String tpcomp99; + private String vcomp01; + private String vcomp02; + private String vcomp03; + private String vcomp04; + private String vcomp05; + private String vcomp06; + private String vcomp99; + private String pRedBC; + public Long getCajaId() { return cajaId; } @@ -286,4 +326,308 @@ public class DetalhadoFiscal { this.xml = xml; } + public String getCmunini() { + return cmunini; + } + + public void setCmunini(String cmunini) { + this.cmunini = cmunini; + } + + public String getCmunfim() { + return cmunfim; + } + + public void setCmunfim(String cmunfim) { + this.cmunfim = cmunfim; + } + + public String getUfini() { + return ufini; + } + + public void setUfini(String ufini) { + this.ufini = ufini; + } + + public String getUffim() { + return uffim; + } + + public void setUffim(String uffim) { + this.uffim = uffim; + } + + public String getNbp() { + return nbp; + } + + public void setNbp(String nbp) { + this.nbp = nbp; + } + + public String getDhemb() { + return dhemb; + } + + public void setDhemb(String dhemb) { + this.dhemb = dhemb; + } + + public String getCst00() { + return cst00; + } + + public void setCst00(String cst00) { + this.cst00 = cst00; + } + + public String getCst20() { + return cst20; + } + + public void setCst20(String cst20) { + this.cst20 = cst20; + } + + public String getCst45() { + return cst45; + } + + public void setCst45(String cst45) { + this.cst45 = cst45; + } + + public String getCst90() { + return cst90; + } + + public void setCst90(String cst90) { + this.cst90 = cst90; + } + + public String getCstoutrauf() { + return cstoutrauf; + } + + public void setCstoutrauf(String cstoutrauf) { + this.cstoutrauf = cstoutrauf; + } + + public String getCstsn() { + return cstsn; + } + + public void setCstsn(String cstsn) { + this.cstsn = cstsn; + } + + public String getVbc00() { + return vbc00; + } + + public void setVbc00(String vbc00) { + this.vbc00 = vbc00; + } + + public String getPicms00() { + return picms00; + } + + public void setPicms00(String picms00) { + this.picms00 = picms00; + } + + public String getVicms00() { + return vicms00; + } + + public void setVicms00(String vicms00) { + this.vicms00 = vicms00; + } + + public String getVbc20() { + return vbc20; + } + + public void setVbc20(String vbc20) { + this.vbc20 = vbc20; + } + + public String getPicms20() { + return picms20; + } + + public void setPicms20(String picms20) { + this.picms20 = picms20; + } + + public String getVicms20() { + return vicms20; + } + + public void setVicms20(String vicms20) { + this.vicms20 = vicms20; + } + + public String getVbp() { + return vbp; + } + + public void setVbp(String vbp) { + this.vbp = vbp; + } + + public String getVdesconto() { + return vdesconto; + } + + public void setVdesconto(String vdesconto) { + this.vdesconto = vdesconto; + } + + public String getVpgto() { + return vpgto; + } + + public void setVpgto(String vpgto) { + this.vpgto = vpgto; + } + + public String getTpcomp01() { + return tpcomp01; + } + + public void setTpcomp01(String tpcomp01) { + this.tpcomp01 = tpcomp01; + } + + public String getTpcomp02() { + return tpcomp02; + } + + public void setTpcomp02(String tpcomp02) { + this.tpcomp02 = tpcomp02; + } + + public String getTpcomp03() { + return tpcomp03; + } + + public void setTpcomp03(String tpcomp03) { + this.tpcomp03 = tpcomp03; + } + + public String getTpcomp04() { + return tpcomp04; + } + + public void setTpcomp04(String tpcomp04) { + this.tpcomp04 = tpcomp04; + } + + public String getTpcomp05() { + return tpcomp05; + } + + public void setTpcomp05(String tpcomp05) { + this.tpcomp05 = tpcomp05; + } + + public String getTpcomp06() { + return tpcomp06; + } + + public void setTpcomp06(String tpcomp06) { + this.tpcomp06 = tpcomp06; + } + + public String getTpcomp99() { + return tpcomp99; + } + + public void setTpcomp99(String tpcomp99) { + this.tpcomp99 = tpcomp99; + } + + public String getVcomp01() { + return vcomp01; + } + + public void setVcomp01(String vcomp01) { + this.vcomp01 = vcomp01; + } + + public String getVcomp02() { + return vcomp02; + } + + public void setVcomp02(String vcomp02) { + this.vcomp02 = vcomp02; + } + + public String getVcomp03() { + return vcomp03; + } + + public void setVcomp03(String vcomp03) { + this.vcomp03 = vcomp03; + } + + public String getVcomp04() { + return vcomp04; + } + + public void setVcomp04(String vcomp04) { + this.vcomp04 = vcomp04; + } + + public String getVcomp05() { + return vcomp05; + } + + public void setVcomp05(String vcomp05) { + this.vcomp05 = vcomp05; + } + + public String getVcomp06() { + return vcomp06; + } + + public void setVcomp06(String vcomp06) { + this.vcomp06 = vcomp06; + } + + public String getVcomp99() { + return vcomp99; + } + + public void setVcomp99(String vcomp99) { + this.vcomp99 = vcomp99; + } + + public String getpRedBC() { + return pRedBC; + } + + public void setpRedBC(String pRedBC) { + this.pRedBC = pRedBC; + } + + public String getCodstatus() { + return codstatus; + } + + public void setCodstatus(String codstatus) { + this.codstatus = codstatus; + } + + public String getChbpe() { + return chbpe; + } + + public void setChbpe(String chbpe) { + this.chbpe = chbpe; + } + } \ No newline at end of file