diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java index b26091b9c..69edcfe08 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java @@ -112,6 +112,8 @@ public class RelatorioLinhasHorario extends Relatorio { group = ((String) rset.getObject("GRUPO_RUTA")); horarioBean.setGrupoRuta(group); + + horarioBean.setTipoLinha((String) rset.getObject("TIPO_LINHA")); horarioBean.setHora((String) rset.getObject("HORA")); horarioBean.setServico((BigDecimal) rset.getObject("SERVICO")); @@ -383,10 +385,14 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append(" ORD, "); sql.append(" EXTRA, "); - sql.append(" COUNT( CASE WHEN CJ.MOTIVOCANCELACION_ID IS NULL "); - sql.append(" THEN 1 "); - sql.append(" ELSE NULL "); - sql.append(" END) ABSOL "); + sql.append(" CASE "); + sql.append(" WHEN CO.ESTADO_ID <> CD.ESTADO_ID THEN "); + sql.append(" 'INTERESTADUAL' "); + sql.append(" ELSE "); + sql.append(" 'INTERMUNICIPAL' "); + sql.append(" END TIPO_LINHA, "); + + sql.append(" ABSOL "); sql.append(" FROM (SELECT RS.RUTA_ID, "); sql.append(" SUM(NVL(T.CANTKMREAL, 0)) AS EXTENSAO "); @@ -414,6 +420,21 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append(" WHERE C.ACTIVO = 1 "); sql.append(" GROUP BY C.CORRIDA_ID) TB3, "); + sql.append(" (SELECT C.CORRIDA_ID, "); + sql.append(" NVL(COUNT(CASE "); + sql.append(" WHEN C.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL "); + sql.append(" THEN 1 "); + sql.append(" ELSE NULL "); + sql.append(" END),0) AS ABSOL "); + sql.append(" FROM CORRIDA C "); + sql.append(" LEFT JOIN BOLETO B "); + sql.append(" ON ( B.CORRIDA_ID = C.CORRIDA_ID "); + sql.append(" AND B.FECCORRIDA = C.FECCORRIDA ) "); + sql.append(" WHERE C.ACTIVO = 1 "); + sql.append(" AND B.ACTIVO = 1 "); + sql.append(" AND B.MOTIVOCANCELACION_ID IS NULL "); + sql.append(" GROUP BY C.CORRIDA_ID) TB4, "); + sql.append(" CORRIDA C "); sql.append(" LEFT JOIN CAJA CJ "); sql.append(" ON ( CJ.CORRIDA_ID = C.CORRIDA_ID "); @@ -422,6 +443,13 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append(" ON ( CJ.ORIGEN_ID = ORIGEM.PARADA_ID ) "); sql.append(" LEFT JOIN PARADA DESTINO "); sql.append(" ON ( CJ.DESTINO_ID = DESTINO.PARADA_ID ) "); + + sql.append(" LEFT OUTER JOIN CIUDAD CO "); + sql.append(" ON ( CO.CIUDAD_ID = ORIGEM.CIUDAD_ID ) "); + + sql.append(" LEFT OUTER JOIN CIUDAD CD "); + sql.append(" ON ( CO.CIUDAD_ID = DESTINO.CIUDAD_ID ) "); + sql.append(" LEFT JOIN RUTA R "); sql.append(" ON ( C.RUTA_ID = R.RUTA_ID ) "); sql.append(" LEFT OUTER JOIN GRUPO_RUTA GR "); @@ -440,6 +468,7 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append(" AND TB1.RUTA_ID = C.RUTA_ID "); sql.append(" AND TB2.CORRIDA_ID = C.CORRIDA_ID "); sql.append(" AND TB3.CORRIDA_ID = C.CORRIDA_ID "); + sql.append(" AND TB4.CORRIDA_ID = C.CORRIDA_ID "); if (empresa != null) { sql.append(" AND C.EMPRESACORRIDA_ID IN ( " + empresa.getEmpresaId() + " ) "); @@ -497,6 +526,12 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append(" EXTENSAO, "); sql.append(" ORD, "); sql.append(" EXTRA, "); + + sql.append(" ABSOL, "); + + sql.append(" CO.ESTADO_ID, "); + sql.append(" CD.ESTADO_ID, "); + sql.append(" ORIGEM.CVEPARADA, "); sql.append(" DESTINO.CVEPARADA "); sql.append(" ORDER BY "); @@ -504,5 +539,6 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append(" C.CORRIDA_ID "); return sql.toString(); + } } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioLinhasHorario_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioLinhasHorario_pt_BR.properties index ed3548eed..ff1d0b854 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioLinhasHorario_pt_BR.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioLinhasHorario_pt_BR.properties @@ -50,8 +50,9 @@ detail.iap=IAP% #Group group.total=Total do Grupo - +sub.total=Sub Total total.geral=Total Geral +linhas=Linhas diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jasper index aff8eed2f..14f6cb1ba 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jrxml index aca5831f1..6ee22c8e0 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jrxml @@ -1,8 +1,8 @@ - - + + @@ -64,6 +64,7 @@ + @@ -133,6 +134,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -150,7 +391,7 @@ - + @@ -161,35 +402,35 @@ - + - + - + - + - + @@ -217,7 +458,7 @@ - + @@ -231,7 +472,7 @@ - + @@ -245,55 +486,58 @@ - + - + - + - + - + - + - + + + + @@ -609,7 +853,7 @@ - + @@ -623,28 +867,28 @@ - + - + - + - + @@ -658,42 +902,42 @@ - + - + - + - + - + - + @@ -721,7 +965,7 @@ - + @@ -742,7 +986,7 @@ - + @@ -756,14 +1000,14 @@ - + - + @@ -784,7 +1028,7 @@ - + @@ -800,36 +1044,39 @@ - - + + + + + - + - + - + - + @@ -857,7 +1104,7 @@ - + @@ -871,28 +1118,28 @@ - + - + - + - + @@ -906,28 +1153,28 @@ - + - + - + - + @@ -935,15 +1182,12 @@ - + - - - diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioLinhasHorarioBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioLinhasHorarioBean.java index 08e11f162..662121ffa 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioLinhasHorarioBean.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioLinhasHorarioBean.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; public class RelatorioLinhasHorarioBean { + private String tipoLinha; private String grupoRuta; private String origem; private String destino; @@ -36,6 +37,7 @@ public class RelatorioLinhasHorarioBean { private BigDecimal paxKmOfertado; private BigDecimal paxKmTransportado; private BigDecimal iap; + private BigDecimal antiAbsol; public RelatorioLinhasHorarioBean() { } @@ -57,6 +59,19 @@ public class RelatorioLinhasHorarioBean { } } + public String getTipoLinha() { + return tipoLinha; + } + + public void setTipoLinha(String tipoLinha) { + try { + tipoLinha = TipoLinha.valueOf(tipoLinha).getValue(); + } catch (Exception e) { + e.printStackTrace(); + } + this.tipoLinha = tipoLinha; + } + public String getGrupoRuta() { return grupoRuta; } @@ -304,4 +319,13 @@ public class RelatorioLinhasHorarioBean { public void setIap(BigDecimal iap) { this.iap = iap; } + + public BigDecimal getAntiAbsol() { + return antiAbsol; + } + + public void setAntiAbsol(BigDecimal antiAbsol) { + this.antiAbsol = antiAbsol; + } + } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/TipoLinha.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/TipoLinha.java new file mode 100644 index 000000000..135bff660 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/TipoLinha.java @@ -0,0 +1,18 @@ +package com.rjconsultores.ventaboletos.relatorios.utilitarios; + +public enum TipoLinha { + + INTERESTADUAL("Interestadual"), + INTERMUNICIPAL("Intermunicipal"); + + private String value; + + private TipoLinha(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + +}