fixes bug#14453 bug#14829

dev: julio
qua: 

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@95768 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2019-07-15 23:01:39 +00:00
parent 9340a26839
commit b4b144231f
1 changed files with 278 additions and 61 deletions

View File

@ -7,6 +7,7 @@ import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
@ -64,11 +65,9 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
*/ */
LinkedHashMap<String, ExportacaoBPEBase> mapAux = new LinkedHashMap<String, ExportacaoBPEBase>(); LinkedHashMap<String, ExportacaoBPEBase> mapAux = new LinkedHashMap<String, ExportacaoBPEBase>();
for (ExportacaoBPEBase e1 : registros) { for (ExportacaoBPEBase e1 : registros) {
if (mapAux.containsKey(e1.getChbpe())) { if (mapAux.containsKey(e1.getChbpe())) {
if (ExportacaoBPEVo.isBpeCancelado(e1.getCodstatus())) { if (ExportacaoBPEVo.isBpeCancelado(e1.getCodstatus()))
mapAux.put(e1.getChbpe(), e1); mapAux.put(e1.getChbpe(), e1);
}
} else { } else {
if (!ExportacaoBPEVo.isBpeCancelado(e1.getCodstatus())) if (!ExportacaoBPEVo.isBpeCancelado(e1.getCodstatus()))
mapAux.put(e1.getChbpe(), e1); mapAux.put(e1.getChbpe(), e1);
@ -113,7 +112,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
ps.setLong(3, Long.valueOf(empresaId)); ps.setLong(3, Long.valueOf(empresaId));
ps.setString(4, cveestado); ps.setString(4, cveestado);
ps.setFetchSize(9999); ps.setFetchSize(99999);
ResultSet rs = ps.executeQuery(); ResultSet rs = ps.executeQuery();
while (rs.next()) { 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.indseguroestadual,0) as indseguroestadual, ");
sql.append(" coalesce(ei.indtxembarqueestadual,0) as indtxembarqueestadual, "); sql.append(" coalesce(ei.indtxembarqueestadual,0) as indtxembarqueestadual, ");
sql.append(" coalesce(ei.indpedagioestdual,0) as indpedagioestdual, "); sql.append(" coalesce(ei.indpedagioestdual,0) as indpedagioestdual, ");
sql.append(" bpe.cmunini, "); sql.append(" bpe.cmunini, ");
sql.append(" bpe.cmunfim, "); sql.append(" bpe.cmunfim, ");
sql.append(" bpe.ufini, "); sql.append(" bpe.ufini, ");
@ -300,10 +298,10 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
sql.append(" bpe.vcomp06, "); sql.append(" bpe.vcomp06, ");
sql.append(" bpe.vcomp99, "); sql.append(" bpe.vcomp99, ");
sql.append(" bpe.pRedBC "); sql.append(" bpe.pRedBC ");
sql.append("from boleto c "); sql.append("from boleto c ");
sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id and bpe.activo = 1 "); 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_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 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 ");
@ -441,8 +439,31 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
ufs = ufs + ",'" + estado.getCveestado() + "'"; ufs = ufs + ",'" + estado.getCveestado() + "'";
} }
List<DetalhadoFiscal> list = montaRelatorioRDI(connection, inicio, fim, empresaId, ufs); List<FiscalRdi> rdis = new ArrayList<FiscalRdi>();
List<FiscalRdi> rdis = calcularRelatorioRDI(list, isReceitaTerceiros);
StringBuilder sqlVendidos = new StringBuilder();
sqlVendidos.append(sqlRelatorioRDIVendidos(ufs));
List<DetalhadoFiscal> listVendidos = montaRelatorioRDI(connection, inicio, fim, empresaId, ufs, sqlVendidos.toString());
List<FiscalRdi> rdiVendidos = calcularRelatorioRDI(listVendidos, isReceitaTerceiros);
rdis.addAll(rdiVendidos);
StringBuilder sql = new StringBuilder();
sql.append(sqlRelatorioRDICanceladosSubstituidos(ufs));
sql.append(" UNION ALL ");
sql.append(sqlRelatorioRDICancelados(ufs));
List<DetalhadoFiscal> listCancelados = montaRelatorioRDI(connection, inicio, fim, empresaId, ufs, sql.toString());
List<FiscalRdi> rdiCancelados = calcularRelatorioRDI(listCancelados, isReceitaTerceiros);
rdis.addAll(rdiCancelados);
Collections.sort(rdis, new Comparator<FiscalRdi>() {
@Override
public int compare(FiscalRdi m1, FiscalRdi m2) {
return m1.getEstado().compareTo(m2.getEstado());
}
});
return agrupaRdi(rdis); return agrupaRdi(rdis);
} }
@ -546,27 +567,28 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
*/ */
LinkedHashMap<String, DetalhadoFiscal> mapAux = new LinkedHashMap<String, DetalhadoFiscal>(); LinkedHashMap<String, DetalhadoFiscal> mapAux = new LinkedHashMap<String, DetalhadoFiscal>();
for (DetalhadoFiscal det : list) { for (DetalhadoFiscal det : list) {
if ("REC".equals(det.getTipoReceita())) {
if (mapAux.containsKey(det.getChbpe())) { if (mapAux.containsKey(det.getChbpe())) {
if (ExportacaoBPEVo.isBpeCancelado(det.getCodstatus())) { if (ExportacaoBPEVo.isBpeCancelado(det.getCodstatus())) {
mapAux.put(det.getChbpe(), det); // 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 { } else {
if (!ExportacaoBPEVo.isBpeCancelado(det.getCodstatus()))
mapAux.put(det.getChbpe(), det); mapAux.put(det.getChbpe(), det);
} }
} }
BigDecimal aliquotaAnt = null; BigDecimal aliquotaAnt = null;
for (Map.Entry<String, DetalhadoFiscal> pair : mapAux.entrySet()) { for (Map.Entry<String, DetalhadoFiscal> pair : mapAux.entrySet()) {
DetalhadoFiscal det = pair.getValue(); DetalhadoFiscal det = pair.getValue();
// if (ExportacaoBPEVo.isBpeCancelado(det.getCodstatus()))
// det.setTipoReceita("DEV");
// else
// det.setTipoReceita("REC");
boolean isEstadual = det.isInterEstadual(); boolean isEstadual = det.isInterEstadual();
String tipoViagem = isEstadual ? "IE" : "IM"; 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 seguro = isReceitaTerceiros ? new BigDecimal(det.getVcomp04() == null ? "0.0" : det.getVcomp04()) : BigDecimal.ZERO;
BigDecimal aliquota = new BigDecimal(pICMS == null ? "0.0" : pICMS); BigDecimal aliquota = new BigDecimal(pICMS == null ? "0.0" : pICMS);
aliquota = (aliquota.intValue() == 0 ? (aliquotaAnt == null ? aliquota : aliquotaAnt) : aliquota); aliquota = (aliquota.intValue() == 0 ? (aliquotaAnt == null ? aliquota : aliquotaAnt) : aliquota);
if (aliquota != null && aliquota.intValue() > 0) if (aliquota != null && aliquota.intValue() > 0)
aliquotaAnt = aliquota; aliquotaAnt = aliquota;
@ -641,15 +664,13 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
return rdis; return rdis;
} }
private List<DetalhadoFiscal> montaRelatorioRDI(Connection connection, Date inicio, Date fim, Integer empresaId, String ufs) { private List<DetalhadoFiscal> montaRelatorioRDI(Connection connection, Date inicio, Date fim, Integer empresaId, String ufs, String sql) {
log.info("Inicio da consulta busca RelatorioRDI BPe: " + new Date()); log.info("Inicio da consulta busca RelatorioRDI BPe: " + new Date());
List<DetalhadoFiscal> list = new ArrayList<DetalhadoFiscal>(); List<DetalhadoFiscal> list = new ArrayList<DetalhadoFiscal>();
try { try {
String sql = sqlRelatorioRDI(ufs);
log.info("Consulta RDI Bpe: " + sql); log.info("Consulta RDI Bpe: " + sql);
NamedParameterStatement ps = new NamedParameterStatement(connection, 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_INICIO", DateUtil.getStringDate(inicio, DATE_FORMAT_DMY) + " 00:00:00");
ps.setString("DATE_FIM", DateUtil.getStringDate(fim, DATE_FORMAT_DMY) + " 23:59:59"); 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); ps.getStatement().setFetchSize(99999);
ResultSet rs = ps.executeQuery(); ResultSet rs = ps.executeQuery();
@ -759,14 +776,14 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
return list; return list;
} }
private String sqlRelatorioRDI(String ufs) { private String sqlRelatorioRDIVendidos(String ufs) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("select /*+INDEX(BPE IDX__BPE_BOLETO)*/ "); sql.append("select /*+INDEX(BPE IDX__BPE_BOLETO)*/ ");
sql.append(" c.boleto_id as cajaId, "); 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(" 'REC' as tipoReceita, ");
sql.append(" coalesce(c.num_bpe, c.numfoliosistema) as num_bpe, "); sql.append(" to_number(c.num_bpe) as num_bpe, ");
sql.append(" c.numfoliosistema as numfoliosistema, "); sql.append(" to_number(c.numfoliosistema) as numfoliosistema, ");
sql.append(" c.numoperacion as numoperacion, "); sql.append(" c.numoperacion as numoperacion, ");
sql.append(" trunc(c.feccreacion) as fechorVenta, "); sql.append(" trunc(c.feccreacion) as fechorVenta, ");
sql.append(" e.estado_id as estadoId, "); sql.append(" e.estado_id as estadoId, ");
@ -830,7 +847,9 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
sql.append(" bpe.vcomp99, "); sql.append(" bpe.vcomp99, ");
sql.append(" bpe.pRedBC "); sql.append(" bpe.pRedBC ");
sql.append("from boleto c "); sql.append("from boleto c ");
sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id and bpe.activo = 1 "); 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 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 ");
@ -844,8 +863,206 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
sql.append(" and c.feccreacion <= to_date(:DATE_FIM,'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 ep.empresa_id = :EMPRESA_ID ");
sql.append(" and e.cveestado in ( ").append(ufs).append(" ) "); 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("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, ");
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(" 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, ");
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 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(); return sql.toString();
} }