Merge pull request 'fixes bug#AL-3817' (!430) from AL-3817 into master
Reviewed-on: adm/VentaBoletosAdm#430 Reviewed-by: aristides <aristides@rjconsultores.com.br>master 1.55.9
commit
d2385cfaaf
2
pom.xml
2
pom.xml
|
@ -4,7 +4,7 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>br.com.rjconsultores</groupId>
|
||||
<artifactId>ventaboletosadm</artifactId>
|
||||
<version>1.55.8</version>
|
||||
<version>1.55.9</version>
|
||||
<packaging>war</packaging>
|
||||
|
||||
<properties>
|
||||
|
|
|
@ -4,9 +4,24 @@
|
|||
package com.rjconsultores.ventaboletos.relatorios.impl;
|
||||
|
||||
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.RelatorioResumoLinhasBean;
|
||||
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
|
||||
import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext;
|
||||
|
||||
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
|
||||
|
||||
import com.rjconsultores.ventaboletos.service.ConstanteService;
|
||||
|
||||
/**
|
||||
* @author Bruno H. G. Gouvea <bruno@rjconsultores.com.br>
|
||||
|
@ -18,9 +33,79 @@ public class RelatorioResumoLinhas extends Relatorio {
|
|||
* @param parametros
|
||||
* @param conexao
|
||||
*/
|
||||
public RelatorioResumoLinhas(Map<String, Object> parametros, Connection conexao) {
|
||||
|
||||
private List<RelatorioResumoLinhasBean> lsDadosRelatorio;
|
||||
private static String CONSTANTE_GRATUIDADE_CRIANCA;
|
||||
|
||||
public RelatorioResumoLinhas(Map<String, Object> parametros, Connection conexao) throws Exception {
|
||||
super(parametros, conexao);
|
||||
// TODO Auto-generated constructor stub
|
||||
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<RelatorioResumoLinhasBean>();
|
||||
Set<RelatorioResumoLinhasBean> setDadosRelatorio = new HashSet<RelatorioResumoLinhasBean>();
|
||||
|
||||
RelatorioResumoLinhasBean relatorioBean = null;
|
||||
while (rset.next()) {
|
||||
relatorioBean = new RelatorioResumoLinhasBean();
|
||||
relatorioBean.setRUTA_ID(rset.getBigDecimal("RUTA_ID"));
|
||||
relatorioBean.setDESCRUTA(rset.getString("DESCRUTA"));
|
||||
relatorioBean.setROLOPERATIVO_ID(rset.getInt("ROLOPERATIVO_ID"));
|
||||
relatorioBean.setEXTENSAO_KM(rset.getBigDecimal("EXTENSAO_KM"));
|
||||
relatorioBean.setPASSAGEIROS(rset.getBigDecimal("PASSAGEIROS"));
|
||||
relatorioBean.setVIAGENS(rset.getBigDecimal("VIAGENS"));
|
||||
relatorioBean.setPAX_KM(rset.getBigDecimal("PAX_KM"));
|
||||
relatorioBean.setNUMRUTA(rset.getString("NUMRUTA"));
|
||||
relatorioBean.setINDSENTIDOIDA(rset.getInt("INDSENTIDOIDA"));
|
||||
relatorioBean.setFECCORRIDA(rset.getDate("FECCORRIDA"));
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -32,4 +117,90 @@ public class RelatorioResumoLinhas extends Relatorio {
|
|||
public void processaParametros() throws Exception {
|
||||
}
|
||||
|
||||
private String getSql(Integer rutaId, Integer grupoRutaId) {
|
||||
StringBuilder sqlSb = new StringBuilder();
|
||||
sqlSb.append(" SELECT TAB.*, ");
|
||||
sqlSb.append(" ROUND((SELECT SUM((DECODE(NVL(TR.CANTKMREAL,0), 0, 1, NVL(TR.CANTKMREAL,0)) / NVL(TAB.EXTENSAO_KM,0)) * COUNT(1)) ");
|
||||
sqlSb.append(" FROM CORRIDA CR, ");
|
||||
sqlSb.append(" CORRIDA_TRAMO CT, ");
|
||||
sqlSb.append(" TRAMO TR,");
|
||||
sqlSb.append(" BOLETO BO, ");
|
||||
sqlSb.append(" CORRIDA_TRAMO CTD, ");
|
||||
sqlSb.append(" CORRIDA_TRAMO CTO ");
|
||||
sqlSb.append(" WHERE 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.RUTA_ID = TAB.RUTA_ID ");
|
||||
sqlSb.append(" AND CR.ROLOPERATIVO_ID = TAB.ROLOPERATIVO_ID ");
|
||||
sqlSb.append(" AND CT.FECCORRIDA = CR.FECCORRIDA ");
|
||||
sqlSb.append(" AND CT.CORRIDA_ID = CR.CORRIDA_ID ");
|
||||
sqlSb.append(" AND CR.EMPRESACORRIDA_ID = :EMPRESA_ID ");
|
||||
sqlSb.append(" AND TR.TRAMO_ID = CT.TRAMO_ID ");
|
||||
sqlSb.append(" AND BO.FECCORRIDA = CT.FECCORRIDA ");
|
||||
sqlSb.append(" AND BO.ORIGEN_ID = CTO.ORIGEN_ID ");
|
||||
sqlSb.append(" AND BO.DESTINO_ID = CTD.DESTINO_ID ");
|
||||
sqlSb.append(" AND CTD.CORRIDA_ID = CT.CORRIDA_ID ");
|
||||
sqlSb.append(" AND BO.CORRIDA_ID = CT.CORRIDA_ID ");
|
||||
sqlSb.append(" AND CTD.FECCORRIDA = CT.FECCORRIDA ");
|
||||
sqlSb.append(" AND CTO.CORRIDA_ID = CT.CORRIDA_ID ");
|
||||
sqlSb.append(" AND CTO.FECCORRIDA = CT.FECCORRIDA ");
|
||||
sqlSb.append(" AND CTO.ACTIVO = 1 ");
|
||||
sqlSb.append(" AND CTD.ACTIVO = 1 ");
|
||||
sqlSb.append(" AND CT.NUMSECUENCIA BETWEEN CTO.NUMSECUENCIA AND CTD.NUMSECUENCIA ");
|
||||
sqlSb.append(" AND BO.ACTIVO = 1 ");
|
||||
sqlSb.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR ");
|
||||
sqlSb.append(" BO.MOTIVOCANCELACION_ID = 0 AND BO.CATEGORIA_ID <> :CRIANCA_ID) ");
|
||||
sqlSb.append(" GROUP BY CT.TRAMO_ID, TR.CANTKMREAL), 2) * TAB.EXTENSAO_KM PAX_KM ");
|
||||
sqlSb.append(" FROM (SELECT RT.INDSENTIDOIDA, CR.FECCORRIDA, ");
|
||||
sqlSb.append(" RT.RUTA_ID, ");
|
||||
sqlSb.append(" RT.NUMRUTA, ");
|
||||
sqlSb.append(" RT.DESCRUTA, ");
|
||||
sqlSb.append(" CR.ROLOPERATIVO_ID, ");
|
||||
if (parametros.get("SOMAR_KM_RODADOS_POR").equals("SEQUENCIA")) {
|
||||
sqlSb.append(" (SELECT SUM(NVL(RS.KMORIGINAL,0)) ");
|
||||
}else {
|
||||
sqlSb.append(" (SELECT SUM(NVL(TR.CANTKMREAL,0)) ");
|
||||
}
|
||||
sqlSb.append(" FROM RUTA_SECUENCIA RS, 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(" AND TR.ACTIVO =1 ");
|
||||
sqlSb.append(" ) EXTENSAO_KM,");
|
||||
sqlSb.append(" COUNT(1) PASSAGEIROS, ");
|
||||
sqlSb.append(" COUNT(DISTINCT CR.FECCORRIDA || CR.CORRIDA_ID) VIAGENS ");
|
||||
sqlSb.append(" FROM RUTA RT, BOLETO BL, CORRIDA CR ");
|
||||
sqlSb.append(" WHERE RT.RUTA_ID = CR.RUTA_ID ");
|
||||
sqlSb.append(" AND CR.FECCORRIDA = BL.FECCORRIDA ");
|
||||
sqlSb.append(" AND CR.CORRIDA_ID = BL.CORRIDA_ID ");
|
||||
sqlSb.append(" AND BL.MOTIVOCANCELACION_ID IS NULL ");
|
||||
sqlSb.append(" AND BL.INDSTATUSOPERACION = 'F' ");
|
||||
sqlSb.append(" AND BL.ACTIVO = 1 ");
|
||||
sqlSb.append(" AND CR.ACTIVO = 1 ");
|
||||
if(rutaId!=null) {
|
||||
sqlSb.append(" AND CR.RUTA_ID = :RUTA_ID ");
|
||||
}
|
||||
sqlSb.append(" AND CR.EMPRESACORRIDA_ID = :EMPRESA_ID ");
|
||||
if (grupoRutaId!=null) {
|
||||
sqlSb.append(" AND RT.GRUPORUTA_ID = :GRUPORUTA_ID ");
|
||||
}
|
||||
|
||||
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(" GROUP BY RT.INDSENTIDOIDA, CR.FECCORRIDA,");
|
||||
sqlSb.append(" RT.RUTA_ID, ");
|
||||
sqlSb.append(" RT.NUMRUTA, ");
|
||||
sqlSb.append(" RT.DESCRUTA, ");
|
||||
sqlSb.append(" CR.ROLOPERATIVO_ID) TAB ");
|
||||
sqlSb.append(" WHERE NVL(TAB.EXTENSAO_KM,0) != 0 ");
|
||||
return sqlSb.toString();
|
||||
|
||||
}
|
||||
|
||||
private String buscarConstante(String nomeConstante) {
|
||||
ConstanteService constanteService = (ConstanteService) AppContext.getApplicationContext().getBean("constanteService");
|
||||
return constanteService.buscarPorNomeConstante(nomeConstante).getValorconstante();
|
||||
}
|
||||
|
||||
public void setLsDadosRelatorio(List<RelatorioResumoLinhasBean> lsDadosRelatorio) {
|
||||
this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio));
|
||||
this.lsDadosRelatorio = lsDadosRelatorio;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,10 +3,25 @@
|
|||
*/
|
||||
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.RelatorioResumoLinhasBean;
|
||||
import com.rjconsultores.ventaboletos.service.ConstanteService;
|
||||
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 <bruno@rjconsultores.com.br>
|
||||
|
@ -18,9 +33,98 @@ public class RelatorioResumoLinhasAnalitico extends Relatorio {
|
|||
* @param parametros
|
||||
* @param conexao
|
||||
*/
|
||||
public RelatorioResumoLinhasAnalitico(Map<String, Object> parametros, Connection conexao) {
|
||||
|
||||
private List<RelatorioResumoLinhasBean> lsDadosRelatorio;
|
||||
private static String CONSTANTE_GRATUIDADE_CRIANCA;
|
||||
|
||||
public RelatorioResumoLinhasAnalitico(Map<String, Object> parametros, Connection conexao) throws Exception{
|
||||
super(parametros, conexao);
|
||||
// TODO Auto-generated constructor stub
|
||||
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<RelatorioResumoLinhasBean>();
|
||||
Set<RelatorioResumoLinhasBean> setDadosRelatorio = new HashSet<RelatorioResumoLinhasBean>();
|
||||
|
||||
RelatorioResumoLinhasBean relatorioBean = null;
|
||||
while (rset.next()) {
|
||||
|
||||
relatorioBean = new RelatorioResumoLinhasBean();
|
||||
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"));
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -32,4 +136,155 @@ public class RelatorioResumoLinhasAnalitico extends Relatorio {
|
|||
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,0)) AS PASSAGEIROS_EQUIVALENTE, ");
|
||||
sqlSb.append(" SUM(NVL(TAB.PAX_KM,0)) AS PAX_KM ");
|
||||
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, ROUND((BO.NUMKMVIAJE * COUNT(1) / ");
|
||||
sqlSb.append(" (SELECT SUM(NVL(TR.CANTKMREAL,0)) FROM RUTA_COMBINACION RS, TRAMO TR WHERE RS.RUTA_ID = CO.RUTA_ID AND RS.TRAMO_ID = TR.TRAMO_ID)), 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) PE ");
|
||||
sqlSb.append(" WHERE PE.FECCORRIDA = TAB1.FECCORRIDA 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(" 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, 'Não 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(" FROM RUTA RT, ");
|
||||
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(" 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 ");
|
||||
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(" GROUP BY CS.CVECLASE, ");
|
||||
sqlSb.append(" RT.RUTA_ID, ");
|
||||
sqlSb.append(" RT.NUMRUTA, ");
|
||||
sqlSb.append(" CR.FECCORRIDA, ");
|
||||
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) 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 ");
|
||||
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) 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<RelatorioResumoLinhasBean> 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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -428,7 +428,7 @@ public class RelatorioResumoLinhasAnaliticoSimplificadoSumarizado extends Relato
|
|||
//Ida
|
||||
if (!isMesmaLinhaIdaVolta) {
|
||||
relatorioBean = new RelatorioResumoLinhasBean();
|
||||
relatorioBean.setINDSENTIDOIDA(rset.getBigDecimal("INDSENTIDOIDA"));
|
||||
relatorioBean.setINDSENTIDOIDA(rset.getInt("INDSENTIDOIDA"));
|
||||
relatorioBean.setRUTA_ID(rset.getBigDecimal("RUTA_ID"));
|
||||
relatorioBean.setNUMRUTA(rset.getString("NUMRUTA"));
|
||||
relatorioBean.setPREFIXO(rset.getString("PREFIXO"));
|
||||
|
|
|
@ -336,7 +336,7 @@ public class RelatorioResumoLinhasAnaliticoSumarizado extends Relatorio {
|
|||
//Ida
|
||||
if (!isMesmaLinhaIdaVolta) {
|
||||
relatorioBean = new RelatorioResumoLinhasBean();
|
||||
relatorioBean.setINDSENTIDOIDA(rset.getBigDecimal("INDSENTIDOIDA"));
|
||||
relatorioBean.setINDSENTIDOIDA(rset.getInt("INDSENTIDOIDA"));
|
||||
relatorioBean.setRUTA_ID(rset.getBigDecimal("RUTA_ID"));
|
||||
relatorioBean.setNUMRUTA(rset.getString("NUMRUTA"));
|
||||
relatorioBean.setPREFIXO(rset.getString("PREFIXO"));
|
||||
|
|
Binary file not shown.
|
@ -39,75 +39,7 @@
|
|||
<parameter name="NOME_USUARIO" class="java.lang.String"/>
|
||||
<parameter name="CRIANCA_ID" class="java.lang.String"/>
|
||||
<parameter name="SQL_KM_RODADOS" class="java.lang.String"/>
|
||||
<queryString>
|
||||
<![CDATA[SELECT TAB.*,
|
||||
ROUND((SELECT SUM((DECODE(NVL(TR.CANTKMREAL,0), 0, 1, NVL(TR.CANTKMREAL,0)) /
|
||||
NVL(TAB.EXTENSAO_KM,0)) * COUNT(1))
|
||||
FROM CORRIDA CR,
|
||||
CORRIDA_TRAMO CT,
|
||||
TRAMO TR,
|
||||
BOLETO BO,
|
||||
CORRIDA_TRAMO CTD,
|
||||
CORRIDA_TRAMO CTO
|
||||
WHERE CR.FECCORRIDA BETWEEN $P{DATA_INICIAL} AND
|
||||
$P{DATA_FINAL}
|
||||
AND CR.RUTA_ID = TAB.RUTA_ID
|
||||
AND CR.ROLOPERATIVO_ID = TAB.ROLOPERATIVO_ID
|
||||
AND CT.FECCORRIDA = CR.FECCORRIDA
|
||||
AND CT.CORRIDA_ID = CR.CORRIDA_ID
|
||||
AND CR.EMPRESACORRIDA_ID = $P{EMPRESA_ID}
|
||||
AND TR.TRAMO_ID = CT.TRAMO_ID
|
||||
AND BO.CORRIDA_ID = CT.CORRIDA_ID
|
||||
AND BO.FECCORRIDA = CT.FECCORRIDA
|
||||
AND BO.ORIGEN_ID = CTO.ORIGEN_ID
|
||||
AND BO.DESTINO_ID = CTD.DESTINO_ID
|
||||
AND CTD.CORRIDA_ID = CT.CORRIDA_ID
|
||||
AND CTD.FECCORRIDA = CT.FECCORRIDA
|
||||
AND CTO.CORRIDA_ID = CT.CORRIDA_ID
|
||||
AND CTO.FECCORRIDA = CT.FECCORRIDA
|
||||
AND CTO.ACTIVO = 1
|
||||
AND CTD.ACTIVO = 1
|
||||
AND CT.NUMSECUENCIA BETWEEN CTO.NUMSECUENCIA AND
|
||||
CTD.NUMSECUENCIA
|
||||
AND BO.ACTIVO = 1
|
||||
AND (BO.MOTIVOCANCELACION_ID IS NULL OR
|
||||
BO.MOTIVOCANCELACION_ID = 0 AND BO.CATEGORIA_ID <> $P{CRIANCA_ID})
|
||||
GROUP BY CT.TRAMO_ID, TR.CANTKMREAL),
|
||||
2) * TAB.EXTENSAO_KM PAX_KM
|
||||
FROM (SELECT RT.INDSENTIDOIDA, CR.FECCORRIDA,
|
||||
RT.RUTA_ID,
|
||||
RT.NUMRUTA,
|
||||
RT.DESCRUTA,
|
||||
CR.ROLOPERATIVO_ID,
|
||||
(SELECT SUM(NVL( $P{SQL_KM_RODADOS} ,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
|
||||
AND TR.ACTIVO =1
|
||||
) EXTENSAO_KM,
|
||||
COUNT(1) PASSAGEIROS,
|
||||
COUNT(DISTINCT CR.FECCORRIDA || CR.CORRIDA_ID) VIAGENS
|
||||
FROM RUTA RT, BOLETO BL, CORRIDA CR
|
||||
WHERE RT.RUTA_ID = CR.RUTA_ID
|
||||
AND CR.FECCORRIDA = BL.FECCORRIDA
|
||||
AND CR.CORRIDA_ID = BL.CORRIDA_ID
|
||||
AND BL.MOTIVOCANCELACION_ID IS NULL
|
||||
AND BL.INDSTATUSOPERACION = 'F'
|
||||
AND BL.ACTIVO = 1
|
||||
AND CR.ACTIVO = 1
|
||||
AND CR.RUTA_ID = NVL($P{RUTA_ID}, CR.RUTA_ID)
|
||||
AND CR.EMPRESACORRIDA_ID = $P{EMPRESA_ID}
|
||||
AND DECODE($P{GRUPORUTA_ID}, NULL, 1, RT.GRUPORUTA_ID) = DECODE($P{GRUPORUTA_ID}, NULL, 1, $P{GRUPORUTA_ID})
|
||||
AND CR.FECCORRIDA BETWEEN $P{DATA_INICIAL} AND $P{DATA_FINAL}
|
||||
GROUP BY RT.INDSENTIDOIDA, CR.FECCORRIDA,
|
||||
RT.RUTA_ID,
|
||||
RT.NUMRUTA,
|
||||
RT.DESCRUTA,
|
||||
CR.ROLOPERATIVO_ID) TAB
|
||||
WHERE NVL(TAB.EXTENSAO_KM,0) != 0]]>
|
||||
</queryString>
|
||||
<field name="FECCORRIDA" class="java.sql.Timestamp"/>
|
||||
<field name="FECCORRIDA" class="java.util.Date"/>
|
||||
<field name="RUTA_ID" class="java.math.BigDecimal"/>
|
||||
<field name="DESCRUTA" class="java.lang.String"/>
|
||||
<field name="ROLOPERATIVO_ID" class="java.math.BigDecimal"/>
|
||||
|
|
Binary file not shown.
|
@ -37,152 +37,9 @@
|
|||
<parameter name="GRUPORUTA_ID" class="java.lang.Integer"/>
|
||||
<parameter name="NOME_USUARIO" class="java.lang.String"/>
|
||||
<parameter name="CRIANCA_ID" class="java.lang.String"/>
|
||||
<parameter name="SQL_KM_RODADOS" class="java.lang.String"/>
|
||||
<queryString>
|
||||
<![CDATA[SELECT SUB.*,
|
||||
(NVL(SUB.PASSAGEIROS,0) / DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0))) AS PASSAGEIROS_MPA,
|
||||
( ROUND(NVL(SUB.PASSAGEIROS,0), 2) / DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0))) AS PASSAGEIROS_MPE,
|
||||
(NVL(SUB.RECEITA_TOTAL,0) / DECODE(NVL(SUB.KM_RODADO,0), 0, 1, NVL(SUB.KM_RODADO,0))) RECEITA_KM,
|
||||
(NVL(SUB.RECEITA_TOTAL,0) / DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0))) AS RECEITA_VIAGEM,
|
||||
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,
|
||||
--(ROUND(NVL(SUB.PASSAGEIROS,0), 2) * NVL(SUB.EXTENSAO_KM,0)) AS PAX_KM,
|
||||
(NVL(SUB.ASSENTOS,0) * NVL(SUB.KM_RODADO,0)) AS PAX_OFERTADO,
|
||||
((((SUB.PAX_KM) / (NVL(SUB.ASSENTOS,0) * NVL(SUB.KM_RODADO,0)))) * 100) AS IAP
|
||||
--(((ROUND(NVL(SUB.PASSAGEIROS_EQUIVALENTE,0), 2) * NVL(SUB.EXTENSAO_KM,0)) / (NVL(SUB.ASSENTOS,0) * NVL(SUB.KM_RODADO,0)) ) * 100) AS IAP
|
||||
|
||||
FROM (
|
||||
|
||||
SELECT TAB.INDSENTIDOIDA, TAB.RUTA_ID, TAB.NUMRUTA, TAB.DESCRUTA, TAB.TARIFA, TAB.ASSENTOS, TAB.ROLOPERATIVO_ID,
|
||||
TAB.INTERESTADUAL, TAB.GRUPO_LINHA, TAB.EXTENSAO_KM, TAB.CVE_CLASE_SERVICIO,
|
||||
SUM(NVL(TAB.RECEITA_SEGURO,0)) AS RECEITA_SEGURO, SUM(NVL(TAB.RECEITA_BAGAGEM,0)) AS RECEITA_BAGAGEM,
|
||||
SUM(NVL(TAB.RECEITA_SEGURO_OUTROS,0)) AS RECEITA_SEGURO_OUTROS, SUM(NVL(TAB.RECEITA_TARIFA,0)) AS RECEITA_TARIFA,
|
||||
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,
|
||||
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,
|
||||
SUM(NVL(TAB.VIAGENS_TOTAL,0)) AS VIAGENS_TOTAL, SUM(NVL(TAB.KM_RODADO,0)) AS KM_RODADO, SUM(NVL(TAB.PASSAGEIROS,0)) AS PASSAGEIROS_EQUIVALENTE,
|
||||
SUM(NVL(TAB.PAX_KM,0)) AS PAX_KM
|
||||
|
||||
FROM (SELECT TAB1.*,
|
||||
(TAB1.RECEITA_TARIFA + RECEITA_SEGURO + RECEITA_EMBARQUE + RECEITA_PEDAGIO) RECEITA_TOTAL,
|
||||
(NVL(TAB1.VIAGENS,0) + NVL(TAB1.VIAGENS_EXTRA,0)) VIAGENS_TOTAL,
|
||||
((NVL(TAB1.VIAGENS,0) + NVL(TAB1.VIAGENS_EXTRA,0)) * NVL(TAB1.EXTENSAO_KM,0)) KM_RODADO,
|
||||
|
||||
TAB1.KM_REAL PAX_KM,
|
||||
|
||||
(SELECT SUM(NVL(PE.EQUIVALENTE,0))
|
||||
FROM (SELECT CO.FECCORRIDA, CO.RUTA_ID, BO.PRECIOBASE, ROUND((BO.NUMKMVIAJE * COUNT(1) /
|
||||
(SELECT SUM(NVL(TR.CANTKMREAL,0)) FROM RUTA_COMBINACION RS, TRAMO TR WHERE RS.RUTA_ID = CO.RUTA_ID AND RS.TRAMO_ID = TR.TRAMO_ID)), 2) EQUIVALENTE
|
||||
FROM CORRIDA CO, BOLETO BO
|
||||
WHERE CO.CORRIDA_ID = BO.CORRIDA_ID
|
||||
AND CO.FECCORRIDA = BO.FECCORRIDA
|
||||
AND BO.ACTIVO = 1
|
||||
AND (BO.MOTIVOCANCELACION_ID IS NULL OR BO.MOTIVOCANCELACION_ID = 0 AND BO.CATEGORIA_ID <> $P{CRIANCA_ID})
|
||||
GROUP BY CO.FECCORRIDA, CO.RUTA_ID, BO.PRECIOBASE, BO.NUMKMVIAJE) PE
|
||||
WHERE PE.FECCORRIDA = TAB1.FECCORRIDA AND PE.RUTA_ID = TAB1.RUTA_ID) PASSAGEIROS_EQUIVALENTE
|
||||
|
||||
FROM (SELECT RT.RUTA_ID,
|
||||
RT.INDSENTIDOIDA,
|
||||
RT.NUMRUTA,
|
||||
CR.FECCORRIDA,
|
||||
CONCAT(RT.DESCRUTA, CASE WHEN RT.INDSENTIDOIDA = 0 THEN ' - VOLTA' ELSE ' - IDA' END) DESCRUTA,
|
||||
TF.PRECIO TARIFA,
|
||||
DA.CANTASIENTOS ASSENTOS,
|
||||
RO.ROLOPERATIVO_ID,
|
||||
CASE WHEN CO.ESTADO_ID <> CD.ESTADO_ID THEN 'S' ELSE 'N' END INTERESTADUAL,
|
||||
NVL(GR.DESCGRUPO, 'Não Definido') GRUPO_LINHA,
|
||||
|
||||
$P{SQL_KM_RODADOS}
|
||||
|
||||
|
||||
SUM(NVL(BL.NUMKMVIAJE,0)) KM_REAL,
|
||||
|
||||
|
||||
NVL(SUM(NVL(BL.IMPORTESEGURO,0)), 0) RECEITA_SEGURO,
|
||||
0 RECEITA_BAGAGEM,
|
||||
0 RECEITA_SEGURO_OUTROS,
|
||||
SUM(NVL(BL.PRECIOPAGADO,0)) RECEITA_TARIFA,
|
||||
SUM(NVL(BL.IMPORTEPEDAGIO,0)) RECEITA_PEDAGIO,
|
||||
SUM(NVL(BL.IMPORTETAXAEMBARQUE,0)) RECEITA_EMBARQUE,
|
||||
COUNT(1) PASSAGEIROS,
|
||||
COUNT(DISTINCT CASE WHEN CR.TIPOSERVICIO_ID = 2 THEN CR.FECCORRIDA || CR.CORRIDA_ID ELSE NULL END) VIAGENS_EXTRA,
|
||||
COUNT(DISTINCT CASE WHEN CR.TIPOSERVICIO_ID <> 2 THEN CR.FECCORRIDA || CR.CORRIDA_ID ELSE NULL END) VIAGENS,
|
||||
NVL(CS.CVECLASE, ' ') CVE_CLASE_SERVICIO
|
||||
FROM RUTA RT,
|
||||
BOLETO BL,
|
||||
CORRIDA CR,
|
||||
TRAMO TR,
|
||||
ROL_OPERATIVO RO,
|
||||
DIAGRAMA_AUTOBUS DA,
|
||||
TARIFA TF,
|
||||
VIGENCIA_TARIFA VT,
|
||||
GRUPO_RUTA GR,
|
||||
PARADA PO,
|
||||
PARADA PD,
|
||||
CIUDAD CO,
|
||||
CIUDAD CD,
|
||||
CLASE_SERVICIO CS
|
||||
WHERE RT.RUTA_ID = CR.RUTA_ID
|
||||
AND CS.CLASESERVICIO_ID = RT.CLASESERVICIO_ID
|
||||
AND CR.FECCORRIDA = BL.FECCORRIDA
|
||||
AND CR.RUTA_ID = NVL($P{RUTA_ID}, CR.RUTA_ID)
|
||||
AND DECODE($P{GRUPORUTA_ID}, NULL, 1, RT.GRUPORUTA_ID) = DECODE($P{GRUPORUTA_ID}, NULL, 1, $P{GRUPORUTA_ID})
|
||||
AND CR.CORRIDA_ID = BL.CORRIDA_ID
|
||||
AND CR.EMPRESACORRIDA_ID = $P{EMPRESA_ID}
|
||||
AND CR.ORIGEN_ID = PO.PARADA_ID
|
||||
AND CR.DESTINO_ID = PD.PARADA_ID
|
||||
AND PO.CIUDAD_ID = CO.CIUDAD_ID
|
||||
AND PD.CIUDAD_ID = CD.CIUDAD_ID
|
||||
AND RT.GRUPORUTA_ID = GR.GRUPORUTA_ID(+)
|
||||
AND RO.ROLOPERATIVO_ID = CR.ROLOPERATIVO_ID
|
||||
AND RO.DIAGRAMAAUTOBUS_ID = DA.DIAGRAMAAUTOBUS_ID
|
||||
AND TF.CLASESERVICIO_ID = CR.CLASESERVICIO_ID
|
||||
AND TR.ORIGEN_ID = CR.ORIGEN_ID
|
||||
AND TR.DESTINO_ID = CR.DESTINO_ID
|
||||
AND TF.MARCA_ID = CR.MARCA_ID
|
||||
AND TF.RUTA_ID = CR.RUTA_ID
|
||||
AND TF.TRAMO_ID = TR.TRAMO_ID
|
||||
AND TF.STATUSTARIFA = 'A'
|
||||
AND TF.ACTIVO = 1
|
||||
AND BL.MOTIVOCANCELACION_ID IS NULL
|
||||
AND BL.INDSTATUSOPERACION = 'F'
|
||||
AND TF.VIGENCIATARIFA_ID = VT.VIGENCIATARIFA_ID
|
||||
AND VT.ACTIVO = 1
|
||||
AND BL.CATEGORIA_ID NOT IN (3, $P{CRIANCA_ID})
|
||||
AND CR.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND VT.FECFINVIGENCIA
|
||||
AND CR.FECCORRIDA BETWEEN $P{DATA_INICIAL} AND $P{DATA_FINAL}
|
||||
AND CR.ACTIVO = 1
|
||||
AND BL.ACTIVO = 1
|
||||
GROUP BY CS.CVECLASE,
|
||||
RT.RUTA_ID,
|
||||
RT.NUMRUTA,
|
||||
CR.FECCORRIDA,
|
||||
RT.DESCRUTA,
|
||||
TF.PRECIO,
|
||||
DA.CANTASIENTOS,
|
||||
RO.ROLOPERATIVO_ID,
|
||||
GR.DESCGRUPO,
|
||||
CO.ESTADO_ID,
|
||||
CD.ESTADO_ID,
|
||||
TR.CANTKMREAL,
|
||||
RT.INDSENTIDOIDA) TAB1
|
||||
GROUP BY TAB1.RUTA_ID,TAB1.INDSENTIDOIDA,TAB1.NUMRUTA,TAB1.FECCORRIDA,TAB1.DESCRUTA,
|
||||
TAB1.TARIFA,TAB1.ASSENTOS,TAB1.ROLOPERATIVO_ID,TAB1.INTERESTADUAL,
|
||||
TAB1.GRUPO_LINHA,TAB1.EXTENSAO_KM,TAB1.RECEITA_SEGURO,TAB1.RECEITA_BAGAGEM,
|
||||
TAB1.RECEITA_SEGURO_OUTROS,TAB1.RECEITA_TARIFA,TAB1.RECEITA_PEDAGIO,TAB1.RECEITA_EMBARQUE,
|
||||
TAB1.PASSAGEIROS,TAB1.VIAGENS_EXTRA,TAB1.VIAGENS,TAB1.CVE_CLASE_SERVICIO, TAB1.KM_REAL
|
||||
|
||||
) TAB
|
||||
GROUP BY TAB.RUTA_ID, TAB.NUMRUTA, TAB.DESCRUTA, TAB.TARIFA, TAB.ASSENTOS, TAB.ROLOPERATIVO_ID,
|
||||
TAB.INTERESTADUAL, TAB.GRUPO_LINHA, TAB.EXTENSAO_KM, TAB.CVE_CLASE_SERVICIO, TAB.INDSENTIDOIDA) SUB
|
||||
WHERE
|
||||
(DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0)
|
||||
AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0
|
||||
AND DECODE(NVL(SUB.KM_RODADO,0), 0, 1, NVL(SUB.KM_RODADO,0)) != 0
|
||||
AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0
|
||||
AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0
|
||||
AND DECODE(NVL(SUB.TARIFA,0), 0, 1, NVL(SUB.TARIFA,0)) != 0
|
||||
AND (NVL(SUB.ASSENTOS,0) * NVL(SUB.KM_RODADO,0)) != 0
|
||||
ORDER BY SUB.DESCRUTA, SUB.INDSENTIDOIDA, SUB.ASSENTOS, SUB.TARIFA]]>
|
||||
</queryString>
|
||||
<parameter name="SQL_KM_RODADOS" class="java.lang.String" isForPrompting="false">
|
||||
<defaultValueExpression><![CDATA[]]></defaultValueExpression>
|
||||
</parameter>
|
||||
<field name="RUTA_ID" class="java.math.BigDecimal"/>
|
||||
<field name="NUMRUTA" class="java.lang.String"/>
|
||||
<field name="DESCRUTA" class="java.lang.String"/>
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
package com.rjconsultores.ventaboletos.relatorios.utilitarios;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
public class RelatorioResumoLinhasBean implements Comparable<RelatorioResumoLinhasBean>{
|
||||
|
||||
private BigDecimal INDSENTIDOIDA;
|
||||
private int INDSENTIDOIDA;
|
||||
private BigDecimal RUTA_ID;
|
||||
private BigDecimal RUTA_ID_VOLTA;
|
||||
private String NUMRUTA;
|
||||
|
@ -37,6 +38,14 @@ public class RelatorioResumoLinhasBean implements Comparable<RelatorioResumoLinh
|
|||
private String DESC_CLASE_SERVICIO;
|
||||
private BigDecimal ASSENTOS;
|
||||
|
||||
private Integer ROLOPERATIVO_ID;
|
||||
private Date FECCORRIDA;
|
||||
private BigDecimal TARIFA;
|
||||
private BigDecimal EQ;
|
||||
private BigDecimal IAP;
|
||||
|
||||
|
||||
|
||||
public BigDecimal getRUTA_ID_VOLTA() {
|
||||
return RUTA_ID_VOLTA;
|
||||
}
|
||||
|
@ -261,11 +270,11 @@ public class RelatorioResumoLinhasBean implements Comparable<RelatorioResumoLinh
|
|||
PAX_OFERTADO = pAX_OFERTADO;
|
||||
}
|
||||
|
||||
public BigDecimal getINDSENTIDOIDA() {
|
||||
public int getINDSENTIDOIDA() {
|
||||
return INDSENTIDOIDA;
|
||||
}
|
||||
|
||||
public void setINDSENTIDOIDA(BigDecimal iNDSENTIDOIDA) {
|
||||
public void setINDSENTIDOIDA(int iNDSENTIDOIDA) {
|
||||
INDSENTIDOIDA = iNDSENTIDOIDA;
|
||||
}
|
||||
|
||||
|
@ -308,4 +317,44 @@ public class RelatorioResumoLinhasBean implements Comparable<RelatorioResumoLinh
|
|||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -146,19 +146,9 @@ public class RelatorioResumoLinhasController extends MyGenericForwardComposer {
|
|||
relatorio = new RelatorioResumoLinhasAnaliticoSimplificadoSumarizado(parametros, dataSourceRead.getConnection());
|
||||
tituloRelatorio = "relatorioResumoLinhasAnaliticoSumarizadoSimplificadoController.window.title";
|
||||
}else {
|
||||
if (rdSequencia.isChecked()){
|
||||
parametros.put("SQL_KM_RODADOS", " (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 {
|
||||
parametros.put("SQL_KM_RODADOS", " TR.CANTKMREAL AS EXTENSAO_KM, ");
|
||||
}
|
||||
relatorio = new RelatorioResumoLinhasAnalitico(parametros, dataSourceRead.getConnection());
|
||||
}
|
||||
}else {
|
||||
if (rdSequencia.isChecked()){
|
||||
parametros.put("SQL_KM_RODADOS", " RS.KMORIGINAL ");
|
||||
}else {
|
||||
parametros.put("SQL_KM_RODADOS", " TR.CANTKMREAL ");
|
||||
}
|
||||
relatorio = new RelatorioResumoLinhas(parametros, dataSourceRead.getConnection());
|
||||
}
|
||||
Map args = new HashMap();
|
||||
|
|
Loading…
Reference in New Issue