fixes bug#15167

dev: wallace
qua: 

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@96303 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2019-08-01 14:02:44 +00:00
parent cb610319eb
commit a80449b511
2 changed files with 32 additions and 44 deletions

View File

@ -204,11 +204,6 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
String xml_bpe_3 = rs.getNString("xml_bpe_3"); String xml_bpe_3 = rs.getNString("xml_bpe_3");
registro.setXml(StringUtils.join(new String[] { xml_bpe, xml_bpe_2, xml_bpe_3 })); registro.setXml(StringUtils.join(new String[] { xml_bpe, xml_bpe_2, xml_bpe_3 }));
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); registros.add(registro);
@ -320,7 +315,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
sql.append("from boleto c "); sql.append("from boleto c ");
sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id "); sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id ");
sql.append(" and bpe.activo = (case when TO_CHAR(c.feccreacion, 'yyyymmdd') <> "); sql.append(" and bpe.activo = (case when TO_CHAR(c.feccreacion, 'yyyymmdd') <> ");
sql.append(" to_char(to_timestamp_tz(bpe.dhrecbto, 'YYYY-MM-DD\"T\"HH24:MI:SSTZH:TZM'), 'yyyymmdd') then 0 else 1 end) "); sql.append(" to_char(to_date(substr(bpe.dhrecbto,0,10), 'YYYY-MM-DD'), 'yyyymmdd') then 0 else 1 end) ");
sql.append(" join estado e on e.codibge = bpe.uf "); 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 marca ma on c.marca_id = ma.marca_id ");
sql.append(" join empresa ep on ma.empresa_id = ep.empresa_id "); sql.append(" join empresa ep on ma.empresa_id = ep.empresa_id ");
@ -339,8 +334,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
} }
/** /**
* Este modelo de consulta que faz a busca do xml da tabela BPe deve ser evitado, * Este modelo de consulta que faz a busca do xml da tabela BPe deve ser evitado, por motivos de queda na performance da consulta e do processamento da converção do xml.
* por motivos de queda na performance da consulta e do processamento da converção do xml.
* *
* Porem so devera ser utlizado novo modelo de exportação apos o cliente esta com a versão que contemple o mantis 15032 * Porem so devera ser utlizado novo modelo de exportação apos o cliente esta com a versão que contemple o mantis 15032
* *
@ -349,7 +343,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
@Deprecated @Deprecated
private String queryXml() { private String queryXml() {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("select distinct "); sql.append("select ");
sql.append(" c.boleto_id, "); sql.append(" c.boleto_id, ");
sql.append(" coalesce(c.num_bpe, c.numfoliosistema) as num_bpe, "); sql.append(" coalesce(c.num_bpe, c.numfoliosistema) as num_bpe, ");
sql.append(" c.numfoliosistema as numfoliosistema, "); sql.append(" c.numfoliosistema as numfoliosistema, ");
@ -371,10 +365,10 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
sql.append(" c.categoria_id, "); sql.append(" c.categoria_id, ");
sql.append(" e.codestabelecimento as cod_estabelecimento, "); sql.append(" e.codestabelecimento as cod_estabelecimento, ");
sql.append(" ep.crtbpe as crt, "); sql.append(" ep.crtbpe as crt, ");
sql.append(" co.codibge as municipio_origem, "); // sql.append(" co.codibge as municipio_origem, ");
sql.append(" eo.cveestado as estado_origem, "); // sql.append(" eo.cveestado as estado_origem, ");
sql.append(" cd.codibge as municipio_destino, "); // sql.append(" cd.codibge as municipio_destino, ");
sql.append(" ed.cveestado as estado_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(" ((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.porcredbaseicms as red_base_calc_estadual, ");
sql.append(" ei.porcredbaseicmsim as red_base_calc_municipal, "); sql.append(" ei.porcredbaseicmsim as red_base_calc_municipal, ");
@ -393,24 +387,17 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
sql.append(" coalesce(ei.indpedagioestdual,0) as indpedagioestdual "); sql.append(" coalesce(ei.indpedagioestdual,0) as indpedagioestdual ");
sql.append("from boleto c "); sql.append("from boleto c ");
sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id "); 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 = (case when TO_CHAR(c.feccreacion, 'yyyymmdd') <> ");
sql.append(" to_char(to_date(substr(bpe.dhrecbto,0,10), 'YYYY-MM-DD'), 'yyyymmdd') then 0 else 1 end) ");
sql.append(" join estado e on e.codibge = bpe.uf "); 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 marca ma on c.marca_id = ma.marca_id ");
sql.append(" join empresa ep on ma.empresa_id = ep.empresa_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(" 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(" 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("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.tipoamb = 1 and ep.activo = 1 ");
sql.append(" and bpe.codstat in ('-1','100','101','102','135','150') "); 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 (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 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 ep.empresa_id = ? ");
@ -1312,7 +1299,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
private String sqlRelatorioRDIVendidosXML(String ufs) { private String sqlRelatorioRDIVendidosXML(String ufs) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("select distinct "); sql.append("select ");
sql.append(" c.boleto_id as cajaId, "); sql.append(" c.boleto_id as cajaId, ");
sql.append(" 'REC' as tipoReceita, "); sql.append(" 'REC' as tipoReceita, ");
sql.append(" c.numoperacion as numoperacion, "); sql.append(" c.numoperacion as numoperacion, ");
@ -1379,7 +1366,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
private String sqlRelatorioRDICanceladosXML(String ufs) { private String sqlRelatorioRDICanceladosXML(String ufs) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("select distinct "); sql.append("select ");
sql.append(" b.boleto_id as cajaId, "); sql.append(" b.boleto_id as cajaId, ");
sql.append(" 'DEV' as tipoReceita, "); sql.append(" 'DEV' as tipoReceita, ");
sql.append(" b.numoperacion as numoperacion, "); sql.append(" b.numoperacion as numoperacion, ");
@ -1457,7 +1444,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
sql.append(" "); sql.append(" ");
sql.append(" union all "); sql.append(" union all ");
sql.append(" "); sql.append(" ");
sql.append("select distinct "); sql.append("select ");
sql.append(" b.boleto_id as cajaId, "); sql.append(" b.boleto_id as cajaId, ");
sql.append(" 'DEV' as tipoReceita, "); sql.append(" 'DEV' as tipoReceita, ");
sql.append(" b.numoperacion as numoperacion, "); sql.append(" b.numoperacion as numoperacion, ");

View File

@ -225,28 +225,11 @@ public class ExportacaoBPEVo {
boolean isCancelamento = isBpeCancelado(registro.getCodstatus()); boolean isCancelamento = isBpeCancelado(registro.getCodstatus());
TBPe tbpe = null; String numBpe = registro.getNumBpe();
String xml = StringUtils.isNotBlank(registro.getXmlAnterior()) ? registro.getXmlAnterior() : registro.getXml();
if (StringUtils.isNotBlank(xml))
tbpe = BPeUtil.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 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" : "0"); String tpDoc = isCancelamento ? "1" : (StringUtils.isBlank(registro.getChbpeSub()) ? "0" : "0");
String numBpe = StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getNBP() : registro.getNumBpe();
String dhEmisao = registro.getDhEmisao(); String dhEmisao = registro.getDhEmisao();
String dataPrestacao = StringUtils.isBlank(xml) ? registro.getDhrecbto()
: DateUtil.changeFormatStringDate(tbpe.getInfBPe().getInfPassagem().getDhEmb(), DateUtil.formatGMT, DateUtil.formatExp);
if (isCancelamento) { if (isCancelamento) {
ExportacaoBPETipoBPE tipoBPE = new ExportacaoBPETipoBPE(registro.getCodEstabelecimento(), registro.getChbpe(), registro.getNumSerieBpe(), ExportacaoBPETipoBPE tipoBPE = new ExportacaoBPETipoBPE(registro.getCodEstabelecimento(), registro.getChbpe(), registro.getNumSerieBpe(),
numBpe, dhEmisao, tpDoc, VAZIO, null, null, numBpe, dhEmisao, tpDoc, VAZIO, null, null,
VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, null, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, null, VAZIO, VAZIO, VAZIO,
@ -255,6 +238,24 @@ public class ExportacaoBPEVo {
registro.getListaRegistroBPE().add(tipoBPE); registro.getListaRegistroBPE().add(tipoBPE);
} else { } else {
TBPe tbpe = null;
String xml = StringUtils.isNotBlank(registro.getXmlAnterior()) ? registro.getXmlAnterior() : registro.getXml();
if (StringUtils.isNotBlank(xml))
tbpe = BPeUtil.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 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();
numBpe = StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getNBP() : registro.getNumBpe();
String dataPrestacao = StringUtils.isBlank(xml) ? registro.getDhrecbto()
: DateUtil.changeFormatStringDate(tbpe.getInfBPe().getInfPassagem().getDhEmb(), DateUtil.formatGMT, DateUtil.formatExp);
String vBC = null; String vBC = null;
String pICMS = null; String pICMS = null;
String vICMS = null; String vICMS = null;