|
|
|
@ -7,6 +7,7 @@ import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.lang.BooleanUtils;
|
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
|
import org.apache.log4j.Logger;
|
|
|
|
|
|
|
|
|
@ -49,9 +50,16 @@ public class RelatorioGratuidadeARTESP extends Relatorio {
|
|
|
|
|
String empresa = parametros.get("empresa") != null ? parametros.get("empresa").toString() : "";
|
|
|
|
|
String codOrgaoConcedente = parametros.get("CodOrgaoConcedente").toString();
|
|
|
|
|
String estados = (String) parametros.get("ESTADOS_ID");
|
|
|
|
|
|
|
|
|
|
String sql = getSql(fecInicioVenda, fecFinalVenda, linhaIds, tipGratuIds, empresa, codOrgaoConcedente, estados);
|
|
|
|
|
|
|
|
|
|
Boolean indTabelaPreco = (Boolean) parametros.get("indTabelaPreco");
|
|
|
|
|
|
|
|
|
|
String sql = null;
|
|
|
|
|
|
|
|
|
|
if(BooleanUtils.toBoolean(indTabelaPreco)){
|
|
|
|
|
sql = getSqlTabelaPreco(fecInicioVenda, fecFinalVenda, linhaIds, tipGratuIds, empresa, codOrgaoConcedente, estados);
|
|
|
|
|
}else{
|
|
|
|
|
sql = getSqlNoTabelaPreco(fecInicioVenda, fecFinalVenda, linhaIds, tipGratuIds, empresa, codOrgaoConcedente, estados);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
|
|
|
|
|
|
|
|
|
|
if (fecInicioVenda != null) {
|
|
|
|
@ -170,7 +178,7 @@ public class RelatorioGratuidadeARTESP extends Relatorio {
|
|
|
|
|
protected void processaParametros() throws Exception {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private String getSql(String fecInicioVenda, String fecFinalVenda, String linha, String tipoGratu, String empresa, String codOrgaoConcedente, String estados) {
|
|
|
|
|
private String getSqlTabelaPreco(String fecInicioVenda, String fecFinalVenda, String linha, String tipoGratu, String empresa, String codOrgaoConcedente, String estados) {
|
|
|
|
|
|
|
|
|
|
StringBuilder sql = new StringBuilder();
|
|
|
|
|
|
|
|
|
@ -204,7 +212,7 @@ public class RelatorioGratuidadeARTESP extends Relatorio {
|
|
|
|
|
sql.append("COALESCE(c.numtelefono, CAJA.DESCTELEFONO) AS tel,");
|
|
|
|
|
sql.append("c.DESCCORREO AS email, ");
|
|
|
|
|
sql.append("CASE ");
|
|
|
|
|
sql.append("WHEN B.MOTIVOCANCELACION_ID IN (31, 32, 90, 23) ");
|
|
|
|
|
sql.append("WHEN B.MOTIVOCANCELACION_ID IN (31, 32, 90, 23,10) ");
|
|
|
|
|
sql.append("THEN 1 ELSE 0 ");
|
|
|
|
|
sql.append("END AS DESISTENCIA, ");
|
|
|
|
|
sql.append(" (COALESCE(T.PRECIO, 0) + COALESCE(T.IMPORTEPEDAGIO,0)) ");
|
|
|
|
@ -224,12 +232,12 @@ public class RelatorioGratuidadeARTESP extends Relatorio {
|
|
|
|
|
sql.append("LEFT JOIN CLIENTE_DIRECCION cd ON cd.cliente_id = c.cliente_id AND cd.ACTIVO = 1 ");
|
|
|
|
|
sql.append("LEFT JOIN ORGAO_CONCEDENTE OC ON r.ORGAOCONCEDENTE_ID = OC.ORGAOCONCEDENTE_ID ");
|
|
|
|
|
sql.append("JOIN ORGAO_EMP_PARAM O ON e.empresa_id = O.EMPRESA_ID AND OC.ORGAOCONCEDENTE_ID = O.ORGAOCONCEDENTE_ID AND O.ACTIVO = 1 ");
|
|
|
|
|
sql.append("JOIN TARIFA T ON r.RUTA_ID = T.RUTA_ID AND b.ORIGEN_ID = T.ORIGEN_ID AND b.DESTINO_ID = T.DESTINO_ID AND b.CLASESERVICIO_ID = T.CLASESERVICIO_ID AND m.MARCA_ID = T.MARCA_ID AND oc.ORGAOCONCEDENTE_ID = T.ORGAOCONCEDENTE_ID AND T.TRAMO_ID=tr.TRAMO_ID ");
|
|
|
|
|
sql.append("JOIN TARIFA T ON r.RUTA_ID = T.RUTA_ID AND b.ORIGEN_ID = T.ORIGEN_ID AND b.DESTINO_ID = T.DESTINO_ID AND b.CLASESERVICIO_ID = T.CLASESERVICIO_ID AND m.MARCA_ID = T.MARCA_ID AND oc.ORGAOCONCEDENTE_ID = T.ORGAOCONCEDENTE_ID AND T.TRAMO_ID=tr.TRAMO_ID AND T.ACTIVO=1 ");
|
|
|
|
|
sql.append("JOIN VIGENCIA_TARIFA vt ON vt.VIGENCIATARIFA_ID = t.VIGENCIATARIFA_ID AND b.FECHORVIAJE BETWEEN vt.FECINICIOVIGENCIA AND vt.FECFINVIGENCIA ");
|
|
|
|
|
sql.append(" left JOIN BPE bpe ON bpe.BOLETO_ID = b.BOLETO_ID and bpe.activo = 1 ");
|
|
|
|
|
sql.append(" left JOIN estado e ON e.CODIBGE = bpe.UF ");
|
|
|
|
|
sql.append("WHERE b.fechorviaje BETWEEN to_date(:fecInicioVenda,'dd/mm/yyyy hh24:mi') AND to_date(:fecFinalVenda,'dd/mm/yyyy hh24:mi') ");
|
|
|
|
|
sql.append("AND (b.MOTIVOCANCELACION_ID not in (4,10) or b.MOTIVOCANCELACION_ID is null) ");
|
|
|
|
|
sql.append("AND (b.MOTIVOCANCELACION_ID not in (4) or b.MOTIVOCANCELACION_ID is null) ");
|
|
|
|
|
|
|
|
|
|
if (tipoGratu != null) {
|
|
|
|
|
sql.append(" AND b.CATEGORIA_ID in (").append(tipoGratu).append(") ");
|
|
|
|
@ -261,4 +269,118 @@ public class RelatorioGratuidadeARTESP extends Relatorio {
|
|
|
|
|
|
|
|
|
|
return sql.toString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String getSqlNoTabelaPreco(String fecInicioVenda, String fecFinalVenda, String linha, String tipoGratu, String empresa, String codOrgaoConcedente, String estados) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StringBuilder sql = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
sql.append("SELECT OC.DESCORGAO AS ORGAO,");
|
|
|
|
|
sql.append(" O.CODEMPRESAPORORGAO AS empresa,");
|
|
|
|
|
sql.append(" B.FECHORVIAJE AS fechorviaje,");
|
|
|
|
|
sql.append(" ori.cveparada AS codorigem,");
|
|
|
|
|
sql.append(" ori.descparada AS descorigem,");
|
|
|
|
|
sql.append(" des.cveparada AS coddestino,");
|
|
|
|
|
sql.append(" des.descparada AS descdestino,");
|
|
|
|
|
sql.append(" B.NUMASIENTO AS POLTRONA,");
|
|
|
|
|
sql.append(" b.NUMFOLIOSISTEMA AS NUMBILHETE,");
|
|
|
|
|
sql.append(" b.NOMBPASAJERO AS NOMBPASAJERO,");
|
|
|
|
|
sql.append(" CASE");
|
|
|
|
|
sql.append(" WHEN b.DESCNUMDOC IS NOT NULL THEN b.DESCNUMDOC");
|
|
|
|
|
sql.append(" ELSE c.NUMIDENTIFICAUNO");
|
|
|
|
|
sql.append(" END AS RG,");
|
|
|
|
|
sql.append(" c.TIPOIDENTIFICAUNO_ID AS TIPODOC1,");
|
|
|
|
|
sql.append(" b.descorgaodoc uforgaodoc,");
|
|
|
|
|
sql.append(" c.TIPOIDENTIFICADOS_ID AS TIPODOC2,");
|
|
|
|
|
sql.append(" CASE");
|
|
|
|
|
sql.append(" WHEN b.DESCNUMDOC2 IS NOT NULL THEN b.DESCNUMDOC2");
|
|
|
|
|
sql.append(" ELSE c.NUMIDENTIFICADOS");
|
|
|
|
|
sql.append(" END AS CPF,");
|
|
|
|
|
sql.append(" r.PREFIXO AS LINHA,");
|
|
|
|
|
sql.append(" LISTAGG(cd.DESCCALLE || ', ' || cd.NUMEXTERIOR || '-' || cd.DESCIUDAD || '/' || cd.DESESTADO, ';;;;') WITHIN GROUP(");
|
|
|
|
|
sql.append(" ORDER BY cd.CLIENTEDIRECCION_ID ASC) AS ENDERECO, ");
|
|
|
|
|
sql.append(" COALESCE(c.numtelefono, CAJA.DESCTELEFONO) AS tel,");
|
|
|
|
|
sql.append(" c.DESCCORREO AS email,");
|
|
|
|
|
sql.append(" CASE");
|
|
|
|
|
sql.append(" WHEN B.MOTIVOCANCELACION_ID IN (31,32, 90, 23) THEN 1 ELSE 0 END AS DESISTENCIA, ");
|
|
|
|
|
sql.append(" (COALESCE(NULL, b.preciobase) + COALESCE(NULL, 0)) -(COALESCE(b.PRECIOPAGADO, 0) + COALESCE(b.IMPORTEPEDAGIO, 0)) AS vlrGratuidade,");
|
|
|
|
|
sql.append(" bpe.chbpe AS chaveBPE ");
|
|
|
|
|
sql.append("FROM BOLETO b ");
|
|
|
|
|
sql.append("LEFT JOIN CAJA ON B.BOLETO_ID = CAJA.TRANSACAO_ID ") ;
|
|
|
|
|
sql.append("JOIN categoria ca ON b.categoria_id = ca.categoria_id ");
|
|
|
|
|
sql.append("JOIN empresa e ON e.empresa_id = b.EMPRESACORRIDA_ID ");
|
|
|
|
|
sql.append("JOIN marca m ON m.EMPRESA_ID = e.EMPRESA_ID ");
|
|
|
|
|
sql.append("JOIN parada ori ON ori.parada_id = b.origen_id ");
|
|
|
|
|
sql.append("JOIN parada des ON des.parada_id = b.destino_id ");
|
|
|
|
|
sql.append("JOIN ruta r ON r.ruta_id = b.ruta_id ");
|
|
|
|
|
sql.append("LEFT JOIN cliente c ON c.cliente_id = b.cliente_id ");
|
|
|
|
|
sql.append("LEFT JOIN CLIENTE_DIRECCION cd ON cd.cliente_id = c.cliente_id AND cd.ACTIVO = 1 ");
|
|
|
|
|
sql.append("LEFT JOIN ORGAO_CONCEDENTE OC ON r.ORGAOCONCEDENTE_ID = OC.ORGAOCONCEDENTE_ID ");
|
|
|
|
|
sql.append("JOIN ORGAO_EMP_PARAM O ON e.empresa_id = O.EMPRESA_ID AND OC.ORGAOCONCEDENTE_ID = O.ORGAOCONCEDENTE_ID AND O.ACTIVO = 1 ");
|
|
|
|
|
sql.append("LEFT JOIN BPE bpe ON bpe.BOLETO_ID = b.BOLETO_ID ");
|
|
|
|
|
sql.append("LEFT JOIN estado e ON e.CODIBGE = bpe.UF AND e.ACTIVO =1 ");
|
|
|
|
|
sql.append("WHERE b.fechorviaje BETWEEN to_date(:fecInicioVenda,'dd/mm/yyyy hh24:mi') AND to_date(:fecFinalVenda,'dd/mm/yyyy hh24:mi') ");
|
|
|
|
|
sql.append("AND (b.MOTIVOCANCELACION_ID not in (4) or b.MOTIVOCANCELACION_ID is null) ");
|
|
|
|
|
|
|
|
|
|
if (tipoGratu != null) {
|
|
|
|
|
sql.append(" AND b.CATEGORIA_ID in (").append(tipoGratu).append(") ");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (linha != null && !linha.equals("Todas")) {
|
|
|
|
|
sql.append(" AND r.ruta_id in (").append(linha).append(") ");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!empresa.isEmpty()) {
|
|
|
|
|
sql.append("AND b.empresacorrida_id = :empresa_id ");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(codOrgaoConcedente != null && Integer.valueOf(codOrgaoConcedente) > -1) {
|
|
|
|
|
sql.append(" AND OC.ORGAOCONCEDENTE_ID = :codOrgaoConcedente ");
|
|
|
|
|
}
|
|
|
|
|
if (estados != null) {
|
|
|
|
|
sql.append(" AND e.ESTADO_ID IN ( " + estados + " )");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sql.append("GROUP BY OC.DESCORGAO,");
|
|
|
|
|
sql.append(" O.CODEMPRESAPORORGAO,");
|
|
|
|
|
sql.append(" B.FECHORVIAJE,");
|
|
|
|
|
sql.append(" ori.cveparada,");
|
|
|
|
|
sql.append(" ori.descparada,");
|
|
|
|
|
sql.append(" des.cveparada,");
|
|
|
|
|
sql.append(" des.descparada,");
|
|
|
|
|
sql.append(" B.NUMASIENTO,");
|
|
|
|
|
sql.append(" b.NUMFOLIOSISTEMA,");
|
|
|
|
|
sql.append(" b.NOMBPASAJERO,");
|
|
|
|
|
sql.append(" CASE");
|
|
|
|
|
sql.append(" WHEN b.DESCNUMDOC IS NOT NULL THEN b.DESCNUMDOC");
|
|
|
|
|
sql.append(" ELSE c.NUMIDENTIFICAUNO");
|
|
|
|
|
sql.append(" END,");
|
|
|
|
|
sql.append(" c.TIPOIDENTIFICAUNO_ID,");
|
|
|
|
|
sql.append(" b.descorgaodoc,");
|
|
|
|
|
sql.append(" c.TIPOIDENTIFICADOS_ID,");
|
|
|
|
|
sql.append(" CASE");
|
|
|
|
|
sql.append(" WHEN b.DESCNUMDOC2 IS NOT NULL THEN b.DESCNUMDOC2");
|
|
|
|
|
sql.append(" ELSE c.NUMIDENTIFICADOS");
|
|
|
|
|
sql.append(" END,");
|
|
|
|
|
sql.append(" r.PREFIXO,");
|
|
|
|
|
sql.append(" c.DESCCORREO,");
|
|
|
|
|
sql.append(" CASE");
|
|
|
|
|
sql.append(" WHEN B.MOTIVOCANCELACION_ID IN (31,");
|
|
|
|
|
sql.append(" 32,");
|
|
|
|
|
sql.append(" 90,");
|
|
|
|
|
sql.append(" 23,10) THEN 1");
|
|
|
|
|
sql.append(" ELSE 0");
|
|
|
|
|
sql.append(" END,");
|
|
|
|
|
sql.append(" COALESCE(c.numtelefono, CAJA.DESCTELEFONO),");
|
|
|
|
|
sql.append(" (COALESCE(NULL, b.preciobase) + COALESCE(NULL, 0)) -(COALESCE(b.PRECIOPAGADO, 0) + COALESCE(b.IMPORTEPEDAGIO, 0)), ");
|
|
|
|
|
sql.append(" bpe.chbpe ");
|
|
|
|
|
sql.append("ORDER BY OC.DESCORGAO, ");
|
|
|
|
|
sql.append(" O.CODEMPRESAPORORGAO,");
|
|
|
|
|
sql.append(" b.FECHORVIAJE,");
|
|
|
|
|
sql.append(" descorigem,");
|
|
|
|
|
sql.append(" descdestino ");
|
|
|
|
|
|
|
|
|
|
return sql.toString();
|
|
|
|
|
}
|
|
|
|
|
}
|