From e80faa13f4cc2e82c5f5c3e1da94263dd9738d4f Mon Sep 17 00:00:00 2001 From: valdevir Date: Tue, 5 Jan 2021 19:44:35 +0000 Subject: [PATCH] fixes bug#20984 qua: dev:Valdir git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@104943 d1611594-4594-4d17-8e1d-87c2c4800839 --- ...LinhasAnaliticoSimplificadoSumarizado.java | 387 +++++++++++++++++- ...nhasAnaliticoSimplificadoSumarizado.jasper | Bin 80532 -> 71084 bytes ...inhasAnaliticoSimplificadoSumarizado.jrxml | 315 ++------------ .../RelatorioResumoLinhasBean.java | 268 ++++++++++++ 4 files changed, 693 insertions(+), 277 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioResumoLinhasBean.java diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.java index 834b65237..1ff27c262 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.java @@ -3,10 +3,22 @@ */ package com.rjconsultores.ventaboletos.relatorios.impl; +import java.math.BigDecimal; import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; import java.util.Map; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioResumoLinhasBean; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; /** * @author valdevir_rj @@ -14,17 +26,390 @@ import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; */ public class RelatorioResumoLinhasAnaliticoSimplificadoSumarizado extends Relatorio { + private List lsDadosRelatorio; + /** * @param parametros * @param conexao */ - public RelatorioResumoLinhasAnaliticoSimplificadoSumarizado(Map parametros, Connection conexao) { + public RelatorioResumoLinhasAnaliticoSimplificadoSumarizado(final Map parametros, final 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; + + 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()); + rset = stmt.executeQuery(); + + lsDadosRelatorio = new ArrayList(); + + RelatorioResumoLinhasBean relatorioBean = null; + while (rset.next()) { + + Boolean isMesmaLinhaIdaVolta = relatorioBean !=null && rset.getString("PREFIXO") != null && + rset.getString("PREFIXO").equals(relatorioBean.getPREFIXO()) ? Boolean.TRUE : Boolean.FALSE; + + if (!isMesmaLinhaIdaVolta) { + if(relatorioBean !=null) { + lsDadosRelatorio.add(relatorioBean); + } + relatorioBean = preencheAgrupaRelatorioBeanPorIdaVolta(rset, isMesmaLinhaIdaVolta, null); + } else { + relatorioBean= preencheAgrupaRelatorioBeanPorIdaVolta(rset, isMesmaLinhaIdaVolta, relatorioBean); + } + + } + if (lsDadosRelatorio.size() > 0) { + setLsDadosRelatorio(lsDadosRelatorio); + } + } + + }); } + public void setLsDadosRelatorio(List lsDadosRelatorio) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); + this.lsDadosRelatorio = lsDadosRelatorio; + } @Override public void processaParametros() throws Exception { } + /** + * Obtém SQL, necessário ordenar por prefixo. + * + * @param rutaId + * @param grupoRutaId + * @return + */ + 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_EQUIVALENTE,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(SUB.PASSAGEIROS_EQUIVALENTE,0), 2) * NVL(SUB.EXTENSAO_KM,0)) AS PAX_KM, "); + sqlSb.append(" (NVL(SUB.ASSENTOS,0) * NVL(SUB.KM_RODADO,0)) AS PAX_OFERTADO "); + sqlSb.append(" FROM "); + sqlSb.append(" (SELECT TAB.INDSENTIDOIDA, "); + sqlSb.append(" TAB.RUTA_ID, "); + sqlSb.append(" TAB.NUMRUTA, "); + sqlSb.append(" TAB.PREFIXO, "); + sqlSb.append(" TAB.DESCRUTA, "); + sqlSb.append(" TAB.INTERESTADUAL, "); + sqlSb.append(" TAB.GRUPO_LINHA, "); + sqlSb.append(" TAB.EXTENSAO_KM, "); + sqlSb.append(" TAB.CVE_CLASE_SERVICIO, "); + sqlSb.append(" SUM(NVL(TAB.RECEITA_SEGURO,0)) AS RECEITA_SEGURO, "); + sqlSb.append(" SUM(NVL(TAB.RECEITA_BAGAGEM,0)) AS RECEITA_BAGAGEM, "); + sqlSb.append(" SUM(NVL(TAB.RECEITA_SEGURO_OUTROS,0)) AS RECEITA_SEGURO_OUTROS, "); + sqlSb.append(" SUM(NVL(TAB.RECEITA_TARIFA,0)) AS RECEITA_TARIFA, "); + sqlSb.append(" SUM(NVL(TAB.RECEITA_PEDAGIO,0)) AS RECEITA_PEDAGIO, "); + sqlSb.append(" SUM(NVL(TAB.RECEITA_EMBARQUE,0)) AS RECEITA_EMBARQUE, "); + sqlSb.append(" SUM(NVL(TAB.PASSAGEIROS,0)) AS PASSAGEIROS, "); + sqlSb.append(" SUM(NVL(TAB.VIAGENS_EXTRA,0)) AS VIAGENS_EXTRA, "); + sqlSb.append(" SUM(NVL(TAB.VIAGENS,0)) AS VIAGENS, "); + sqlSb.append(" SUM(NVL(TAB.RECEITA_TOTAL,0)) AS RECEITA_TOTAL, "); + sqlSb.append(" SUM(NVL(TAB.VIAGENS_TOTAL,0)) AS VIAGENS_TOTAL, "); + sqlSb.append(" SUM(NVL(TAB.KM_RODADO,0)) AS KM_RODADO, "); + sqlSb.append(" SUM(NVL(TAB.PASSAGEIROS_EQUIVALENTE,0)) AS PASSAGEIROS_EQUIVALENTE, "); + sqlSb.append(" TAB.ASSENTOS AS ASSENTOS "); + sqlSb.append(" FROM "); + sqlSb.append(" (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(" (SELECT SUM(NVL(PE.EQUIVALENTE,0)) "); + sqlSb.append(" FROM "); + sqlSb.append(" (SELECT CO.FECCORRIDA, "); + sqlSb.append(" CO.RUTA_ID, "); + sqlSb.append(" BO.PRECIOBASE, "); + sqlSb.append(" ROUND((BO.NUMKMVIAJE * COUNT(1) / "); + sqlSb.append(" (SELECT SUM(NVL(TR.CANTKMREAL,0)) "); + sqlSb.append(" FROM RUTA_COMBINACION RS, "); + sqlSb.append(" TRAMO TR "); + sqlSb.append(" WHERE RS.RUTA_ID = CO.RUTA_ID "); + sqlSb.append(" AND RS.TRAMO_ID = TR.TRAMO_ID "); + sqlSb.append(" )), 2) EQUIVALENTE "); + sqlSb.append(" FROM CORRIDA CO, "); + sqlSb.append(" 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 "); + sqlSb.append(" OR BO.MOTIVOCANCELACION_ID = 0) "); + sqlSb.append(" GROUP BY CO.FECCORRIDA, "); + sqlSb.append(" CO.RUTA_ID, "); + sqlSb.append(" BO.PRECIOBASE, "); + sqlSb.append(" BO.NUMKMVIAJE "); + sqlSb.append(" ) PE "); + sqlSb.append(" WHERE PE.FECCORRIDA = TAB1.FECCORRIDA "); + sqlSb.append(" AND PE.RUTA_ID = TAB1.RUTA_ID "); + sqlSb.append(" ) PASSAGEIROS_EQUIVALENTE, "); + sqlSb.append(" (SELECT SUM(NVL(DA.CANTASIENTOS,0)) FROM DIAGRAMA_AUTOBUS DA "); + sqlSb.append(" INNER JOIN ROL_OPERATIVO RO ON (DA.DIAGRAMAAUTOBUS_ID = RO.DIAGRAMAAUTOBUS_ID) "); + sqlSb.append(" INNER JOIN CORRIDA CO ON (RO.ROLOPERATIVO_ID = CO.ROLOPERATIVO_ID) "); + sqlSb.append(" INNER JOIN RUTA RU ON (RU.RUTA_ID = CO.RUTA_ID) "); + sqlSb.append(" WHERE CO.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 RU.RUTA_ID = TAB1.RUTA_ID "); + sqlSb.append(" AND DA.ACTIVO = 1 "); + sqlSb.append(" AND RO.ACTIVO = 1 "); + sqlSb.append(" AND CO.ACTIVO = 1 "); + sqlSb.append(" AND RU.ACTIVO = 1) ASSENTOS "); + sqlSb.append(" FROM "); + sqlSb.append(" (SELECT RUTA_ID, "); + sqlSb.append(" INDSENTIDOIDA, "); + sqlSb.append(" NUMRUTA, "); + sqlSb.append(" PREFIXO, "); + sqlSb.append(" FECCORRIDA, "); + sqlSb.append(" DESCRUTA, "); + sqlSb.append(" INTERESTADUAL, "); + sqlSb.append(" GRUPO_LINHA, "); + sqlSb.append(" EXTENSAO_KM, "); + sqlSb.append(" RECEITA_SEGURO, "); + sqlSb.append(" RECEITA_BAGAGEM, "); + sqlSb.append(" RECEITA_SEGURO_OUTROS, "); + sqlSb.append(" RECEITA_PEDAGIO, "); + sqlSb.append(" RECEITA_EMBARQUE, "); + sqlSb.append(" PASSAGEIROS, "); + sqlSb.append(" VIAGENS_EXTRA, "); + sqlSb.append(" VIAGENS, "); + sqlSb.append(" CVE_CLASE_SERVICIO, "); + sqlSb.append(" SUM(PRECIOPAGADO) AS RECEITA_TARIFA "); + sqlSb.append(" FROM "); + sqlSb.append(" (SELECT RT.RUTA_ID, "); + sqlSb.append(" BL.BOLETO_ID, "); + sqlSb.append(" SUM(BL.PRECIOPAGADO) AS preciototal, "); + sqlSb.append(" BL.preciopagado AS PRECIOPAGADO, "); + sqlSb.append(" RT.INDSENTIDOIDA, "); + sqlSb.append(" RT.NUMRUTA, "); + sqlSb.append(" RT.PREFIXO, "); + sqlSb.append(" CR.FECCORRIDA, "); + sqlSb.append(" RT.DESCRUTA, "); + sqlSb.append(" CASE "); + sqlSb.append(" WHEN CO.ESTADO_ID <> CD.ESTADO_ID "); + sqlSb.append(" THEN 'S' "); + sqlSb.append(" ELSE 'N' "); + sqlSb.append(" END INTERESTADUAL, "); + sqlSb.append(" NVL(GR.DESCGRUPO, 'Não Definido') GRUPO_LINHA, "); + sqlSb.append(" (SELECT SUM(NVL(RS.KMORIGINAL,0)) "); + sqlSb.append(" FROM RUTA_SECUENCIA RS, "); + sqlSb.append(" TRAMO TR "); + sqlSb.append(" WHERE RS.RUTA_ID = RT.RUTA_ID "); + sqlSb.append(" AND RS.TRAMO_ID = TR.TRAMO_ID "); + sqlSb.append(" AND RS.ACTIVO = 1 "); + sqlSb.append(" ) EXTENSAO_KM, "); + 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.IMPORTEPEDAGIO,0)) RECEITA_PEDAGIO, "); + sqlSb.append(" SUM(NVL(BL.IMPORTETAXAEMBARQUE,0)) RECEITA_EMBARQUE, "); + sqlSb.append(" COUNT(1) PASSAGEIROS, "); + sqlSb.append(" COUNT(DISTINCT "); + sqlSb.append(" CASE "); + sqlSb.append(" WHEN CR.TIPOSERVICIO_ID = 2 "); + sqlSb.append(" THEN CR.FECCORRIDA "); + sqlSb.append(" || CR.CORRIDA_ID "); + sqlSb.append(" ELSE NULL "); + sqlSb.append(" END) VIAGENS_EXTRA, "); + sqlSb.append(" COUNT(DISTINCT "); + sqlSb.append(" CASE "); + sqlSb.append(" WHEN CR.TIPOSERVICIO_ID <> 2 "); + sqlSb.append(" THEN CR.FECCORRIDA "); + sqlSb.append(" || CR.CORRIDA_ID "); + sqlSb.append(" ELSE NULL "); + sqlSb.append(" END) VIAGENS, "); + sqlSb.append(" NVL(CS.CVECLASE, ' ') CVE_CLASE_SERVICIO "); + sqlSb.append(" FROM RUTA RT, "); + sqlSb.append(" BOLETO BL, "); + sqlSb.append(" CORRIDA CR, "); + sqlSb.append(" TRAMO TR, "); + 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(" 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 TR.ORIGEN_ID = CR.ORIGEN_ID "); + sqlSb.append(" AND TR.DESTINO_ID = CR.DESTINO_ID "); + sqlSb.append(" AND BL.MOTIVOCANCELACION_ID IS NULL "); + sqlSb.append(" AND BL.INDSTATUSOPERACION = 'F' "); + sqlSb.append(" AND VT.ACTIVO = 1 "); + 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(" GROUP BY RT.RUTA_ID, "); + sqlSb.append(" RT.NUMRUTA, "); + sqlSb.append(" RT.PREFIXO, "); + sqlSb.append(" CR.FECCORRIDA, "); + sqlSb.append(" RT.DESCRUTA, "); + sqlSb.append(" GR.DESCGRUPO, "); + sqlSb.append(" CO.ESTADO_ID, "); + sqlSb.append(" CD.ESTADO_ID, "); + sqlSb.append(" RT.INDSENTIDOIDA, "); + sqlSb.append(" CS.CVECLASE, "); + sqlSb.append(" BL.BOLETO_ID, "); + sqlSb.append(" BL.preciopagado "); + sqlSb.append(" ) DADOS "); + sqlSb.append(" GROUP BY RUTA_ID, "); + sqlSb.append(" INDSENTIDOIDA, "); + sqlSb.append(" NUMRUTA, "); + sqlSb.append(" PREFIXO, "); + sqlSb.append(" FECCORRIDA, "); + sqlSb.append(" DESCRUTA, "); + sqlSb.append(" INTERESTADUAL, "); + sqlSb.append(" GRUPO_LINHA, "); + sqlSb.append(" EXTENSAO_KM, "); + sqlSb.append(" RECEITA_SEGURO, "); + sqlSb.append(" RECEITA_BAGAGEM, "); + sqlSb.append(" RECEITA_SEGURO_OUTROS, "); + sqlSb.append(" RECEITA_PEDAGIO, "); + sqlSb.append(" RECEITA_EMBARQUE, "); + sqlSb.append(" PASSAGEIROS, "); + sqlSb.append(" VIAGENS_EXTRA, "); + sqlSb.append(" VIAGENS, "); + sqlSb.append(" CVE_CLASE_SERVICIO "); + sqlSb.append(" ) TAB1 "); + sqlSb.append(" )TAB "); + sqlSb.append(" GROUP BY TAB.RUTA_ID, "); + sqlSb.append(" TAB.NUMRUTA, "); + sqlSb.append(" TAB.PREFIXO, "); + sqlSb.append(" TAB.DESCRUTA, "); + sqlSb.append(" TAB.INTERESTADUAL, "); + sqlSb.append(" TAB.GRUPO_LINHA, "); + sqlSb.append(" TAB.EXTENSAO_KM, "); + sqlSb.append(" TAB.CVE_CLASE_SERVICIO, "); + sqlSb.append(" TAB.INDSENTIDOIDA, "); + sqlSb.append(" TAB.ASSENTOS "); + sqlSb.append(" ) SUB "); + sqlSb.append(" WHERE (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(" ORDER BY SUB.PREFIXO, "); + sqlSb.append(" SUB.INDSENTIDOIDA DESC "); + return sqlSb.toString(); + + } + + /** + * Preenche objeto de relatório caso seja Ida criar novo objeto e preenche com dados, caso seja Volta concantena/agrupa com o objeto de linha da Ida + * + * @param rset + * @param relatorioBean + * @return + * @throws SQLException + */ + private RelatorioResumoLinhasBean preencheAgrupaRelatorioBeanPorIdaVolta(ResultSet rset, Boolean isMesmaLinhaIdaVolta, RelatorioResumoLinhasBean relatorioBean) throws SQLException { + //Ida + if (!isMesmaLinhaIdaVolta) { + relatorioBean = new RelatorioResumoLinhasBean(); + relatorioBean.setINDSENTIDOIDA(rset.getBigDecimal("INDSENTIDOIDA")); + relatorioBean.setRUTA_ID(rset.getBigDecimal("RUTA_ID")); + relatorioBean.setNUMRUTA(rset.getString("NUMRUTA")); + relatorioBean.setPREFIXO(rset.getString("PREFIXO")); + 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")); + } else { + //Volta + relatorioBean.setRUTA_ID(rset.getBigDecimal("RUTA_ID")); + relatorioBean.setNUMRUTA(relatorioBean.getNUMRUTA() + rset.getString("NUMRUTA")); + relatorioBean.setPREFIXO(rset.getString("PREFIXO")); + relatorioBean.setDESCRUTA(relatorioBean.getDESCRUTA() + (BigDecimal.ZERO.equals(rset.getBigDecimal("INDSENTIDOIDA")) ? " - VOLTA " : " - IDA")); + relatorioBean.setINTERESTADUAL(rset.getString("INTERESTADUAL")); + relatorioBean.setGRUPO_LINHA(rset.getString("GRUPO_LINHA")); + relatorioBean.setEXTENSAO_KM(relatorioBean.getEXTENSAO_KM().add(rset.getBigDecimal("EXTENSAO_KM"))); + relatorioBean.setRECEITA_SEGURO(relatorioBean.getRECEITA_SEGURO().add(rset.getBigDecimal("RECEITA_SEGURO"))); + relatorioBean.setRECEITA_BAGAGEM(relatorioBean.getRECEITA_BAGAGEM().add(rset.getBigDecimal("RECEITA_BAGAGEM"))); + relatorioBean.setRECEITA_SEGURO_OUTROS(relatorioBean.getRECEITA_SEGURO_OUTROS().add(rset.getBigDecimal("RECEITA_SEGURO_OUTROS"))); + relatorioBean.setRECEITA_TARIFA(relatorioBean.getRECEITA_TARIFA().add(rset.getBigDecimal("RECEITA_TARIFA"))); + relatorioBean.setRECEITA_PEDAGIO(relatorioBean.getRECEITA_PEDAGIO().add(rset.getBigDecimal("RECEITA_PEDAGIO"))); + relatorioBean.setRECEITA_EMBARQUE(relatorioBean.getRECEITA_EMBARQUE().add(rset.getBigDecimal("RECEITA_EMBARQUE"))); + relatorioBean.setPASSAGEIROS(relatorioBean.getPASSAGEIROS().add(rset.getBigDecimal("PASSAGEIROS"))); + relatorioBean.setVIAGENS_EXTRA(relatorioBean.getVIAGENS_EXTRA().add(rset.getBigDecimal("VIAGENS_EXTRA"))); + relatorioBean.setVIAGENS(relatorioBean.getVIAGENS().add(rset.getBigDecimal("VIAGENS"))); + relatorioBean.setCVE_CLASE_SERVICIO(rset.getString("CVE_CLASE_SERVICIO")); + relatorioBean.setRECEITA_TOTAL(relatorioBean.getRECEITA_TOTAL().add(rset.getBigDecimal("RECEITA_TOTAL"))); + relatorioBean.setVIAGENS_TOTAL(relatorioBean.getVIAGENS_TOTAL().add(rset.getBigDecimal("VIAGENS_TOTAL"))); + relatorioBean.setKM_RODADO(relatorioBean.getKM_RODADO().add(rset.getBigDecimal("KM_RODADO"))); + relatorioBean.setPASSAGEIROS_EQUIVALENTE(relatorioBean.getPASSAGEIROS_EQUIVALENTE().add(rset.getBigDecimal("PASSAGEIROS_EQUIVALENTE"))); + relatorioBean.setPASSAGEIROS_MPA(relatorioBean.getPASSAGEIROS_MPA().add(rset.getBigDecimal("PASSAGEIROS_MPA"))); + relatorioBean.setPASSAGEIROS_MPE(relatorioBean.getPASSAGEIROS_MPE().add(rset.getBigDecimal("PASSAGEIROS_MPE"))); + relatorioBean.setRECEITA_KM(relatorioBean.getRECEITA_KM().add(rset.getBigDecimal("RECEITA_KM"))); + relatorioBean.setRECEITA_VIAGEM(relatorioBean.getRECEITA_VIAGEM().add(rset.getBigDecimal("RECEITA_VIAGEM"))); + relatorioBean.setPAX_KM(relatorioBean.getPAX_KM().add(rset.getBigDecimal("PAX_KM"))); + relatorioBean.setPAX_OFERTADO(relatorioBean.getPAX_OFERTADO().add(rset.getBigDecimal("PAX_OFERTADO"))); + + } + return relatorioBean; + } + } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.jasper index 93e117ee95d00cf5a18622d31c5a517df2b1327c..ccb618f88e543abe1a090790cbeeb04f49ec9298 100644 GIT binary patch delta 3667 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 - - + +