diff --git a/pom.xml b/pom.xml
index 2764a3004..a3565ecca 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,12 +4,12 @@
4.0.0
br.com.rjconsultores
ventaboletosadm
- 1.164.0
+ 1.165.0
war
1.122.0
- 1.104.0
+ 1.105.0
UTF-8
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDadosConsolidadosCeturb.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDadosConsolidadosCeturb.java
new file mode 100644
index 000000000..43d64409f
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDadosConsolidadosCeturb.java
@@ -0,0 +1,352 @@
+/**
+ *
+ */
+package com.rjconsultores.ventaboletos.relatorios.impl;
+
+import java.math.BigDecimal;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource;
+import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
+import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioDadosConsolidadosCeturbBean;
+import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioResumoLinhasBean;
+import com.rjconsultores.ventaboletos.service.ConstanteService;
+import com.rjconsultores.ventaboletos.utilerias.MoneyHelper;
+import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
+import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext;
+
+import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
+
+/**
+ * @author Bruno H. G. Gouvea
+ *
+ */
+public class RelatorioDadosConsolidadosCeturb extends Relatorio {
+
+ /**
+ * @param parametros
+ * @param conexao
+ */
+
+ private List lsDadosRelatorio;
+ private static String CONSTANTE_GRATUIDADE_CRIANCA;
+
+ public RelatorioDadosConsolidadosCeturb(Map parametros, Connection conexao) throws Exception{
+ super(parametros, conexao);
+ this.setCustomDataSource(new DataSource(this) {
+ @Override
+ public void initDados() throws Exception {
+ Integer rutaId = parametros.get("RUTA_ID") != null ? Integer.valueOf(parametros.get("RUTA_ID").toString()) : null;
+ Integer empresaId = parametros.get("EMPRESA_ID") != null ? Integer.valueOf(parametros.get("EMPRESA_ID").toString()) : null;
+ Integer grupoRutaId = parametros.get("GRUPORUTA_ID") != null ? Integer.valueOf(parametros.get("GRUPORUTA_ID").toString()) : null;
+ CONSTANTE_GRATUIDADE_CRIANCA = buscarConstante("GRATUIDADE_CRIANCA");
+ String sql = getSql(rutaId, grupoRutaId);
+
+ NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
+ ResultSet rset = null;
+
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
+ if (parametros.get("DATA_INICIAL") != null) {
+ Date dataInicio = (Date) parametros.get("DATA_INICIAL");
+ stmt.setString("DATA_INICIAL", sdf.format(dataInicio));
+ }
+
+ if (parametros.get("DATA_FINAL") != null) {
+ Date dataFinal = (Date) parametros.get("DATA_FINAL");
+ stmt.setString("DATA_FINAL", sdf.format(dataFinal));
+ }
+
+ if (rutaId != null) {
+ stmt.setInt("RUTA_ID", rutaId);
+ }
+ if (grupoRutaId != null) {
+ stmt.setInt("GRUPORUTA_ID", grupoRutaId);
+ }
+ stmt.setInt("EMPRESA_ID", empresaId.intValue());
+ stmt.setString("CRIANCA_ID",CONSTANTE_GRATUIDADE_CRIANCA);
+ rset = stmt.executeQuery();
+
+ lsDadosRelatorio = new ArrayList();
+ Set setDadosRelatorio = new HashSet();
+
+ RelatorioDadosConsolidadosCeturbBean relatorioBean = null;
+ while (rset.next()) {
+
+ relatorioBean = new RelatorioDadosConsolidadosCeturbBean();
+ relatorioBean.setINDSENTIDOIDA(rset.getInt("INDSENTIDOIDA"));
+ relatorioBean.setRUTA_ID(rset.getBigDecimal("RUTA_ID"));
+ relatorioBean.setNUMRUTA(rset.getString("NUMRUTA"));
+ relatorioBean.setDESCRUTA(rset.getString("DESCRUTA") + (BigDecimal.ZERO.equals(rset.getBigDecimal("INDSENTIDOIDA")) ? " - VOLTA " : " - IDA"));
+ relatorioBean.setINTERESTADUAL(rset.getString("INTERESTADUAL"));
+ relatorioBean.setGRUPO_LINHA(rset.getString("GRUPO_LINHA"));
+ relatorioBean.setEXTENSAO_KM(rset.getBigDecimal("EXTENSAO_KM"));
+ relatorioBean.setRECEITA_SEGURO(rset.getBigDecimal("RECEITA_SEGURO"));
+ relatorioBean.setRECEITA_BAGAGEM(rset.getBigDecimal("RECEITA_BAGAGEM"));
+ relatorioBean.setRECEITA_SEGURO_OUTROS(rset.getBigDecimal("RECEITA_SEGURO_OUTROS"));
+ relatorioBean.setRECEITA_TARIFA(rset.getBigDecimal("RECEITA_TARIFA"));
+ relatorioBean.setRECEITA_PEDAGIO(rset.getBigDecimal("RECEITA_PEDAGIO"));
+ relatorioBean.setRECEITA_EMBARQUE(rset.getBigDecimal("RECEITA_EMBARQUE"));
+ relatorioBean.setPASSAGEIROS(rset.getBigDecimal("PASSAGEIROS"));
+ relatorioBean.setVIAGENS_EXTRA(rset.getBigDecimal("VIAGENS_EXTRA"));
+ relatorioBean.setVIAGENS(rset.getBigDecimal("VIAGENS"));
+ relatorioBean.setCVE_CLASE_SERVICIO(rset.getString("CVE_CLASE_SERVICIO"));
+ relatorioBean.setRECEITA_TOTAL(rset.getBigDecimal("RECEITA_TOTAL"));
+ relatorioBean.setVIAGENS_TOTAL(rset.getBigDecimal("VIAGENS_TOTAL"));
+ relatorioBean.setKM_RODADO(rset.getBigDecimal("KM_RODADO"));
+ relatorioBean.setPASSAGEIROS_EQUIVALENTE(rset.getBigDecimal("PASSAGEIROS_EQUIVALENTE"));
+ relatorioBean.setPASSAGEIROS_MPA(rset.getBigDecimal("PASSAGEIROS_MPA"));
+ relatorioBean.setPASSAGEIROS_MPE(rset.getBigDecimal("PASSAGEIROS_MPE"));
+ relatorioBean.setRECEITA_KM(rset.getBigDecimal("RECEITA_KM"));
+ relatorioBean.setRECEITA_VIAGEM(rset.getBigDecimal("RECEITA_VIAGEM"));
+ relatorioBean.setPAX_KM(rset.getBigDecimal("PAX_KM"));
+ relatorioBean.setPAX_OFERTADO(rset.getBigDecimal("PAX_OFERTADO"));
+ relatorioBean.setTARIFA(rset.getBigDecimal("TARIFA"));
+ relatorioBean.setEQ(rset.getBigDecimal("EQ"));
+ relatorioBean.setIAP(rset.getBigDecimal("IAP"));
+ relatorioBean.setASSENTOS(rset.getBigDecimal("ASSENTOS"));
+ relatorioBean.setICMS(calcularICMS(relatorioBean.getRECEITA_TOTAL(), rset.getBigDecimal("ICMS")));
+ relatorioBean.setTARIFA_MAIOR(rset.getBigDecimal("TARIFAMAIOR"));
+ setDadosRelatorio.add(relatorioBean);
+ }
+
+ if (setDadosRelatorio.size() > 0) {
+ lsDadosRelatorio.addAll(setDadosRelatorio);
+ setLsDadosRelatorio( lsDadosRelatorio );
+ }else {
+ //tratado caso onde filtra a linha (apenas uma linha)
+ if(rset.getRow() ==0 && rutaId !=null && relatorioBean!=null) {
+ lsDadosRelatorio.add(relatorioBean);
+ setLsDadosRelatorio(lsDadosRelatorio);
+ }
+ }
+
+ }
+ });
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio#processaParametros()
+ */
+ @Override
+ public void processaParametros() throws Exception {
+ }
+
+ private String getSql(Integer rutaId, Integer grupoRutaId) {
+ StringBuilder sqlSb = new StringBuilder();
+ sqlSb.append(" SELECT SUB.*, ");
+ sqlSb.append(" (NVL(SUB.PASSAGEIROS,0) / DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0))) AS PASSAGEIROS_MPA, ");
+ sqlSb.append(" ( ROUND(NVL(SUB.PASSAGEIROS,0), 2) / DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0))) AS PASSAGEIROS_MPE, ");
+ sqlSb.append(" (NVL(SUB.RECEITA_TOTAL,0) / DECODE(NVL(SUB.KM_RODADO,0), 0, 1, NVL(SUB.KM_RODADO,0))) RECEITA_KM, ");
+ sqlSb.append(" (NVL(SUB.RECEITA_TOTAL,0) / DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0))) AS RECEITA_VIAGEM, ");
+ sqlSb.append(" ROUND(((NVL(RECEITA_TARIFA,0) / DECODE(NVL(RECEITA_TARIFA,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0))) / DECODE(NVL(SUB.TARIFA,0), 0, 1, NVL(SUB.TARIFA,0))), 2) AS EQ, ");
+ sqlSb.append(" (NVL(SUB.ASSENTOS,0) * NVL(SUB.KM_RODADO,0)) AS PAX_OFERTADO, ");
+ sqlSb.append(" ((((SUB.PAX_KM) / (NVL(SUB.ASSENTOS,0) * NVL(SUB.KM_RODADO,0)))) * 100) AS IAP ");
+ sqlSb.append(" FROM ( SELECT TAB.INDSENTIDOIDA, TAB.RUTA_ID, TAB.NUMRUTA, TAB.DESCRUTA, TAB.TARIFA, TAB.ASSENTOS, TAB.ROLOPERATIVO_ID, ");
+ sqlSb.append(" TAB.INTERESTADUAL, TAB.GRUPO_LINHA, TAB.EXTENSAO_KM, TAB.CVE_CLASE_SERVICIO, ");
+ sqlSb.append(" SUM(NVL(TAB.RECEITA_SEGURO,0)) AS RECEITA_SEGURO, SUM(NVL(TAB.RECEITA_BAGAGEM,0)) AS RECEITA_BAGAGEM, ");
+ sqlSb.append(" SUM(NVL(TAB.RECEITA_SEGURO_OUTROS,0)) AS RECEITA_SEGURO_OUTROS, SUM(NVL(TAB.RECEITA_TARIFA,0)) AS RECEITA_TARIFA, ");
+ sqlSb.append(" SUM(NVL(TAB.RECEITA_PEDAGIO,0)) AS RECEITA_PEDAGIO, SUM(NVL(TAB.RECEITA_EMBARQUE,0)) AS RECEITA_EMBARQUE, SUM(NVL(TAB.PASSAGEIROS,0)) AS PASSAGEIROS, ");
+ sqlSb.append(" SUM(NVL(TAB.VIAGENS_EXTRA,0)) AS VIAGENS_EXTRA, SUM(NVL(TAB.VIAGENS,0)) AS VIAGENS, SUM(NVL(TAB.RECEITA_TOTAL,0)) AS RECEITA_TOTAL, ");
+ sqlSb.append(" SUM(NVL(TAB.VIAGENS_TOTAL,0)) AS VIAGENS_TOTAL, SUM(NVL(TAB.KM_RODADO,0)) AS KM_RODADO, SUM(NVL(TAB.PASSAGEIROS_EQUIVALENTE,0)) AS PASSAGEIROS_EQUIVALENTE, ");
+ sqlSb.append(" SUM(NVL(TAB.PAX_KM,0)) AS PAX_KM, ");
+ sqlSb.append(" TAB.ICMS, ");
+ sqlSb.append(" TAB.TARIFAMAIOR ");
+ sqlSb.append(" FROM (SELECT TAB1.*, ");
+ sqlSb.append(" (TAB1.RECEITA_TARIFA + RECEITA_SEGURO + RECEITA_EMBARQUE + RECEITA_PEDAGIO) RECEITA_TOTAL, ");
+ sqlSb.append(" (NVL(TAB1.VIAGENS,0) + NVL(TAB1.VIAGENS_EXTRA,0)) VIAGENS_TOTAL, ");
+ sqlSb.append(" ((NVL(TAB1.VIAGENS,0) + NVL(TAB1.VIAGENS_EXTRA,0)) * NVL(TAB1.EXTENSAO_KM,0)) KM_RODADO, ");
+ sqlSb.append(" TAB1.KM_REAL PAX_KM, ");
+ sqlSb.append(" (SELECT SUM(NVL(PE.EQUIVALENTE,0)) ");
+ sqlSb.append(" FROM (SELECT CO.FECCORRIDA, CO.RUTA_ID, BO.PRECIOBASE, CO.CORRIDA_ID, ROUND((BO.NUMKMVIAJE * COUNT(1) / ");
+ if (parametros.get("SOMAR_KM_RODADOS_POR").equals("SEQUENCIA")) {
+ sqlSb.append(" (SELECT SUM(NVL(TR.CANTKMREAL,0)) ");
+ sqlSb.append(" FROM RUTA_SECUENCIA RS, TRAMO TR ");
+ sqlSb.append(" WHERE RS.RUTA_ID = TAB1.RUTA_ID ");
+ sqlSb.append(" AND RS.TRAMO_ID = TR.TRAMO_ID ");
+ sqlSb.append(" AND RS.ACTIVO = 1 )), 2) EQUIVALENTE ");
+ }else {
+ sqlSb.append(" (SELECT SUM(NVL(TR.CANTKMREAL,0)) ");
+ sqlSb.append(" FROM RUTA_COMBINACION RS, TRAMO TR ");
+ sqlSb.append(" WHERE RS.RUTA_ID = TAB1.RUTA_ID ");
+ sqlSb.append(" AND RS.TRAMO_ID = TR.TRAMO_ID ");
+
+ sqlSb.append(" AND TR.ORIGEN_ID = CO.ORIGEN_ID ");
+ sqlSb.append(" AND TR.DESTINO_ID = CO.DESTINO_ID ");
+
+ sqlSb.append(" AND RS.ACTIVO = 1)), 2) EQUIVALENTE ");
+ }
+ sqlSb.append(" FROM CORRIDA CO, BOLETO BO ");
+ sqlSb.append(" WHERE CO.CORRIDA_ID = BO.CORRIDA_ID ");
+ sqlSb.append(" AND CO.FECCORRIDA = BO.FECCORRIDA ");
+ sqlSb.append(" AND BO.ACTIVO = 1 ");
+ sqlSb.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR BO.MOTIVOCANCELACION_ID = 0 AND BO.CATEGORIA_ID <> :CRIANCA_ID) ");
+ sqlSb.append(" GROUP BY CO.FECCORRIDA, CO.RUTA_ID, BO.PRECIOBASE, BO.NUMKMVIAJE, CO.CORRIDA_ID, CO.ORIGEN_ID, CO.DESTINO_ID) PE ");
+ sqlSb.append(" WHERE PE.FECCORRIDA = TAB1.FECCORRIDA ");
+ sqlSb.append(" AND PE.CORRIDA_ID = TAB1.CORRIDA_ID ");
+ sqlSb.append(" AND PE.RUTA_ID = TAB1.RUTA_ID) PASSAGEIROS_EQUIVALENTE ");
+ sqlSb.append(" FROM (SELECT RT.RUTA_ID, ");
+ sqlSb.append(" RT.INDSENTIDOIDA, ");
+ sqlSb.append(" RT.NUMRUTA, ");
+ sqlSb.append(" CR.FECCORRIDA, ");
+ sqlSb.append(" CR.CORRIDA_ID, ");
+ sqlSb.append(" CONCAT(RT.DESCRUTA, CASE WHEN RT.INDSENTIDOIDA = 0 THEN ' - VOLTA' ELSE ' - IDA' END) DESCRUTA, ");
+ sqlSb.append(" TF.PRECIO TARIFA, ");
+ sqlSb.append(" DA.CANTASIENTOS ASSENTOS, ");
+ sqlSb.append(" RO.ROLOPERATIVO_ID, ");
+ sqlSb.append(" CASE WHEN CO.ESTADO_ID <> CD.ESTADO_ID THEN 'S' ELSE 'N' END INTERESTADUAL, ");
+ sqlSb.append(" NVL(GR.DESCGRUPO, 'Nao Definido') GRUPO_LINHA, ");
+ if (parametros.get("SOMAR_KM_RODADOS_POR").equals("SEQUENCIA")) {
+ sqlSb.append(" (SELECT SUM(NVL(RS.KMORIGINAL,0)) FROM RUTA_SECUENCIA RS, TRAMO TR WHERE RS.RUTA_ID = RT.RUTA_ID AND RS.TRAMO_ID = TR.TRAMO_ID AND RS.ACTIVO = 1) EXTENSAO_KM, ");
+ }else {
+ sqlSb.append(" TR.CANTKMREAL AS EXTENSAO_KM, ");
+ }
+
+ sqlSb.append(" SUM(NVL(BL.NUMKMVIAJE,0)) KM_REAL, ");
+ sqlSb.append(" NVL(SUM(NVL(BL.IMPORTESEGURO,0)), 0) RECEITA_SEGURO, ");
+ sqlSb.append(" 0 RECEITA_BAGAGEM, ");
+ sqlSb.append(" 0 RECEITA_SEGURO_OUTROS, ");
+ sqlSb.append(" SUM(NVL(BL.PRECIOPAGADO,0)) RECEITA_TARIFA, ");
+ sqlSb.append(" SUM(NVL(BL.IMPORTEPEDAGIO,0)) RECEITA_PEDAGIO, ");
+ sqlSb.append(" SUM(NVL(BL.IMPORTETAXAEMBARQUE,0)) RECEITA_EMBARQUE, ");
+ sqlSb.append(" COUNT(1) PASSAGEIROS, ");
+ sqlSb.append(" COUNT(DISTINCT CASE WHEN CR.TIPOSERVICIO_ID = 2 THEN CR.FECCORRIDA || CR.CORRIDA_ID ELSE NULL END) VIAGENS_EXTRA, ");
+ sqlSb.append(" COUNT(DISTINCT CASE WHEN CR.TIPOSERVICIO_ID <> 2 THEN CR.FECCORRIDA || CR.CORRIDA_ID ELSE NULL END) VIAGENS, ");
+ sqlSb.append(" NVL(CS.CVECLASE, ' ') CVE_CLASE_SERVICIO, ");
+ sqlSb.append(" EI.ICMS ICMS,");
+ sqlSb.append(" (SELECT MAX(T.PRECIO) AS PRECIO FROM TARIFA T ");
+ sqlSb.append(" JOIN TRAMO TR ON TR.TRAMO_ID = T.TRAMO_ID ");
+ sqlSb.append(" JOIN PARADA PORIGEN ON PORIGEN.PARADA_ID = TR.ORIGEN_ID ");
+ sqlSb.append(" JOIN PARADA PDESTINO ON PDESTINO.PARADA_ID = TR.DESTINO_ID ");
+ sqlSb.append(" JOIN CLASE_SERVICIO CS ON CS.CLASESERVICIO_ID = T.CLASESERVICIO_ID ");
+ sqlSb.append(" JOIN VIGENCIA_TARIFA VT ON VT.VIGENCIATARIFA_ID = T.VIGENCIATARIFA_ID ");
+ sqlSb.append(" JOIN MARCA M ON M.MARCA_ID = T.MARCA_ID ");
+ sqlSb.append(" WHERE ");
+ sqlSb.append(" T.ACTIVO = 1 ");
+ sqlSb.append(" AND VT.ACTIVO = 1 ");
+ sqlSb.append(" AND TR.ACTIVO = 1 ");
+ sqlSb.append(" AND T .RUTA_ID = RT.RUTA_ID ");
+ sqlSb.append(" )TARIFAMAIOR ");
+ sqlSb.append(" FROM RUTA RT, ");
+
+ if (!parametros.get("SOMAR_KM_RODADOS_POR").equals("SEQUENCIA")) {
+ sqlSb.append(" RUTA_COMBINACION RC, ");
+ }
+
+ sqlSb.append(" BOLETO BL, ");
+ sqlSb.append(" CORRIDA CR, ");
+ sqlSb.append(" TRAMO TR, ");
+ sqlSb.append(" ROL_OPERATIVO RO, ");
+ sqlSb.append(" DIAGRAMA_AUTOBUS DA, ");
+ sqlSb.append(" TARIFA TF, ");
+ sqlSb.append(" VIGENCIA_TARIFA VT, ");
+ sqlSb.append(" GRUPO_RUTA GR, ");
+ sqlSb.append(" PARADA PO, ");
+ sqlSb.append(" PARADA PD, ");
+ sqlSb.append(" CIUDAD CO, ");
+ sqlSb.append(" CIUDAD CD, ");
+ sqlSb.append(" CLASE_SERVICIO CS, ");
+ sqlSb.append(" EMPRESA_IMPOSTO EI ");
+ sqlSb.append(" WHERE RT.RUTA_ID = CR.RUTA_ID ");
+ sqlSb.append(" AND CS.CLASESERVICIO_ID = RT.CLASESERVICIO_ID ");
+ sqlSb.append(" AND CR.FECCORRIDA = BL.FECCORRIDA ");
+ if(rutaId !=null) {
+ sqlSb.append(" AND CR.RUTA_ID = NVL(:RUTA_ID, CR.RUTA_ID) ");
+ }
+ if(grupoRutaId!=null) {
+ sqlSb.append(" AND DECODE(:GRUPORUTA_ID, NULL, 1, RT.GRUPORUTA_ID) = DECODE(:GRUPORUTA_ID, NULL, 1, :GRUPORUTA_ID) ");
+ }
+ sqlSb.append(" AND CR.CORRIDA_ID = BL.CORRIDA_ID ");
+ sqlSb.append(" AND CR.EMPRESACORRIDA_ID = :EMPRESA_ID ");
+ sqlSb.append(" AND CR.ORIGEN_ID = PO.PARADA_ID ");
+ sqlSb.append(" AND CR.DESTINO_ID = PD.PARADA_ID ");
+ sqlSb.append(" AND PO.CIUDAD_ID = CO.CIUDAD_ID ");
+ sqlSb.append(" AND PD.CIUDAD_ID = CD.CIUDAD_ID ");
+ sqlSb.append(" AND RT.GRUPORUTA_ID = GR.GRUPORUTA_ID(+) ");
+ sqlSb.append(" AND RO.ROLOPERATIVO_ID = CR.ROLOPERATIVO_ID ");
+ sqlSb.append(" AND RO.DIAGRAMAAUTOBUS_ID = DA.DIAGRAMAAUTOBUS_ID ");
+ sqlSb.append(" AND TF.CLASESERVICIO_ID = CR.CLASESERVICIO_ID ");
+ sqlSb.append(" AND TR.ORIGEN_ID = CR.ORIGEN_ID ");
+ sqlSb.append(" AND TR.DESTINO_ID = CR.DESTINO_ID ");
+
+ if (!parametros.get("SOMAR_KM_RODADOS_POR").equals("SEQUENCIA")) {
+ sqlSb.append(" AND RC.RUTA_ID = RT.RUTA_ID ");
+ sqlSb.append(" AND RC.TRAMO_ID = TR.TRAMO_ID ");
+ sqlSb.append(" AND RC.ACTIVO = 1 ");
+ }
+
+ sqlSb.append(" AND TF.MARCA_ID = CR.MARCA_ID ");
+ sqlSb.append(" AND TF.RUTA_ID = CR.RUTA_ID ");
+ sqlSb.append(" AND TF.TRAMO_ID = TR.TRAMO_ID ");
+ sqlSb.append(" AND TF.STATUSTARIFA = 'A' ");
+ sqlSb.append(" AND TF.ACTIVO = 1 ");
+ sqlSb.append(" AND BL.MOTIVOCANCELACION_ID IS NULL ");
+ sqlSb.append(" AND BL.INDSTATUSOPERACION = 'F' ");
+ sqlSb.append(" AND TF.VIGENCIATARIFA_ID = VT.VIGENCIATARIFA_ID ");
+ sqlSb.append(" AND VT.ACTIVO = 1 ");
+ sqlSb.append(" AND BL.CATEGORIA_ID NOT IN (3, :CRIANCA_ID) ");
+ sqlSb.append(" AND CR.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND VT.FECFINVIGENCIA ");
+ sqlSb.append(" AND CR.FECCORRIDA BETWEEN TO_DATE(:DATA_INICIAL, 'DD/MM/YY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YY hh24:mi:ss') ");
+ sqlSb.append(" AND CR.ACTIVO = 1 ");
+ sqlSb.append(" AND BL.ACTIVO = 1 ");
+ sqlSb.append(" AND EI.EMPRESA_ID = CR.EMPRESACORRIDA_ID AND CO.ESTADO_ID = EI.ESTADO_ID and EI.ACTIVO = 1");
+ sqlSb.append(" GROUP BY CS.CVECLASE, ");
+ sqlSb.append(" RT.RUTA_ID, ");
+ sqlSb.append(" RT.NUMRUTA, ");
+ sqlSb.append(" CR.FECCORRIDA, ");
+ sqlSb.append(" CR.CORRIDA_ID, ");
+ sqlSb.append(" RT.DESCRUTA, ");
+ sqlSb.append(" TF.PRECIO, ");
+ sqlSb.append(" DA.CANTASIENTOS, ");
+ sqlSb.append(" RO.ROLOPERATIVO_ID, ");
+ sqlSb.append(" GR.DESCGRUPO, ");
+ sqlSb.append(" CO.ESTADO_ID, ");
+ sqlSb.append(" CD.ESTADO_ID, ");
+ sqlSb.append(" TR.CANTKMREAL, ");
+ sqlSb.append(" RT.INDSENTIDOIDA, EI.ICMS) TAB1 ");
+ sqlSb.append(" GROUP BY TAB1.RUTA_ID,TAB1.INDSENTIDOIDA,TAB1.NUMRUTA,TAB1.FECCORRIDA,TAB1.DESCRUTA, ");
+ sqlSb.append(" TAB1.TARIFA,TAB1.ASSENTOS,TAB1.ROLOPERATIVO_ID,TAB1.INTERESTADUAL, ");
+ sqlSb.append(" TAB1.GRUPO_LINHA,TAB1.EXTENSAO_KM,TAB1.RECEITA_SEGURO,TAB1.RECEITA_BAGAGEM, ");
+ sqlSb.append(" TAB1.RECEITA_SEGURO_OUTROS,TAB1.RECEITA_TARIFA,TAB1.RECEITA_PEDAGIO,TAB1.RECEITA_EMBARQUE, ");
+ sqlSb.append(" TAB1.PASSAGEIROS,TAB1.VIAGENS_EXTRA,TAB1.VIAGENS,TAB1.CVE_CLASE_SERVICIO, TAB1.KM_REAL, TAB1.CORRIDA_ID, TAB1.ICMS, TAB1.TARIFAMAIOR ");
+ sqlSb.append(" ) TAB ");
+ sqlSb.append(" GROUP BY TAB.RUTA_ID, TAB.NUMRUTA, TAB.DESCRUTA, TAB.TARIFA, TAB.ASSENTOS, TAB.ROLOPERATIVO_ID, ");
+ sqlSb.append(" TAB.INTERESTADUAL, TAB.GRUPO_LINHA, TAB.EXTENSAO_KM, TAB.CVE_CLASE_SERVICIO, TAB.INDSENTIDOIDA, TAB.ICMS, TAB.TARIFAMAIOR) SUB ");
+ sqlSb.append(" WHERE ");
+ sqlSb.append(" (DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0) ");
+ sqlSb.append(" AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0 ");
+ sqlSb.append(" AND DECODE(NVL(SUB.KM_RODADO,0), 0, 1, NVL(SUB.KM_RODADO,0)) != 0 ");
+ sqlSb.append(" AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0 ");
+ sqlSb.append(" AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0 ");
+ sqlSb.append(" AND DECODE(NVL(SUB.TARIFA,0), 0, 1, NVL(SUB.TARIFA,0)) != 0 ");
+ sqlSb.append(" AND (NVL(SUB.ASSENTOS,0) * NVL(SUB.KM_RODADO,0)) != 0 ");
+ sqlSb.append(" ORDER BY SUB.DESCRUTA, SUB.INDSENTIDOIDA, SUB.ASSENTOS, SUB.TARIFA ");
+ return sqlSb.toString();
+ }
+
+ public void setLsDadosRelatorio(List lsDadosRelatorio) {
+ this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio));
+ this.lsDadosRelatorio = lsDadosRelatorio;
+ }
+ private String buscarConstante(String nomeConstante) {
+ ConstanteService constanteService = (ConstanteService) AppContext.getApplicationContext().getBean("constanteService");
+ return constanteService.buscarPorNomeConstante(nomeConstante).getValorconstante();
+ }
+
+ private BigDecimal calcularICMS(BigDecimal receitaTotal, BigDecimal ICMS) {
+ if(receitaTotal != null && MoneyHelper.isMaior(receitaTotal, BigDecimal.ZERO)) {
+ return MoneyHelper.getValorDescontadoPercentual(receitaTotal, ICMS);
+ }
+ return BigDecimal.ZERO;
+ }
+
+}
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDadosConsolidadosCeturb_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDadosConsolidadosCeturb_es.properties
new file mode 100644
index 000000000..5df1ab735
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDadosConsolidadosCeturb_es.properties
@@ -0,0 +1,16 @@
+#geral
+msg.noData=Não foi possivel obter dados com os parâmetros informados.
+
+
+#Labels cabeçalho
+cabecalho.relatorio=Reporte:
+cabecalho.periodo=Period Viagens:
+cabecalho.periodoA=à
+cabecalho.dataHora=Data/Hora:
+cabecalho.impressorPor=Impressor por:
+cabecalho.pagina=Página
+cabecalho.de=de
+cabecalho.filtros=Filtros:
+
+rodape.pagina=Página
+rodape.de=de
\ No newline at end of file
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDadosConsolidadosCeturb_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDadosConsolidadosCeturb_pt_BR.properties
new file mode 100644
index 000000000..b0ecd266c
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDadosConsolidadosCeturb_pt_BR.properties
@@ -0,0 +1,16 @@
+#geral
+msg.noData=Não foi possivel obter dados com os parâmetros informados.
+
+
+#Labels cabeçalho
+cabecalho.relatorio=Relatório:
+cabecalho.periodo=Período Viagens:
+cabecalho.periodoA=à
+cabecalho.dataHora=Data/Hora:
+cabecalho.impressorPor=Impressor por:
+cabecalho.pagina=Página
+cabecalho.de=de
+cabecalho.filtros=Filtros:
+
+rodape.pagina=Página
+rodape.de=de
\ No newline at end of file
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDadosConsolidadosCeturb.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDadosConsolidadosCeturb.jasper
new file mode 100644
index 000000000..c05e61f94
Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDadosConsolidadosCeturb.jasper differ
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDadosConsolidadosCeturb.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDadosConsolidadosCeturb.jrxml
new file mode 100644
index 000000000..7e8c029dc
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDadosConsolidadosCeturb.jrxml
@@ -0,0 +1,395 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioDadosConsolidadosCeturbBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioDadosConsolidadosCeturbBean.java
new file mode 100644
index 000000000..06c37e814
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioDadosConsolidadosCeturbBean.java
@@ -0,0 +1,378 @@
+package com.rjconsultores.ventaboletos.relatorios.utilitarios;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class RelatorioDadosConsolidadosCeturbBean implements Comparable{
+
+ private int INDSENTIDOIDA;
+ private BigDecimal RUTA_ID;
+ private BigDecimal RUTA_ID_VOLTA;
+ private String NUMRUTA;
+ private String PREFIXO;
+ private String DESCRUTA;
+ private String INTERESTADUAL;
+ private String GRUPO_LINHA;
+ private BigDecimal EXTENSAO_KM;
+ private BigDecimal RECEITA_SEGURO;
+ private BigDecimal RECEITA_BAGAGEM;
+ private BigDecimal RECEITA_SEGURO_OUTROS;
+ private BigDecimal RECEITA_TARIFA;
+ private BigDecimal RECEITA_TARIFA_SEGURO;
+ private BigDecimal RECEITA_PEDAGIO;
+ private BigDecimal RECEITA_EMBARQUE;
+ private BigDecimal PASSAGEIROS;
+ private BigDecimal VIAGENS_EXTRA;
+ private BigDecimal VIAGENS;
+ private String CVE_CLASE_SERVICIO;
+ private BigDecimal RECEITA_TOTAL;
+ private BigDecimal VIAGENS_TOTAL;
+ private BigDecimal KM_RODADO;
+ private BigDecimal PASSAGEIROS_EQUIVALENTE;
+ private BigDecimal PASSAGEIROS_MPA;
+ private BigDecimal PASSAGEIROS_MPE;
+ private BigDecimal RECEITA_KM;
+ private BigDecimal RECEITA_VIAGEM;
+ private BigDecimal PAX_KM;
+ private BigDecimal PAX_OFERTADO;
+ private String DESC_CLASE_SERVICIO;
+ private BigDecimal ASSENTOS;
+
+ private Integer ROLOPERATIVO_ID;
+ private Date FECCORRIDA;
+ private BigDecimal TARIFA;
+ private BigDecimal EQ;
+ private BigDecimal IAP;
+ private BigDecimal ICMS;
+ private BigDecimal TARIFA_MAIOR;
+
+
+
+ public BigDecimal getRUTA_ID_VOLTA() {
+ return RUTA_ID_VOLTA;
+ }
+
+ public void setRUTA_ID_VOLTA(BigDecimal rUTA_ID_VOLTA) {
+ RUTA_ID_VOLTA = rUTA_ID_VOLTA;
+ }
+
+ public BigDecimal getRUTA_ID() {
+ return RUTA_ID;
+ }
+
+ public void setRUTA_ID(BigDecimal rUTA_ID) {
+ RUTA_ID = rUTA_ID;
+ }
+
+ public String getNUMRUTA() {
+ return NUMRUTA;
+ }
+
+ public void setNUMRUTA(String nUMRUTA) {
+ NUMRUTA = nUMRUTA;
+ }
+
+ public String getPREFIXO() {
+ return PREFIXO;
+ }
+
+ public void setPREFIXO(String pREFIXO) {
+ PREFIXO = pREFIXO;
+ }
+
+ public String getDESCRUTA() {
+ return DESCRUTA;
+ }
+
+ public void setDESCRUTA(String dESCRUTA) {
+ DESCRUTA = dESCRUTA;
+ }
+
+ public String getINTERESTADUAL() {
+ return INTERESTADUAL;
+ }
+
+ public void setINTERESTADUAL(String iNTERESTADUAL) {
+ INTERESTADUAL = iNTERESTADUAL;
+ }
+
+ public String getGRUPO_LINHA() {
+ return GRUPO_LINHA;
+ }
+
+ public void setGRUPO_LINHA(String gRUPO_LINHA) {
+ GRUPO_LINHA = gRUPO_LINHA;
+ }
+
+ public BigDecimal getEXTENSAO_KM() {
+ return EXTENSAO_KM;
+ }
+
+ public void setEXTENSAO_KM(BigDecimal eXTENSAO_KM) {
+ EXTENSAO_KM = eXTENSAO_KM;
+ }
+
+ public BigDecimal getRECEITA_SEGURO() {
+ return RECEITA_SEGURO;
+ }
+
+ public void setRECEITA_SEGURO(BigDecimal rECEITA_SEGURO) {
+ RECEITA_SEGURO = rECEITA_SEGURO;
+ }
+
+ public BigDecimal getRECEITA_BAGAGEM() {
+ return RECEITA_BAGAGEM;
+ }
+
+ public void setRECEITA_BAGAGEM(BigDecimal rECEITA_BAGAGEM) {
+ RECEITA_BAGAGEM = rECEITA_BAGAGEM;
+ }
+
+ public BigDecimal getRECEITA_SEGURO_OUTROS() {
+ return RECEITA_SEGURO_OUTROS;
+ }
+
+ public void setRECEITA_SEGURO_OUTROS(BigDecimal rECEITA_SEGURO_OUTROS) {
+ RECEITA_SEGURO_OUTROS = rECEITA_SEGURO_OUTROS;
+ }
+
+ public BigDecimal getRECEITA_TARIFA() {
+ return RECEITA_TARIFA;
+ }
+
+ public void setRECEITA_TARIFA(BigDecimal rECEITA_TARIFA) {
+ RECEITA_TARIFA = rECEITA_TARIFA;
+ }
+
+ public BigDecimal getRECEITA_PEDAGIO() {
+ return RECEITA_PEDAGIO;
+ }
+
+ public void setRECEITA_PEDAGIO(BigDecimal rECEITA_PEDAGIO) {
+ RECEITA_PEDAGIO = rECEITA_PEDAGIO;
+ }
+
+ public BigDecimal getRECEITA_EMBARQUE() {
+ return RECEITA_EMBARQUE;
+ }
+
+ public void setRECEITA_EMBARQUE(BigDecimal rECEITA_EMBARQUE) {
+ RECEITA_EMBARQUE = rECEITA_EMBARQUE;
+ }
+
+ public BigDecimal getPASSAGEIROS() {
+ return PASSAGEIROS;
+ }
+
+ public void setPASSAGEIROS(BigDecimal pASSAGEIROS) {
+ PASSAGEIROS = pASSAGEIROS;
+ }
+
+ public BigDecimal getVIAGENS_EXTRA() {
+ return VIAGENS_EXTRA;
+ }
+
+ public void setVIAGENS_EXTRA(BigDecimal vIAGENS_EXTRA) {
+ VIAGENS_EXTRA = vIAGENS_EXTRA;
+ }
+
+ public BigDecimal getVIAGENS() {
+ return VIAGENS;
+ }
+
+ public void setVIAGENS(BigDecimal vIAGENS) {
+ VIAGENS = vIAGENS;
+ }
+
+ public String getCVE_CLASE_SERVICIO() {
+ return CVE_CLASE_SERVICIO;
+ }
+
+ public void setCVE_CLASE_SERVICIO(String cVE_CLASE_SERVICIO) {
+ CVE_CLASE_SERVICIO = cVE_CLASE_SERVICIO;
+ }
+
+ public BigDecimal getRECEITA_TOTAL() {
+ return RECEITA_TOTAL;
+ }
+
+ public void setRECEITA_TOTAL(BigDecimal rECEITA_TOTAL) {
+ RECEITA_TOTAL = rECEITA_TOTAL;
+ }
+
+ public BigDecimal getVIAGENS_TOTAL() {
+ return VIAGENS_TOTAL;
+ }
+
+ public void setVIAGENS_TOTAL(BigDecimal vIAGENS_TOTAL) {
+ VIAGENS_TOTAL = vIAGENS_TOTAL;
+ }
+
+ public BigDecimal getKM_RODADO() {
+ return KM_RODADO;
+ }
+
+ public void setKM_RODADO(BigDecimal kM_RODADO) {
+ KM_RODADO = kM_RODADO;
+ }
+
+ public BigDecimal getPASSAGEIROS_EQUIVALENTE() {
+ return PASSAGEIROS_EQUIVALENTE;
+ }
+
+ public void setPASSAGEIROS_EQUIVALENTE(BigDecimal pASSAGEIROS_EQUIVALENTE) {
+ PASSAGEIROS_EQUIVALENTE = pASSAGEIROS_EQUIVALENTE;
+ }
+
+ public BigDecimal getPASSAGEIROS_MPA() {
+ return PASSAGEIROS_MPA;
+ }
+
+ public void setPASSAGEIROS_MPA(BigDecimal pASSAGEIROS_MPA) {
+ PASSAGEIROS_MPA = pASSAGEIROS_MPA;
+ }
+
+ public BigDecimal getPASSAGEIROS_MPE() {
+ return PASSAGEIROS_MPE;
+ }
+
+ public void setPASSAGEIROS_MPE(BigDecimal pASSAGEIROS_MPE) {
+ PASSAGEIROS_MPE = pASSAGEIROS_MPE;
+ }
+
+ public BigDecimal getRECEITA_KM() {
+ return RECEITA_KM;
+ }
+
+ public void setRECEITA_KM(BigDecimal rECEITA_KM) {
+ RECEITA_KM = rECEITA_KM;
+ }
+
+ public BigDecimal getRECEITA_VIAGEM() {
+ return RECEITA_VIAGEM;
+ }
+
+ public void setRECEITA_VIAGEM(BigDecimal rECEITA_VIAGEM) {
+ RECEITA_VIAGEM = rECEITA_VIAGEM;
+ }
+
+ public BigDecimal getPAX_KM() {
+ return PAX_KM;
+ }
+
+ public void setPAX_KM(BigDecimal pAX_KM) {
+ PAX_KM = pAX_KM;
+ }
+
+ public BigDecimal getPAX_OFERTADO() {
+ return PAX_OFERTADO;
+ }
+
+ public void setPAX_OFERTADO(BigDecimal pAX_OFERTADO) {
+ PAX_OFERTADO = pAX_OFERTADO;
+ }
+
+ public int getINDSENTIDOIDA() {
+ return INDSENTIDOIDA;
+ }
+
+ public void setINDSENTIDOIDA(int iNDSENTIDOIDA) {
+ INDSENTIDOIDA = iNDSENTIDOIDA;
+ }
+
+ public String getDESC_CLASE_SERVICIO() {
+ return DESC_CLASE_SERVICIO;
+ }
+
+ public void setDESC_CLASE_SERVICIO(String dESC_CLASE_SERVICIO) {
+ DESC_CLASE_SERVICIO = dESC_CLASE_SERVICIO;
+ }
+
+ public BigDecimal getRECEITA_TARIFA_SEGURO() {
+ return RECEITA_TARIFA_SEGURO;
+ }
+
+ public void setRECEITA_TARIFA_SEGURO(BigDecimal rECEITA_TARIFA_SEGURO) {
+ RECEITA_TARIFA_SEGURO = rECEITA_TARIFA_SEGURO;
+ }
+
+ public BigDecimal getASSENTOS() {
+ return ASSENTOS;
+ }
+
+ public void setASSENTOS(BigDecimal aSSENTOS) {
+ ASSENTOS = aSSENTOS;
+ }
+
+ @Override
+ public String toString() {
+ // TODO Auto-generated method stub
+ return getRUTA_ID() + getDESCRUTA();
+ }
+
+ @Override
+ public int compareTo(RelatorioDadosConsolidadosCeturbBean o) {
+ if( this == null || o == null) {
+ return -1;
+ }
+
+ return this.getPREFIXO().compareTo(o.getPREFIXO());
+ }
+
+ public Integer getROLOPERATIVO_ID() {
+ return ROLOPERATIVO_ID;
+ }
+
+ public void setROLOPERATIVO_ID(Integer rOLOPERATIVO_ID) {
+ ROLOPERATIVO_ID = rOLOPERATIVO_ID;
+ }
+
+ public Date getFECCORRIDA() {
+ return FECCORRIDA;
+ }
+
+ public void setFECCORRIDA(Date fECCORRIDA) {
+ FECCORRIDA = fECCORRIDA;
+ }
+
+ public BigDecimal getTARIFA() {
+ return TARIFA;
+ }
+
+ public void setTARIFA(BigDecimal tARIFA) {
+ TARIFA = tARIFA;
+ }
+
+ public BigDecimal getEQ() {
+ return EQ;
+ }
+
+ public void setEQ(BigDecimal eQ) {
+ EQ = eQ;
+ }
+
+ public BigDecimal getIAP() {
+ return IAP;
+ }
+
+ public void setIAP(BigDecimal iAP) {
+ IAP = iAP;
+ }
+
+ public BigDecimal getICMS() {
+ return ICMS;
+ }
+
+ public void setICMS(BigDecimal iCMS) {
+ ICMS = iCMS;
+ }
+
+ public BigDecimal getTARIFA_MAIOR() {
+ return TARIFA_MAIOR;
+ }
+
+ public void setTARIFA_MAIOR(BigDecimal tARIFA_MAIOR) {
+ TARIFA_MAIOR = tARIFA_MAIOR;
+ }
+
+}
diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioDadosConsolidadosCeturbController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioDadosConsolidadosCeturbController.java
new file mode 100644
index 000000000..04d2ef2cd
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioDadosConsolidadosCeturbController.java
@@ -0,0 +1,205 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.sql.DataSource;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Controller;
+import org.zkoss.util.resource.Labels;
+import org.zkoss.zk.ui.Component;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zul.Checkbox;
+import org.zkoss.zul.Comboitem;
+import org.zkoss.zul.Datebox;
+import org.zkoss.zul.Radio;
+
+import com.rjconsultores.ventaboletos.entidad.Empresa;
+import com.rjconsultores.ventaboletos.entidad.GrupoRuta;
+import com.rjconsultores.ventaboletos.entidad.Ruta;
+import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioDadosConsolidadosCeturb;
+import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioResumoLinhas;
+import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioResumoLinhasAnalitico;
+import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioResumoLinhasAnaliticoSimplificadoSumarizado;
+import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioResumoLinhasAnaliticoSumarizado;
+import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
+import com.rjconsultores.ventaboletos.service.ConstanteService;
+import com.rjconsultores.ventaboletos.service.EmpresaService;
+import com.rjconsultores.ventaboletos.service.GrupoRutaService;
+import com.rjconsultores.ventaboletos.service.RutaService;
+import com.rjconsultores.ventaboletos.utilerias.DateUtil;
+import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
+import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar;
+import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
+import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext;
+
+/**
+ *
+ * @author Administrador
+ */
+@Controller("relatorioDadosConsolidadosCeturbController")
+@Scope("prototype")
+public class RelatorioDadosConsolidadosCeturbController extends MyGenericForwardComposer {
+
+ private static final long serialVersionUID = 1L;
+
+ @Autowired
+ private DataSource dataSourceRead;
+ @Autowired
+ private EmpresaService empresaService;
+ @Autowired
+ private RutaService rutaService;
+ @Autowired
+ private GrupoRutaService grupoRutaService;
+
+ private List lsRuta;
+ private List lsEmpresa;
+ private List lsGrupoRuta;
+
+ private Datebox fecCorridaIni;
+ private Datebox fecCorridaFin;
+ private MyComboboxEstandar cmbRuta;
+ private MyComboboxEstandar cmbEmpresa;
+ private MyComboboxEstandar cmbGrupoRuta;
+ private Radio rdAnalitico;
+ private Radio rdSequencia;
+ private Checkbox chcSumarizar;
+ private Checkbox chcSimplificadoSumarizado;
+ private static String CONSTANTE_GRATUIDADE_CRIANCA;
+
+
+
+ public void onClick$btnExecutarRelatorio(Event ev) throws Exception {
+ executarRelatorio();
+ }
+
+ /**
+ * @throws Exception
+ *
+ */
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ private void executarRelatorio() throws Exception {
+
+ Relatorio relatorio;
+ Map parametros = new HashMap();
+ StringBuilder filtro = new StringBuilder();
+
+ parametros.put("DATA_INICIAL", this.fecCorridaIni.getValue());
+ parametros.put("DATA_FINAL", DateUtil.fimFecha(this.fecCorridaFin.getValue()));
+ parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioDadosConsolidadosCeturbController.window.title"));
+ parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString());
+ parametros.put("NOME_USUARIO", UsuarioLogado.getUsuarioLogado().getNombusuario());
+ parametros.put("CRIANCA_ID", buscarConstante("GRATUIDADE_CRIANCA"));
+
+ Comboitem itemRuta = cmbRuta.getSelectedItem();
+
+ filtro.append("Linha: ");
+ if (itemRuta != null) {
+ Ruta ruta = (Ruta) itemRuta.getValue();
+ parametros.put("RUTA_ID", ruta.getRutaId());
+ filtro.append(ruta.getDescruta() + ";");
+ }
+ else
+ filtro.append("Todas;");
+
+ Comboitem itemGrupoRuta = cmbGrupoRuta.getSelectedItem();
+
+ filtro.append("Grupo de Linha: ");
+ if (itemGrupoRuta != null) {
+ GrupoRuta grupoRuta = (GrupoRuta) itemGrupoRuta.getValue();
+ parametros.put("GRUPORUTA_ID", grupoRuta.getGrupoRutaId());
+ filtro.append(grupoRuta.getDescGrupo());
+ }
+ else
+ filtro.append("Todos;");
+
+ Comboitem itemEmpresa = cmbEmpresa.getSelectedItem();
+ if (itemEmpresa != null) {
+ Empresa empresa = (Empresa) itemEmpresa.getValue();
+ parametros.put("EMPRESA_ID", empresa.getEmpresaId());
+ parametros.put("EMPRESA", empresa.getNombempresa());
+ filtro.append(" EMPRESA: " + empresa.getNombempresa());
+ }
+
+ SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
+ filtro.append(" DATA: " + df.format(new Date()));
+ parametros.put("DATA", new Date());
+ parametros.put("SOMAR_KM_RODADOS_POR", rdSequencia.isChecked() ? "SEQUENCIA" : "COMBINACAO");
+
+
+ parametros.put("FILTROS", filtro.toString());
+
+ String tituloRelatorio = "relatorioDadosConsolidadosCeturbController.window.title";
+ relatorio = new RelatorioDadosConsolidadosCeturb(parametros, dataSourceRead.getConnection());
+ Map args = new HashMap();
+ args.put("relatorio", relatorio);
+
+ openWindow("/component/reportView.zul",
+ Labels.getLabel(tituloRelatorio), args, MODAL);
+
+ }
+
+ @Override
+ public void doAfterCompose(Component comp) throws Exception {
+ setLsRuta(rutaService.obtenerTodos());
+ lsEmpresa = empresaService.obtenerTodos();
+ lsGrupoRuta = grupoRutaService.obtenerTodos();
+
+ super.doAfterCompose(comp);
+ }
+
+ private String buscarConstante(String nomeConstante) {
+ ConstanteService constanteService = (ConstanteService) AppContext.getApplicationContext().getBean("constanteService");
+ return constanteService.buscarPorNomeConstante(nomeConstante).getValorconstante();
+ }
+
+ public List getLsRuta() {
+ return lsRuta;
+ }
+
+ public void setLsRuta(List lsRuta) {
+ this.lsRuta = lsRuta;
+ }
+
+ public MyComboboxEstandar getCmbRuta() {
+ return cmbRuta;
+ }
+
+ public void setCmbRuta(MyComboboxEstandar cmbRuta) {
+ this.cmbRuta = cmbRuta;
+ }
+
+ public List getLsEmpresa() {
+ return lsEmpresa;
+ }
+
+ public void setLsEmpresa(List lsEmpresa) {
+ this.lsEmpresa = lsEmpresa;
+ }
+
+ public List getLsGrupoRuta() {
+ return lsGrupoRuta;
+ }
+
+ public void setLsGrupoRuta(List lsGrupoRuta) {
+ this.lsGrupoRuta = lsGrupoRuta;
+ }
+
+ public Checkbox getChcSimplificadoSumarizado() {
+ return chcSimplificadoSumarizado;
+ }
+
+ public void setChcSimplificadoSumarizado(Checkbox chcSimplificadoSumarizado) {
+ this.chcSimplificadoSumarizado = chcSimplificadoSumarizado;
+ }
+
+}
diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioDadosConsolidadosCeturb.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioDadosConsolidadosCeturb.java
new file mode 100644
index 000000000..db321b86d
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioDadosConsolidadosCeturb.java
@@ -0,0 +1,24 @@
+package com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios;
+
+import org.zkoss.util.resource.Labels;
+
+import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria;
+import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema;
+
+public class ItemMenuRelatorioDadosConsolidadosCeturb extends DefaultItemMenuSistema {
+
+ public ItemMenuRelatorioDadosConsolidadosCeturb() {
+ super("indexController.mniRelatorioDadosConsolidadosCeturb.label");
+ }
+
+ @Override
+ public String getClaveMenu() {
+ return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.DADOSCONSOLIDADOCETURB";
+ }
+
+ @Override
+ public void ejecutar() {
+ PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioDadosConsolidadosCeturb.zul",
+ Labels.getLabel("indexController.mniRelatorioDadosConsolidadosCeturb.label"), getArgs() ,desktop);
+ }
+}
diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties
index 86716e282..43b072d27 100644
--- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties
+++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties
@@ -285,6 +285,7 @@ analitico.gerenciais.pacote.resumido=com.rjconsultores.ventaboletos.web.utileria
analitico.gerenciais.relatorioRemessaCNAB=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioRemessaCNAB
analitico.gerenciais.ceturb=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.ceturb.SubMenuRelatorioCeturb
analitico.gerenciais.ceturb.RelatorioMovimentoMensalPassageiros=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioMovimentoMensalPassageiros
+analitico.gerenciais.ceturb.RelatorioDadosConsolidadosCeturb=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioDadosConsolidadosCeturb
analitico.integracion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.integracion.SubMenuIntegracion
analitico.integracion.sisdap=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioSisdap
analitico.integracion.sie=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioSie
diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label
index 836fa02cc..9de95cf4c 100644
--- a/web/WEB-INF/i3-label_en.label
+++ b/web/WEB-INF/i3-label_en.label
@@ -10545,4 +10545,19 @@ editarConfiguracaoCodBarrasTrechoController.origem = Origin
editarConfiguracaoCodBarrasTrechoController.destino = Destination
editarConfiguracaoCodBarrasTrechoController.codTerminal = Terminal Code
editarConfiguracaoCodBarrasTrechoController.codEmpresa = Company Code
-editarConfiguracaoCodBarrasTrechoController.codRuta = Line Code
\ No newline at end of file
+editarConfiguracaoCodBarrasTrechoController.codRuta = Line Code
+
+
+# Realtorio dados consolidados Ceturb
+relatorioDadosConsolidadosCeturbController.lbAte.value = until
+relatorioDadosConsolidadosCeturbController.lbEmpresa.value = Enterprise
+relatorioDadosConsolidadosCeturbController.lbFecCorrida.value = Travel Period
+relatorioDadosConsolidadosCeturbController.lbGrupoRuta.label = Line Group
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensao.ajuda = Select Sequence if you want the total KM driven considering the sequence registration, otherwise the KM of the Combination will be considered.
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensao.label = Consider for full extension
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensaoCobinacao.label = Combination
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensaoSequencia.label = Sequence
+relatorioDadosConsolidadosCeturbController.lbRuta.value = Line
+relatorioDadosConsolidadosCeturbController.lblSimplificadoSumarizado.value = Summarize by rows (Simplified)
+relatorioDadosConsolidadosCeturbController.lblSumarizar.value = Summarize by rows (Full)
+relatorioDadosConsolidadosCeturbController.window.title = Ceturb Consolidated Data Report
\ No newline at end of file
diff --git a/web/WEB-INF/i3-label_es_CO.label b/web/WEB-INF/i3-label_es_CO.label
index fa28b7f7a..b36c34700 100644
--- a/web/WEB-INF/i3-label_es_CO.label
+++ b/web/WEB-INF/i3-label_es_CO.label
@@ -10569,3 +10569,18 @@ editarConfiguracaoCodBarrasTrechoController.destino = Destino
editarConfiguracaoCodBarrasTrechoController.codTerminal = Cod. Terminal
editarConfiguracaoCodBarrasTrechoController.codEmpresa = Cod. Empresa
editarConfiguracaoCodBarrasTrechoController.codRuta = Cod. Ruta
+
+
+# Relatorio dados consolidados Ceturb
+relatorioDadosConsolidadosCeturbController.lbAte.value = hasta
+relatorioDadosConsolidadosCeturbController.lbEmpresa.value = Empresa
+relatorioDadosConsolidadosCeturbController.lbFecCorrida.value = PerÃod de viaje
+relatorioDadosConsolidadosCeturbController.lbGrupoRuta.label = Grupo de lÃneas
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensao.ajuda = Seleccione Secuencia si desea el total de KM recorridos considerando el registro de secuencia, de lo contrario se considerarán los KM de la Combinación.
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensao.label = Considere la posibilidad de una extensión completa
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensaoCobinacao.label = Combinación
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensaoSequencia.label = Secuencia
+relatorioDadosConsolidadosCeturbController.lbRuta.value = Ruta
+relatorioDadosConsolidadosCeturbController.lblSimplificadoSumarizado.value = Sumarizar por linhas (Simplificado)
+relatorioDadosConsolidadosCeturbController.lblSumarizar.value = Sumarizar por la Rutas (Completo)
+relatorioDadosConsolidadosCeturbController.window.title = Reporte Datos Consolidados Ceturb
\ No newline at end of file
diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label
index b53275673..6fe865dce 100644
--- a/web/WEB-INF/i3-label_es_MX.label
+++ b/web/WEB-INF/i3-label_es_MX.label
@@ -10570,4 +10570,20 @@ editarConfiguracaoCodBarrasTrechoController.origem = Origen
editarConfiguracaoCodBarrasTrechoController.destino = Destino
editarConfiguracaoCodBarrasTrechoController.codTerminal = Cod. Terminal
editarConfiguracaoCodBarrasTrechoController.codEmpresa = Cod. Empresa
-editarConfiguracaoCodBarrasTrechoController.codRuta = Cod. Ruta
\ No newline at end of file
+editarConfiguracaoCodBarrasTrechoController.codRuta = Cod. Ruta
+
+
+
+# Relatorio dados consolidados Ceturb
+relatorioDadosConsolidadosCeturbController.lbAte.value = hasta
+relatorioDadosConsolidadosCeturbController.lbEmpresa.value = Empresa
+relatorioDadosConsolidadosCeturbController.lbFecCorrida.value = PerÃod de viaje
+relatorioDadosConsolidadosCeturbController.lbGrupoRuta.label = Grupo de lÃneas
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensao.ajuda = Seleccione Secuencia si desea el total de KM recorridos considerando el registro de secuencia, de lo contrario se considerarán los KM de la Combinación.
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensao.label = Considere la posibilidad de una extensión completa
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensaoCobinacao.label = Combinación
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensaoSequencia.label = Secuencia
+relatorioDadosConsolidadosCeturbController.lbRuta.value = Ruta
+relatorioDadosConsolidadosCeturbController.lblSimplificadoSumarizado.value = Sumarizar por linhas (Simplificado)
+relatorioDadosConsolidadosCeturbController.lblSumarizar.value = Sumarizar por la Rutas (Completo)
+relatorioDadosConsolidadosCeturbController.window.title = Reporte Datos Consolidados Ceturb
\ No newline at end of file
diff --git a/web/WEB-INF/i3-label_fr_FR.label b/web/WEB-INF/i3-label_fr_FR.label
index 2fc6d6a64..a961702dd 100644
--- a/web/WEB-INF/i3-label_fr_FR.label
+++ b/web/WEB-INF/i3-label_fr_FR.label
@@ -10546,3 +10546,18 @@ editarConfiguracaoCodBarrasTrechoController.destino = Destination
editarConfiguracaoCodBarrasTrechoController.codTerminal = Code. Terminal
editarConfiguracaoCodBarrasTrechoController.codEmpresa = Code. Entreprise
editarConfiguracaoCodBarrasTrechoController.codRuta = Code. Doubler
+
+
+# Realtorio dados consolidados Ceturb
+relatorioDadosConsolidadosCeturbController.lbAte.value = jusqu'Ã
+relatorioDadosConsolidadosCeturbController.lbEmpresa.value = Entreprise
+relatorioDadosConsolidadosCeturbController.lbFecCorrida.value = Période de voyage
+relatorioDadosConsolidadosCeturbController.lbGrupoRuta.label = Groupe de lignes
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensao.ajuda = Sélectionnez Séquence si vous souhaitez que le KM total parcouru en tenant compte de l'enregistrement de la séquence, sinon le KM de la combinaison sera pris en compte.
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensao.label = Envisager une extension complète
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensaoCobinacao.label = Combinaison
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensaoSequencia.label = Séquence
+relatorioDadosConsolidadosCeturbController.lbRuta.value = Doubler
+relatorioDadosConsolidadosCeturbController.lblSimplificadoSumarizado.value = Résumer par lignes (simplifié)
+relatorioDadosConsolidadosCeturbController.lblSumarizar.value = Résumer par lignes (simplifié)
+relatorioDadosConsolidadosCeturbController.window.title = Rapport de données consolidées Ceturb
\ No newline at end of file
diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label
index e038e8895..e9827a338 100644
--- a/web/WEB-INF/i3-label_pt_BR.label
+++ b/web/WEB-INF/i3-label_pt_BR.label
@@ -10542,3 +10542,17 @@ editarConfiguracaoCodBarrasTrechoController.destino = Destino
editarConfiguracaoCodBarrasTrechoController.codTerminal = Cod. Terminal
editarConfiguracaoCodBarrasTrechoController.codEmpresa = Cod. Empresa
editarConfiguracaoCodBarrasTrechoController.codRuta = Cod. Linha
+
+# Realtorio dados consolidados Ceturb
+relatorioDadosConsolidadosCeturbController.lbAte.value = até
+relatorioDadosConsolidadosCeturbController.lbEmpresa.value = Empresa
+relatorioDadosConsolidadosCeturbController.lbFecCorrida.value = PerÃodo de Viagem
+relatorioDadosConsolidadosCeturbController.lbGrupoRuta.label = Grupo de Linhas
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensao.ajuda = Selecione Sequência caso queira o total de KM rodado considerando o cadastro da sequencia, se não será considerado a KM da Combinação.
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensao.label = Considerar para extensão total
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensaoCobinacao.label = Combinação
+relatorioDadosConsolidadosCeturbController.lbKMConsiderarExtensaoSequencia.label = Sequência
+relatorioDadosConsolidadosCeturbController.lbRuta.value = Linha
+relatorioDadosConsolidadosCeturbController.lblSimplificadoSumarizado.value = Sumarizar por linhas (Simplificado)
+relatorioDadosConsolidadosCeturbController.lblSumarizar.value = Sumarizar por linhas (Completo)
+relatorioDadosConsolidadosCeturbController.window.title = Relatório Dados Consolidados Ceturb
\ No newline at end of file
diff --git a/web/gui/relatorios/filtroRelatorioDadosConsolidadosCeturb.zul b/web/gui/relatorios/filtroRelatorioDadosConsolidadosCeturb.zul
new file mode 100644
index 000000000..87c38b6d9
--- /dev/null
+++ b/web/gui/relatorios/filtroRelatorioDadosConsolidadosCeturb.zul
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+ |
+
+
+
+
+
+ |
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+