fixes bug#14453 bug#14829

dev: julio
qua: 

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@95768 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2019-07-15 23:01:39 +00:00
parent c1657753f6
commit 8fe4a063b6
1 changed files with 69 additions and 103 deletions

View File

@ -17,6 +17,7 @@ import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.DevolucaoBilhetes;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
import com.rjconsultores.ventaboletos.utilerias.MoneyHelper;
import com.rjconsultores.ventaboletos.utilerias.UtiliteriasFiscal;
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
@ -71,7 +72,7 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
else
sql = getSql(empresaId, puntoVentas, estados, dataVendaInicial, dataVendaFinal, dataDevolucaoInicial, dataDevolucaoFinal, isApenasBilhetesImpressos);
log.debug(sql);
log.info("Devolucao Bilhetes: " + sql);
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
ResultSet rset = null;
@ -137,7 +138,8 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
db.setPorcEstadual(rset.getBigDecimal("PORC_ESTADUAL"));
if (isBpe) {
db.setChbpe(rset.getString("CHBPE"));
db.setChbpeSubstituicao(rset.getString("CHBPE_SUBSTITUICAO"));
db.setCmunini(rset.getString("CMUNINI"));
db.setCmunfim(rset.getString("CMUNFIM"));
db.setUfini(rset.getString("UFINI"));
@ -175,14 +177,10 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
db.setVcomp99(rset.getString("VCOMP99"));
db.setpRedBC(rset.getString("PREDBC"));
BigDecimal valorContabil = BigDecimal.ZERO;
BigDecimal baseCalculoICMS = BigDecimal.ZERO;
BigDecimal valorIsenta = BigDecimal.ZERO;
String estadoOrigem = db.getUfini();
String estadoDestino = db.getUffim();
boolean isEstadual = !estadoOrigem.equals(estadoDestino);
boolean isInterEstadual = !estadoOrigem.equals(estadoDestino);
String vBC = null;
String pICMS = null;
@ -201,20 +199,20 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
}
String vPgto = db.getVpgto();
valorContabil = new BigDecimal(vPgto == null ? "0.0" : vPgto);
valorIsenta = valorIsenta.add(isEstadual && !db.getIndPedadioEstdual() ? new BigDecimal(db.getVcomp02() == null ? "0.0" : db.getVcomp02()) : BigDecimal.ZERO);
valorIsenta = valorIsenta.add(!isEstadual && !db.getIndPedagioMunicipal() ? new BigDecimal(db.getVcomp02() == null ? "0.0" : db.getVcomp02()) : BigDecimal.ZERO);
valorIsenta = valorIsenta.add(isEstadual && !db.getIndTxEmbarqueEstadual() ? new BigDecimal(db.getVcomp03() == null ? "0.0" : db.getVcomp03()) : BigDecimal.ZERO);
valorIsenta = valorIsenta.add(!isEstadual && !db.getIndTxEmbarqueMunicipal() ? new BigDecimal(db.getVcomp03() == null ? "0.0" : db.getVcomp03()) : BigDecimal.ZERO);
valorIsenta = valorIsenta.add(isEstadual && !db.getIndSeguroEstadual() ? new BigDecimal(db.getVcomp04() == null ? "0.0" : db.getVcomp04()) : BigDecimal.ZERO);
valorIsenta = valorIsenta.add(!isEstadual && !db.getIndSeguroMunicipal() ? new BigDecimal(db.getVcomp04() == null ? "0.0" : db.getVcomp04()) : BigDecimal.ZERO);
BigDecimal valorContabil = new BigDecimal(vPgto == null ? "0.0" : vPgto);
db.setValorContabil(valorContabil);
baseCalculoICMS = new BigDecimal(vBC == null ? "0.0" : vBC);
BigDecimal valorIsenta = BigDecimal.ZERO;
valorIsenta = valorIsenta.add(isInterEstadual && !db.getIndPedadioEstdual() ? new BigDecimal(db.getVcomp02() == null ? "0.0" : db.getVcomp02()) : BigDecimal.ZERO);
valorIsenta = valorIsenta.add(!isInterEstadual && !db.getIndPedagioMunicipal() ? new BigDecimal(db.getVcomp02() == null ? "0.0" : db.getVcomp02()) : BigDecimal.ZERO);
valorIsenta = valorIsenta.add(isInterEstadual && !db.getIndTxEmbarqueEstadual() ? new BigDecimal(db.getVcomp03() == null ? "0.0" : db.getVcomp03()) : BigDecimal.ZERO);
valorIsenta = valorIsenta.add(!isInterEstadual && !db.getIndTxEmbarqueMunicipal() ? new BigDecimal(db.getVcomp03() == null ? "0.0" : db.getVcomp03()) : BigDecimal.ZERO);
valorIsenta = valorIsenta.add(isInterEstadual && !db.getIndSeguroEstadual() ? new BigDecimal(db.getVcomp04() == null ? "0.0" : db.getVcomp04()) : BigDecimal.ZERO);
valorIsenta = valorIsenta.add(!isInterEstadual && !db.getIndSeguroMunicipal() ? new BigDecimal(db.getVcomp04() == null ? "0.0" : db.getVcomp04()) : BigDecimal.ZERO);
BigDecimal baseCalculoICMS = new BigDecimal(vBC == null ? "0.0" : vBC);
db.setBaseCalculoIcms(baseCalculoICMS);
BigDecimal icms = new BigDecimal(pICMS == null ? "0.0" : pICMS);
@ -224,8 +222,8 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
BigDecimal outras = new BigDecimal(pRedBC == null ? "0.0" : pRedBC);
if (pRedBC != null) {
outras = valorContabil.subtract(baseCalculoICMS);
outras = outras.subtract(valorIsenta);
outras = MoneyHelper.subtrair(valorContabil, baseCalculoICMS);
outras = MoneyHelper.subtrair(outras, valorIsenta);
}
db.setValorOutras(outras);
@ -233,7 +231,7 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
db.setEstornoEstadual(BigDecimal.ZERO);
db.setEstornoMunicipal(BigDecimal.ZERO);
if (isEstadual) {
if (isInterEstadual) {
db.setEstornoEstadual(valorContabil);
} else {
db.setEstornoMunicipal(valorContabil);
@ -353,15 +351,15 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
sql.append(" EST_BPE.NOMBESTADO AS ESTADO, ");
sql.append(" EST_BPE.CVEESTADO AS UF, ");
sql.append(" EST_BPE.ESTADO_ID AS ESTADO_ID, ");
sql.append(" COALESCE(EOS.CVEESTADO, EST.CVEESTADO) AS UF_CORRIDA, ");
sql.append(" COALESCE(EI.ICMS, EST.ICMS) AS ICMSINTERESTADUAL, ");
sql.append(" '' AS UF_CORRIDA, ");
sql.append(" COALESCE(EI.ICMS, EST_BPE.ICMS) AS ICMSINTERESTADUAL, ");
sql.append(" NVL(EI.ICMSIM,0) AS ICMSINTERMUNICIPAL, ");
sql.append(" EI.TRIBUTACAOIMPORTACAO AS TRIBUTACAOIMPORTACAO, ");
sql.append(" NVL(EI.PORCREDBASEICMS,0) AS PORCREDBASEICMS, ");
sql.append(" (CASE WHEN COALESCE(COS.ESTADO_ID,CO.ESTADO_ID) <> COALESCE(CDS.ESTADO_ID,CD.ESTADO_ID) THEN 1 ELSE 0 END) IS_ESTADUAL, ");
sql.append(" 0 AS IS_ESTADUAL, ");
sql.append(" NVL(EI.PORCREDMUNICIPAL,0) AS PORC_MUNICIPAL, ");
sql.append(" NVL(EI.PORCREDESTADUAL,0) AS PORC_ESTADUAL, ");
sql.append(" (CASE WHEN NVL(COALESCE(POS.REGIONMETROPOLITANA_ID,ORI.REGIONMETROPOLITANA_ID) ,-1) = NVL(COALESCE(PDS.REGIONMETROPOLITANA_ID,DES.REGIONMETROPOLITANA_ID),-2) THEN 1 ELSE 0 END) AS ISENTA, ");
sql.append(" 0 AS ISENTA, ");
sql.append(" NVL(B.PRECIOPAGADO,0) AS PRECIOPAGADO, NVL(B.IMPORTEOUTROS,0) AS IMPORTEOUTROS, NVL(B.IMPORTEPEDAGIO,0) AS IMPORTEPEDAGIO, NVL(B.IMPORTESEGURO,0) AS IMPORTESEGURO, NVL(B.IMPORTETAXAEMBARQUE,0) AS IMPORTETAXAEMBARQUE, ");
sql.append(" NVL(EI.INDTARIFAMUNICIPAL,0) AS INDTARIFAMUNICIPAL, NVL(EI.INDSEGUROMUNICIPAL,0) AS INDSEGUROMUNICIPAL, NVL(EI.INDTXEMBARQUEMUNICIPAL,0) AS INDTXEMBARQUEMUNICIPAL, NVL(EI.INDPEDAGIOMUNICIPAL,0) AS INDPEDAGIOMUNICIPAL, ");
sql.append(" NVL(EI.INDTARIFAESTADUAL,0) AS INDTARIFAESTADUAL, NVL(EI.INDSEGUROESTADUAL,0) AS INDSEGUROESTADUAL, NVL(EI.INDTXEMBARQUEESTADUAL,0) AS INDTXEMBARQUEESTADUAL, NVL(EI.INDPEDAGIOESTDUAL,0) AS INDPEDAGIOESTDUAL, ");
@ -373,7 +371,6 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = '3' THEN 'TRANSFERENCIA/REMARCACAO' ELSE '' END AS TIPO_SIT, ");
sql.append(" BPEORI.CHBPE AS CHBPE, ");
sql.append(" BPE.CHBPE AS CHBPE_SUBSTITUICAO, ");
sql.append(" BPEORI.CMUNINI, ");
sql.append(" BPEORI.CMUNFIM, ");
sql.append(" BPEORI.UFINI, ");
@ -410,7 +407,6 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
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 ");
@ -421,24 +417,10 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
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(" 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 ");
sql.append(" AND EI.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND EI.ACTIVO = 1 ");
sql.append(" 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) ");
@ -481,15 +463,15 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
sql.append(" EST_BPE.NOMBESTADO AS ESTADO, ");
sql.append(" EST_BPE.CVEESTADO AS UF, ");
sql.append(" EST_BPE.ESTADO_ID AS ESTADO_ID, ");
sql.append(" COALESCE(EOS.CVEESTADO, EST.CVEESTADO) AS UF_CORRIDA, ");
sql.append(" COALESCE(EI.ICMS, EST.ICMS) AS ICMSINTERESTADUAL, ");
sql.append(" '' AS UF_CORRIDA, ");
sql.append(" COALESCE(EI.ICMS, EST_BPE.ICMS) AS ICMSINTERESTADUAL, ");
sql.append(" NVL(EI.ICMSIM,0) AS ICMSINTERMUNICIPAL, ");
sql.append(" EI.TRIBUTACAOIMPORTACAO AS TRIBUTACAOIMPORTACAO, ");
sql.append(" NVL(EI.PORCREDBASEICMS,0) AS PORCREDBASEICMS, ");
sql.append(" (CASE WHEN COALESCE(COS.ESTADO_ID,CO.ESTADO_ID) <> COALESCE(CDS.ESTADO_ID,CD.ESTADO_ID) THEN 1 ELSE 0 END) IS_ESTADUAL, ");
sql.append(" 0 AS IS_ESTADUAL, ");
sql.append(" NVL(EI.PORCREDMUNICIPAL,0) AS PORC_MUNICIPAL, ");
sql.append(" NVL(EI.PORCREDESTADUAL,0) AS PORC_ESTADUAL, ");
sql.append(" (CASE WHEN NVL(COALESCE(POS.REGIONMETROPOLITANA_ID,ORI.REGIONMETROPOLITANA_ID) ,-1) = NVL(COALESCE(PDS.REGIONMETROPOLITANA_ID,DES.REGIONMETROPOLITANA_ID),-2) THEN 1 ELSE 0 END) AS ISENTA, ");
sql.append(" 0 AS ISENTA, ");
sql.append(" NVL(B.PRECIOPAGADO,0) AS PRECIOPAGADO, NVL(B.IMPORTEOUTROS,0) AS IMPORTEOUTROS, NVL(B.IMPORTEPEDAGIO,0) AS IMPORTEPEDAGIO, NVL(B.IMPORTESEGURO,0) AS IMPORTESEGURO, NVL(B.IMPORTETAXAEMBARQUE,0) AS IMPORTETAXAEMBARQUE, ");
sql.append(" NVL(EI.INDTARIFAMUNICIPAL,0) AS INDTARIFAMUNICIPAL, NVL(EI.INDSEGUROMUNICIPAL,0) AS INDSEGUROMUNICIPAL, NVL(EI.INDTXEMBARQUEMUNICIPAL,0) AS INDTXEMBARQUEMUNICIPAL, NVL(EI.INDPEDAGIOMUNICIPAL,0) AS INDPEDAGIOMUNICIPAL, ");
sql.append(" NVL(EI.INDTARIFAESTADUAL,0) AS INDTARIFAESTADUAL, NVL(EI.INDSEGUROESTADUAL,0) AS INDSEGUROESTADUAL, NVL(EI.INDTXEMBARQUEESTADUAL,0) AS INDTXEMBARQUEESTADUAL, NVL(EI.INDPEDAGIOESTDUAL,0) AS INDPEDAGIOESTDUAL, ");
@ -499,46 +481,44 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = '1' THEN 'REMARCACAO' ");
sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = '2' THEN 'TRANSFERENCIA' ");
sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = '3' THEN 'TRANSFERENCIA/REMARCACAO' ELSE '' END AS TIPO_SIT, ");
sql.append(" BPEORI.CHBPE AS CHBPE, ");
sql.append(" BPE.CHBPE AS CHBPE, ");
sql.append(" '' AS CHBPE_SUBSTITUICAO, ");
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(" 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 ");
@ -549,24 +529,10 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
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(" 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 ");
sql.append(" AND EI.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND EI.ACTIVO = 1 ");
sql.append(" 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) ");