diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java index a2f7e1842..2852aa53a 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java @@ -7,6 +7,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.LinkedHashMap; import java.util.List; @@ -64,11 +65,9 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { */ LinkedHashMap mapAux = new LinkedHashMap(); for (ExportacaoBPEBase e1 : registros) { - if (mapAux.containsKey(e1.getChbpe())) { - if (ExportacaoBPEVo.isBpeCancelado(e1.getCodstatus())) { + if (ExportacaoBPEVo.isBpeCancelado(e1.getCodstatus())) mapAux.put(e1.getChbpe(), e1); - } } else { if (!ExportacaoBPEVo.isBpeCancelado(e1.getCodstatus())) mapAux.put(e1.getChbpe(), e1); @@ -113,7 +112,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { ps.setLong(3, Long.valueOf(empresaId)); ps.setString(4, cveestado); - ps.setFetchSize(9999); + ps.setFetchSize(99999); ResultSet rs = ps.executeQuery(); while (rs.next()) { @@ -263,7 +262,6 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { 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(" bpe.cmunini, "); sql.append(" bpe.cmunfim, "); sql.append(" bpe.ufini, "); @@ -300,10 +298,10 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { 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 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 bpe bpe on c.boleto_id = bpe.boleto_id "); + 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(" 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 "); @@ -441,8 +439,31 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { ufs = ufs + ",'" + estado.getCveestado() + "'"; } - List list = montaRelatorioRDI(connection, inicio, fim, empresaId, ufs); - List rdis = calcularRelatorioRDI(list, isReceitaTerceiros); + List rdis = new ArrayList(); + + StringBuilder sqlVendidos = new StringBuilder(); + sqlVendidos.append(sqlRelatorioRDIVendidos(ufs)); + + List listVendidos = montaRelatorioRDI(connection, inicio, fim, empresaId, ufs, sqlVendidos.toString()); + List rdiVendidos = calcularRelatorioRDI(listVendidos, isReceitaTerceiros); + rdis.addAll(rdiVendidos); + + StringBuilder sql = new StringBuilder(); + sql.append(sqlRelatorioRDICanceladosSubstituidos(ufs)); + sql.append(" UNION ALL "); + sql.append(sqlRelatorioRDICancelados(ufs)); + + List listCancelados = montaRelatorioRDI(connection, inicio, fim, empresaId, ufs, sql.toString()); + List rdiCancelados = calcularRelatorioRDI(listCancelados, isReceitaTerceiros); + rdis.addAll(rdiCancelados); + + Collections.sort(rdis, new Comparator() { + @Override + public int compare(FiscalRdi m1, FiscalRdi m2) { + return m1.getEstado().compareTo(m2.getEstado()); + } + }); + return agrupaRdi(rdis); } @@ -546,27 +567,28 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { */ LinkedHashMap mapAux = new LinkedHashMap(); for (DetalhadoFiscal det : list) { - - if (mapAux.containsKey(det.getChbpe())) { - if (ExportacaoBPEVo.isBpeCancelado(det.getCodstatus())) { - mapAux.put(det.getChbpe(), det); + if ("REC".equals(det.getTipoReceita())) { + if (mapAux.containsKey(det.getChbpe())) { + if (ExportacaoBPEVo.isBpeCancelado(det.getCodstatus())) { + // det.setTipoReceita("DEV"); + // mapAux.put(det.getChbpe(), det); + mapAux.remove(det.getChbpe()); + } + } else { + if (!ExportacaoBPEVo.isBpeCancelado(det.getCodstatus())) { + det.setTipoReceita("REC"); + mapAux.put(det.getChbpe(), det); + } } } else { - if (!ExportacaoBPEVo.isBpeCancelado(det.getCodstatus())) - mapAux.put(det.getChbpe(), det); + mapAux.put(det.getChbpe(), det); } } 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"; @@ -608,6 +630,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { 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); if (aliquota != null && aliquota.intValue() > 0) aliquotaAnt = aliquota; @@ -641,15 +664,13 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { return rdis; } - private List montaRelatorioRDI(Connection connection, Date inicio, Date fim, Integer empresaId, String ufs) { + private List montaRelatorioRDI(Connection connection, Date inicio, Date fim, Integer empresaId, String ufs, String sql) { log.info("Inicio da consulta busca RelatorioRDI BPe: " + new Date()); List list = new ArrayList(); try { - String sql = sqlRelatorioRDI(ufs); - log.info("Consulta RDI Bpe: " + sql); NamedParameterStatement ps = new NamedParameterStatement(connection, sql); @@ -657,10 +678,6 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { 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(); @@ -759,17 +776,109 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { return list; } - private String sqlRelatorioRDI(String ufs) { + private String sqlRelatorioRDIVendidos(String ufs) { StringBuilder sql = new StringBuilder(); - sql.append("select /*+INDEX(BPE IDX__BPE_BOLETO)*/ "); - sql.append(" c.boleto_id as cajaId, "); - 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("select /*+INDEX(BPE IDX__BPE_BOLETO)*/ "); + sql.append(" c.boleto_id as cajaId, "); + sql.append(" 'REC' as tipoReceita, "); + sql.append(" to_number(c.num_bpe) as num_bpe, "); + sql.append(" to_number(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(" 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(c.preciopagado, 0) as tarifa, "); + sql.append(" coalesce(c.importetaxaembarque, 0) as taxaEmbarque, "); + sql.append(" coalesce(c.importepedagio, 0) as pedagio, "); + 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(" 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 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(" 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 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 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(" ) "); + sql.append("order by numfoliosistema, num_bpe, datamov "); + return sql.toString(); + + } + + private String sqlRelatorioRDICanceladosSubstituidos(String ufs) { + + StringBuilder sql = new StringBuilder(); + sql.append("select /*+INDEX(BPE IDX__BPE_BOLETO)*/ "); + sql.append(" b.boleto_id as cajaId, "); + sql.append(" 'DEV' as tipoReceita, "); + sql.append(" to_number(bori.num_bpe) as num_bpe, "); + sql.append(" to_number(bori.numfoliosistema) as numfoliosistema, "); + sql.append(" bori.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(" 0 as isenta, "); @@ -785,12 +894,111 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { sql.append(" ei.indtxembarqueestadual as indtxembarqueestadual, "); sql.append(" ei.indpedagioestdual as indpedagioestdual, "); sql.append(" ei.tributacaoImportacao as tributacaoImportacao, "); - sql.append(" coalesce(c.preciopagado, 0) as tarifa, "); - sql.append(" coalesce(c.importetaxaembarque, 0) as taxaEmbarque, "); - sql.append(" coalesce(c.importepedagio, 0) as pedagio, "); - 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(" 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(" bpeori.chbpe, "); + sql.append(" bpe.codstat as codstatus, "); + sql.append(" bpeori.cmunini, "); + sql.append(" bpeori.cmunfim, "); + sql.append(" bpeori.ufini, "); + sql.append(" bpeori.uffim, "); + sql.append(" bpeori.nbp, "); + sql.append(" bpeori.dhemb, "); + sql.append(" bpeori.cst00, "); + sql.append(" bpeori.cst20, "); + sql.append(" bpeori.cst45, "); + sql.append(" bpeori.cst90, "); + sql.append(" bpeori.cstoutrauf, "); + sql.append(" bpeori.cstsn, "); + sql.append(" bpeori.vbc00, "); + sql.append(" bpeori.picms00, "); + sql.append(" bpeori.vicms00, "); + sql.append(" bpeori.vbc20, "); + sql.append(" bpeori.picms20, "); + sql.append(" bpeori.vicms20, "); + sql.append(" bpeori.vbp, "); + sql.append(" bpeori.vdesconto, "); + sql.append(" bpeori.vpgto, "); + sql.append(" bpeori.tpcomp01, "); + sql.append(" bpeori.tpcomp02, "); + sql.append(" bpeori.tpcomp03, "); + sql.append(" bpeori.tpcomp04, "); + sql.append(" bpeori.tpcomp05, "); + sql.append(" bpeori.tpcomp06, "); + sql.append(" bpeori.tpcomp99, "); + sql.append(" bpeori.vcomp01, "); + sql.append(" bpeori.vcomp02, "); + sql.append(" bpeori.vcomp03, "); + sql.append(" bpeori.vcomp04, "); + sql.append(" bpeori.vcomp05, "); + sql.append(" bpeori.vcomp06, "); + sql.append(" bpeori.vcomp99, "); + sql.append(" bpeori.pRedBC "); + 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 TO_CHAR(bori.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(" inner join estado est_bpe on bpe.uf = est_bpe.codibge "); + sql.append(" left join bpe bpeori on bpeori.chbpe = bpe.chbpe_substituicao and bpeori.activo = 1 "); + 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(" join inscricao_estadual ie on e.empresa_id = ie.empresa_id and ie.estado_id = est_bpe.estado_id and ie.activo = 1 "); + sql.append(" join empresa_imposto ei on ei.empresa_id = e.empresa_id and ei.estado_id = est_bpe.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 and bpeant.activo = 1 "); + 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 not in ('110115','110116') or bpe.tipoevento is null) "); + sql.append(" and (bpeori.codstat in ('-1','100','101','102','135','150') and bpeori.tipoevento not in ('110115','110116') or bpeori.tipoevento is null) "); + sql.append(" and bori.feccreacion >= to_date(:DATE_INICIO,'DD/MM/YYYY HH24:MI:SS') "); + sql.append(" and bori.feccreacion <= to_date(:DATE_FIM,'DD/MM/YYYY HH24:MI:SS') "); + sql.append(" and est_bpe.cveestado in ( ").append(ufs).append(" ) "); + sql.append(" and e.empresa_id = :EMPRESA_ID "); + return sql.toString(); + + } + + private String sqlRelatorioRDICancelados(String ufs) { + + StringBuilder sql = new StringBuilder(); + sql.append("select /*+INDEX(BPE IDX__BPE_BOLETO)*/ "); + sql.append(" b.boleto_id as cajaId, "); + sql.append(" 'DEV' as tipoReceita, "); + sql.append(" to_number(b.num_bpe) as num_bpe, "); + sql.append(" to_number(b.numfoliosistema) as numfoliosistema, "); + 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(" 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(" bpe.chbpe, "); sql.append(" bpe.codstat as codstatus, "); sql.append(" bpe.cmunini, "); @@ -829,23 +1037,32 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { 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 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 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 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(" ) "); - sql.append("order by estadoId, to_number(c.numfoliosistema), to_number(num_bpe), fechorVenta "); - + 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 TO_CHAR(bori.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(" 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 and bpeori.activo = 1 "); + sql.append(" inner join punto_venta ptv on ptv.puntoventa_id = bori.puntoventa_id "); + sql.append("join inscricao_estadual ie on e.empresa_id = ie.empresa_id and ie.estado_id = est_bpe.estado_id and ie.activo = 1 "); + sql.append("join empresa_imposto ei on ei.empresa_id = e.empresa_id and ei.estado_id = est_bpe.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 and bpeant.activo = 1 "); + 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 not in ('110115','110116') or bpe.tipoevento is null) "); + sql.append(" and (bpeori.codstat in ('-1','100','101','102','135','150') and bpeori.tipoevento not in ('110115','110116') or bpeori.tipoevento is null) "); + sql.append(" and bori.feccreacion >= to_date(:DATE_INICIO,'DD/MM/YYYY HH24:MI:SS') "); + sql.append(" and bori.feccreacion <= to_date(:DATE_FIM,'DD/MM/YYYY HH24:MI:SS') "); + sql.append(" and est_bpe.cveestado in ( ").append(ufs).append(" ) "); + sql.append(" and e.empresa_id = :EMPRESA_ID "); + sql.append("order by numfoliosistema, num_bpe, datamov "); return sql.toString(); }