fixes bug#17603

qua:wallyson
dev:julio


git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@99849 d1611594-4594-4d17-8e1d-87c2c4800839
master
walace 2020-01-22 17:49:40 +00:00
parent 40bef7e3bc
commit 9a806b6524
1 changed files with 130 additions and 23 deletions

View File

@ -100,38 +100,145 @@ public class RelatorioGratuidadeANTT extends Relatorio {
private String getSql(String fecInicioVenda, String fecFinalVenda, String linha, String tipoGratu, String empresa ) { private String getSql(String fecInicioVenda, String fecFinalVenda, String linha, String tipoGratu, String empresa ) {
StringBuilder sql = new StringBuilder();
sql.append(" select ");
sql.append(" ca.DESCCATEGORIA AS categoria, ");
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(" sum(case when (R.INDSENTIDOIDA = 1 ) then 1 else 0 end) as totalIda, ");
sql.append(" sum(case when (R.INDSENTIDOIDA = 0 ) then 1 else 0 end) as totalVolta ");
sql.append(" from BOLETO b ");
sql.append(" JOIN categoria ca ON b.categoria_id = ca.categoria_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(" WHERE b.fechorventa BETWEEN :fecInicioVenda AND :fecFinalVenda ");
StringBuilder sb = new StringBuilder();
sb.append(" ");
sb.append(" select tabela.categoria, tabela.codOrigem, tabela.descorigem, tabela.codDestino, tabela.descDestino, ");
sb.append(" sum(CASE");
sb.append(" WHEN (tabela.sentido = 1) THEN 1 ");
sb.append(" ELSE 0");
sb.append(" END) AS totalIda,");
sb.append(" sum(CASE");
sb.append(" WHEN (tabela.sentido = 0) THEN 1 ");
sb.append(" ELSE 0");
sb.append(" END) AS totalVolta from ( ");
sb.append(" ");
sb.append("SELECT ca.desccategoria as categoria, R.INDSENTIDOIDA as sentido, B.MOTIVOCANCELACION_ID, OC.DESCORGAO AS ORGAO, ");
sb.append(" O.CODEMPRESAPORORGAO AS empresa,");
sb.append(" TO_DATE(B.FECHORVIAJE, 'DD/MM/YY hh24:mi:ss') || '' AS dataViagem,");
sb.append(" TO_CHAR(b.FECHORVIAJE, 'HH24:MI') AS horaViagem,");
sb.append(" ori.cveparada AS codorigem,");
sb.append(" ori.descparada AS descorigem,");
sb.append(" des.cveparada AS coddestino,");
sb.append(" des.descparada AS descdestino,");
sb.append(" B.NUMASIENTO AS POLTRONA,");
sb.append(" b.NUMFOLIOSISTEMA AS NUMBILHETE,");
sb.append(" b.NOMBPASAJERO AS NOMBPASAJERO,");
sb.append(" CASE");
sb.append(" WHEN b.DESCNUMDOC IS NOT NULL THEN b.DESCNUMDOC");
sb.append(" ELSE c.NUMIDENTIFICAUNO");
sb.append(" END AS RG,");
sb.append(" c.TIPOIDENTIFICAUNO_ID AS TIPODOC1,");
sb.append(" b.descorgaodoc uforgaodoc,");
sb.append(" c.TIPOIDENTIFICADOS_ID AS TIPODOC2,");
sb.append(" CASE");
sb.append(" WHEN b.DESCNUMDOC2 IS NOT NULL THEN b.DESCNUMDOC2");
sb.append(" ELSE c.NUMIDENTIFICADOS");
sb.append(" END AS CPF,");
sb.append(" r.PREFIXO AS LINHA,");
sb.append(" cd.DESCCALLE || ', ' || cd.NUMEXTERIOR || '-' || cd.DESCIUDAD || '/' || cd.DESESTADO AS ENDERECO,");
sb.append(" c.NUMTELEFONO AS tel,");
sb.append(" c.DESCCORREO AS email,");
sb.append(" CASE");
sb.append(" WHEN B.MOTIVOCANCELACION_ID IN (31,");
sb.append(" 32,");
sb.append(" 90) THEN 1");
sb.append(" ELSE 0");
sb.append(" END AS DESISTENCIA,");
sb.append(" (COALESCE(T.PRECIO, 0) + COALESCE(T.IMPORTEPEDAGIO, 0)) -(COALESCE(b.PRECIOPAGADO, 0) + COALESCE(b.IMPORTEPEDAGIO, 0)) AS vlrGratuidade ");
sb.append("FROM BOLETO b ");
sb.append("JOIN categoria ca ON b.categoria_id = ca.categoria_id ");
sb.append("JOIN empresa e ON e.empresa_id = b.EMPRESACORRIDA_ID ");
sb.append("JOIN marca m ON m.EMPRESA_ID = e.EMPRESA_ID ");
sb.append("JOIN parada ori ON ori.parada_id = b.origen_id ");
sb.append("JOIN parada des ON des.parada_id = b.destino_id ");
sb.append("JOIN ruta r ON r.ruta_id = b.ruta_id ");
sb.append("LEFT JOIN cliente c ON c.cliente_id = b.cliente_id ");
sb.append("LEFT JOIN CLIENTE_DIRECCION cd ON cd.cliente_id = c.cliente_id ");
sb.append("AND cd.ACTIVO = 1 ");
sb.append("JOIN ORGAO_CONCEDENTE OC ON r.ORGAOCONCEDENTE_ID = OC.ORGAOCONCEDENTE_ID ");
sb.append("JOIN ORGAO_EMP_PARAM O ON e.empresa_id = O.EMPRESA_ID ");
sb.append("AND OC.ORGAOCONCEDENTE_ID = O.ORGAOCONCEDENTE_ID ");
sb.append("AND O.ACTIVO = 1 ");
sb.append("JOIN TARIFA T ON r.RUTA_ID = T.RUTA_ID ");
sb.append("AND b.ORIGEN_ID = T.ORIGEN_ID ");
sb.append("AND b.DESTINO_ID = T.DESTINO_ID ");
sb.append("AND b.CLASESERVICIO_ID = T.CLASESERVICIO_ID ");
sb.append("AND m.MARCA_ID = T.MARCA_ID ");
sb.append("AND o.ORGAOCONCEDENTE_ID = T.ORGAOCONCEDENTE_ID ");
sb.append("JOIN VIGENCIA_TARIFA vt ON vt.VIGENCIATARIFA_ID = t.VIGENCIATARIFA_ID ");
sb.append("AND b.FECHORVIAJE BETWEEN vt.FECINICIOVIGENCIA AND vt.FECFINVIGENCIA ");
sb.append("WHERE b.fechorventa BETWEEN :fecInicioVenda AND :fecFinalVenda ");
if( tipoGratu != null ) { if( tipoGratu != null ) {
sql.append(" AND b.CATEGORIA_ID in (").append(tipoGratu).append(") "); sb.append(" AND b.CATEGORIA_ID in (").append(tipoGratu).append(") ");
} }
if( linha != null && !linha.equals("Todas")) { if( linha != null && !linha.equals("Todas")) {
sql.append(" AND r.ruta_id in (").append(linha).append(") "); sb.append(" AND r.ruta_id in (").append(linha).append(") ");
} }
if (!empresa.isEmpty()){ if (!empresa.isEmpty()){
sql.append("AND b.empresacorrida_id = :empresa_id "); sb.append("AND b.empresacorrida_id =:empresa_id ");
} }
sql.append(" group by ca.DESCCATEGORIA, ori.CVEPARADA, ori.DESCPARADA, des.CVEPARADA, des.DESCPARADA "); sb.append("GROUP BY OC.DESCORGAO,");
sql.append(" ORDER BY descOrigem, descDestino, categoria "); sb.append(" O.CODEMPRESAPORORGAO,");
sb.append(" B.FECHORVIAJE,");
sb.append(" ca.desccategoria,");
sb.append(" ori.cveparada,");
sb.append(" ori.descparada,");
sb.append(" des.cveparada,");
sb.append(" B.NUMASIENTO,");
sb.append(" des.descparada,");
sb.append(" c.TIPOIDENTIFICAUNO_ID,");
sb.append(" c.TIPOIDENTIFICADOS_ID,");
sb.append(" b.FECCORRIDA,");
sb.append(" C.NUMTELEFONO,");
sb.append(" c.DESCCORREO,");
sb.append(" CASE");
sb.append(" WHEN b.DESCNUMDOC IS NOT NULL THEN b.DESCNUMDOC");
sb.append(" ELSE c.NUMIDENTIFICAUNO");
sb.append(" END,");
sb.append(" b.NUMFOLIOSISTEMA,");
sb.append(" CASE");
sb.append(" WHEN b.DESCNUMDOC2 IS NOT NULL THEN b.DESCNUMDOC2");
sb.append(" ELSE c.NUMIDENTIFICADOS");
sb.append(" END,");
sb.append(" b.NOMBPASAJERO,");
sb.append(" b.NUMIDENTIFICACION,");
sb.append(" T.PRECIO,");
sb.append(" b.PRECIOPAGADO,");
sb.append(" b.descorgaodoc,");
sb.append(" r.PREFIXO,");
sb.append(" cd.DESCCALLE || ', ' || cd.NUMEXTERIOR || '-' || cd.DESCIUDAD || '/' || cd.DESESTADO,");
sb.append(" B.MOTIVOCANCELACION_ID,");
sb.append(" T.IMPORTEOUTROS,");
sb.append(" T.IMPORTEPEDAGIO,");
sb.append(" T.IMPORTESEGURO,");
sb.append(" T.IMPORTETAXAEMBARQUE,");
sb.append(" T.IMPORTETPP,");
sb.append(" b.descorgaodoc,");
sb.append(" b.IMPORTECATEGORIA,");
sb.append(" b.IMPORTEOUTROS,");
sb.append(" b.IMPORTEPEDAGIO,");
sb.append(" b.IMPORTESEGURO,");
sb.append(" b.IMPORTETAXAEMBARQUE,");
sb.append(" b.IMPORTETPP,R.INDSENTIDOIDA");
sb.append(" ORDER BY ");
sb.append(" descorigem,");
sb.append(" descdestino,OC.DESCORGAO,");
sb.append(" O.CODEMPRESAPORORGAO,");
sb.append(" b.FECHORVIAJE");
sb.append(" ");
sb.append(" ) tabela");
sb.append(" group by ");
sb.append(" tabela.categoria, tabela.codOrigem,tabela.descOrigem, tabela.codDestino, tabela.descDestino ");
sb.append(" ORDER BY tabela.descOrigem, tabela.descDestino, tabela.categoria ");
return sql.toString();
return sb.toString();
} }
} }