diff --git a/pom.xml b/pom.xml index f8a145437..a14b6d272 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.0.88 + 1.0.89 war diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorarioSimpData.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorarioSimpData.java new file mode 100644 index 000000000..cac534421 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorarioSimpData.java @@ -0,0 +1,658 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.zkoss.web.servlet.dsp.action.If; + +import com.rjconsultores.ventaboletos.entidad.Corrida; +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.GrupoRuta; +import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioLinhasHorarioBean; +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; + +@SuppressWarnings({"unused", "unchecked"}) +public class RelatorioLinhasHorarioSimpData extends Relatorio { + + private static Logger log = Logger.getLogger(RelatorioLinhasHorarioSimpData.class); + private List lsDadosRelatorio; + private static String CONSTANTE_GRATUIDADE_CRIANCA; + + public RelatorioLinhasHorarioSimpData(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new DataSource(this) { + @Override + public void initDados() throws Exception { + + CONSTANTE_GRATUIDADE_CRIANCA = buscarConstante("GRATUIDADE_CRIANCA"); + Connection conexao = this.relatorio.getConexao(); + Map parametros = this.relatorio.getParametros(); + + ArrayList lsNumLinha = (ArrayList) parametros.get("lsNumLinha"); + ArrayList lsNumServico = (ArrayList) parametros.get("lsNumServico"); + parametros.put("SERVICO_FILTRO", retornaFiltro(lsNumServico, null)); + parametros.put("LINHA_FILTRO", retornaFiltro(null, lsNumLinha)); + + Empresa empresa = (Empresa) parametros.get("EMPRESA"); + String corridaIds = "", rutaIds = ""; + GrupoRuta grupoRuta = (GrupoRuta) parametros.get("GRUPORUTA"); + Integer tipoServico = (Integer) parametros.get("TIPOSERVICIO_ID"); + if (lsNumServico != null && !lsNumServico.isEmpty()) { + corridaIds = retornaFiltro(lsNumServico, null); + } + if (lsNumLinha != null && !lsNumLinha.isEmpty()) { + rutaIds = retornaFiltro(null, lsNumLinha); + } + String sql = getSql(corridaIds, rutaIds, empresa, tipoServico, grupoRuta, (Boolean)parametros.get("ISSENTIDOIDA"), (Boolean)parametros.get("ISSENTIDOVOLTA")); + + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + ResultSet rset = null; + stmt.setString("CRIANCA_ID",CONSTANTE_GRATUIDADE_CRIANCA); + + if (empresa != null) { + stmt.setInt("EMPRESA_ID", empresa.getEmpresaId()); + } + if (parametros.get("HORA_INICIAL") == null) { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + if (parametros.get("DATA_INICIO") != null) { + Date dataInicio = (Date) parametros.get("DATA_INICIO"); + stmt.setString("DATA_INICIO", sdf.format(dataInicio)); + } + + if (parametros.get("DATA_FINAL") != null) { + Date dataFinal = (Date) parametros.get("DATA_FINAL"); + stmt.setString("DATA_FINAL", sdf.format(dataFinal)); + } + }else { + setaParametroDataHora(parametros, stmt); + } + if (grupoRuta != null) { + stmt.setInt("GRUPORUTA_ID", grupoRuta.getGrupoRutaId()); + } + if (tipoServico > 0) { + stmt.setInt("TIPOSERVICIO_ID", tipoServico); + } + + rset = stmt.executeQuery(); + + lsDadosRelatorio = new ArrayList(); + + BigDecimal totalPassagens = BigDecimal.ZERO; + BigDecimal totalSeguro = BigDecimal.ZERO; + BigDecimal totalBagagens = BigDecimal.ZERO; + BigDecimal totalSeuroOpcional = BigDecimal.ZERO; + BigDecimal totalTotal = BigDecimal.ZERO; + BigDecimal totalOrdinario = BigDecimal.ZERO; + BigDecimal totalExtra = BigDecimal.ZERO; + BigDecimal totalViagem = BigDecimal.ZERO; + BigDecimal totalKmRodado = BigDecimal.ZERO; + BigDecimal totalAbsoluto = BigDecimal.ZERO; + BigDecimal totalEquivalente = BigDecimal.ZERO; + BigDecimal mediaMPA = BigDecimal.ZERO; + BigDecimal mediaMPE = BigDecimal.ZERO; + BigDecimal mediaRsPorKm = BigDecimal.ZERO; + BigDecimal totalEQ = BigDecimal.ZERO; + BigDecimal mediaRSPorViagem = BigDecimal.ZERO; + BigDecimal totalPaxKMOfertado = BigDecimal.ZERO; + BigDecimal totalPaxKMTransportado = BigDecimal.ZERO; + BigDecimal totalIAP = BigDecimal.ZERO; + + BigDecimal totalTxEmbarque = BigDecimal.ZERO; + BigDecimal totalPedagio = BigDecimal.ZERO; + + String group = null; + while (rset.next()) { + RelatorioLinhasHorarioBean horarioBean = new RelatorioLinhasHorarioBean(); + + group = ((String) rset.getObject("GRUPO_RUTA")); + horarioBean.setGrupoRuta(group); + horarioBean.setTipoLinha((String) rset.getObject("TIPO_LINHA")); + horarioBean.setHora((String) rset.getObject("HORA")); + horarioBean.setDataCorrida((String) rset.getObject("DATA_CORRIDA")); + + horarioBean.setServico((BigDecimal) rset.getObject("SERVICO")); + + if (rset.getObject("SENTIDO") != null) { + horarioBean.convetSentido((BigDecimal) rset.getObject("SENTIDO")); + } else { + horarioBean.convetSentido(null); + } + + horarioBean.setLot((BigDecimal) rset.getObject("LOT")); + horarioBean.setCla((String) rset.getObject("CLA")); + horarioBean.setExtensao((BigDecimal) rset.getObject("EXTENSAO")); +// horarioBean.setTarifa((BigDecimal) rset.getObject("TARIFA")); + horarioBean.setPassagens((BigDecimal) rset.getObject("PASSAGENS")); + horarioBean.setSeguro((BigDecimal) rset.getObject("SEGURO")); + horarioBean.setBagagens((BigDecimal) rset.getObject("BAGAGENS")); + + horarioBean.setTxEmbarque((BigDecimal) rset.getObject("TX_EMBARQUE")); + horarioBean.setPedagio((BigDecimal) rset.getObject("PEDAGIO")); + + // Substituir a coluna Seg. Opcional por Tx. Embarque + horarioBean.setSegOpc(horarioBean.getTxEmbarque()); + + horarioBean.setOrd((BigDecimal) rset.getObject("ORD")); + horarioBean.setExtra((BigDecimal) rset.getObject("EXTRA")); + horarioBean.setAbsol((BigDecimal) rset.getObject("ABSOL")); + + horarioBean.setOrigem((String) rset.getObject("ORIGEM")); + horarioBean.setDestino((String) rset.getObject("DESTINO")); + horarioBean.setSomaExtensaoTrecho((BigDecimal) rset.getObject("EXTENSAO_TRECHO")); + horarioBean.setPaxKmTransportado((BigDecimal) rset.getObject("KM_REAL")); + horarioBean.setDescRuta((String) rset.getObject("DESCRUTA")); + horarioBean = trecho(horarioBean); + + horarioBean = calcTotal(horarioBean); + horarioBean = calcMediaReceitaTotal(horarioBean); + + horarioBean = calcTotalViagem(horarioBean); + horarioBean = calcKmRodado(horarioBean); + horarioBean = calcEquivalente(horarioBean); + horarioBean = calcMpa(horarioBean); + horarioBean = calcMpe(horarioBean); + horarioBean = calcRsKm(horarioBean); + horarioBean = calcEq(horarioBean); + horarioBean = calcRsViagem(horarioBean); + horarioBean = calcPaxKmOfertado(horarioBean); + horarioBean = calcIap(horarioBean); + + lsDadosRelatorio.add(horarioBean); + + totalPassagens = totalPassagens.add(horarioBean.getPassagens() != null ? horarioBean.getPassagens() : BigDecimal.ZERO); + totalSeguro = totalSeguro.add(horarioBean.getSeguro() != null ? horarioBean.getSeguro() : BigDecimal.ZERO); + totalBagagens = totalBagagens.add(horarioBean.getBagagens() != null ? horarioBean.getBagagens() : BigDecimal.ZERO); + totalSeuroOpcional = totalSeuroOpcional.add(horarioBean.getSegOpc() != null ? horarioBean.getSegOpc() : BigDecimal.ZERO); + totalTotal = totalTotal.add(horarioBean.getTotal() != null ? horarioBean.getTotal() : BigDecimal.ZERO); + totalOrdinario = totalOrdinario.add(horarioBean.getOrd() != null ? horarioBean.getOrd() : BigDecimal.ZERO); + totalExtra = totalExtra.add(horarioBean.getExtra() != null ? horarioBean.getExtra() : BigDecimal.ZERO); + totalViagem = totalViagem.add(horarioBean.getTotalViagem() != null ? horarioBean.getTotalViagem() : BigDecimal.ZERO); + totalKmRodado = totalKmRodado.add(horarioBean.getKmRodado() != null ? horarioBean.getKmRodado() : BigDecimal.ZERO); + totalAbsoluto = totalAbsoluto.add(horarioBean.getAbsol() != null ? horarioBean.getAbsol() : BigDecimal.ZERO); + totalEquivalente = totalEquivalente.add(horarioBean.getEquivalente() != null ? horarioBean.getEquivalente() : BigDecimal.ZERO); + + totalTxEmbarque = totalTxEmbarque.add(horarioBean.getTxEmbarque() != null ? horarioBean.getTxEmbarque() : BigDecimal.ZERO); + totalPedagio = totalPedagio.add(horarioBean.getPedagio() != null ? horarioBean.getPedagio() : BigDecimal.ZERO); + + mediaMPA = mediaMPA.add(horarioBean.getMpa() != null ? horarioBean.getMpa() : BigDecimal.ZERO); + mediaMPE = mediaMPE.add(horarioBean.getMpe() != null ? horarioBean.getMpe() : BigDecimal.ZERO); + + mediaRsPorKm = mediaRsPorKm.add(horarioBean.getRsKm() != null ? horarioBean.getRsKm() : BigDecimal.ZERO); + + totalEQ = totalEQ.add(horarioBean.getEq() != null ? horarioBean.getEq() : BigDecimal.ZERO); + + mediaRSPorViagem = mediaRSPorViagem.add(horarioBean.getRsViagem() != null ? horarioBean.getRsViagem() : BigDecimal.ZERO); + + totalPaxKMOfertado = totalPaxKMOfertado.add(horarioBean.getPaxKmOfertado() != null ? horarioBean.getPaxKmOfertado() : BigDecimal.ZERO); + totalPaxKMTransportado = totalPaxKMTransportado.add(horarioBean.getPaxKmTransportado() != null ? horarioBean.getPaxKmTransportado() : BigDecimal.ZERO); + + totalIAP = totalIAP.add(horarioBean.getIap()); + + } + + BigDecimal qtdeRegistros = new BigDecimal(lsDadosRelatorio.size()); + + if (lsDadosRelatorio.size() > 0) { + + setLsDadosRelatorio(lsDadosRelatorio); + parametros.put("TOTAL_PASSAGENS", totalPassagens); + parametros.put("TOTAL_SEGURO", totalSeguro); + parametros.put("TOTAL_BAGAGENS", totalBagagens); + parametros.put("TOTAL_SEURO_OPCIONAL", totalSeuroOpcional); + parametros.put("TOTAL_TOTAL", totalTotal); + parametros.put("TOTAL_ORDINARIO", totalOrdinario); + parametros.put("TOTAL_EXTRA", totalExtra); + parametros.put("TOTAL_VIAGEM", totalViagem); + parametros.put("TOTAL_KM_RODADO", totalKmRodado); + parametros.put("TOTAL_ABSOLUTO", totalAbsoluto); + parametros.put("TOTAL_EQUIVALENTE", totalEquivalente); + parametros.put("MEDIA_MPA", mediaMPA); + parametros.put("MEDIA_MPE", mediaMPE); + parametros.put("MEDIA_RS_POR_KM", mediaRsPorKm); + parametros.put("TOTAL_EQ", totalEQ); + parametros.put("TOTAL_TX_EMBARQUE", totalTxEmbarque); + parametros.put("TOTAL_PEDAGIO", totalPedagio); + parametros.put("MEDIA_RS_POR_VIAGEM", mediaRSPorViagem); + parametros.put("TOTAL_PAX_KM_OFERTADO", totalPaxKMOfertado); + parametros.put("TOTAL_PAX_KM_TRANSPORTADO", totalPaxKMTransportado); + parametros.put("TOTAL_IAP", totalIAP); + + } + } + + private String retornaFiltro(ArrayList lsNumServico, ArrayList lsNumLinha) { + String filtro = "TODOS"; + if (lsNumServico != null && !lsNumServico.isEmpty()) { + for (Corrida corrida : lsNumServico) { + if (lsNumServico.indexOf(corrida) == 0) { + filtro = "'" + corrida.getId().getCorridaId(); + } else { + filtro += "','" + corrida.getId().getCorridaId(); + } + } + return filtro.concat("'"); + } else if (lsNumLinha != null && !lsNumLinha.isEmpty()) { + for (Ruta ruta : lsNumLinha) { + if (lsNumLinha.indexOf(ruta) == 0) { + filtro = "'" + ruta.getRutaId(); + } else { + filtro += "','" + ruta.getRutaId(); + } + } + return filtro.concat("'"); + } else { + return filtro; + } + } + + }); + + } + + private void setaParametroDataHora(Map parametros, NamedParameterStatement stmt) throws SQLException { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + Calendar dataInicial = Calendar.getInstance(); + dataInicial.setTime((Date) parametros.get("DATA_INICIO")); + Calendar horaInicialCal = Calendar.getInstance(); + horaInicialCal.setTime((Date) parametros.get("HORA_INICIAL")); + mesclarDataHora(dataInicial, horaInicialCal); + stmt.setString("DATA_INICIO", sdf.format(dataInicial.getTime())); + if (parametros.get("HORA_FINAL") != null) { + Calendar dataFinal = Calendar.getInstance(); + dataFinal.setTime((Date) parametros.get("DATA_FINAL")); + Calendar horaFinalCal = Calendar.getInstance(); + horaFinalCal.setTime((Date) parametros.get("HORA_FINAL")); + mesclarDataHora(dataFinal, horaFinalCal); + stmt.setString("DATA_FINAL", sdf.format(dataFinal.getTime())); + }else { + Date dataFinal = (Date) parametros.get("DATA_FINAL"); + stmt.setString("DATA_FINAL", sdf.format(dataFinal)); + } + + } + + public List getLsDadosRelatorio() { + + return lsDadosRelatorio; + } + + public void setLsDadosRelatorio(List lsDadosRelatorio) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); + this.lsDadosRelatorio = lsDadosRelatorio; + } + + private RelatorioLinhasHorarioBean trecho(RelatorioLinhasHorarioBean horarioBean) { + horarioBean.setTrecho(horarioBean.getOrigem() + " - " + horarioBean.getDestino()); + return horarioBean; + } + + private RelatorioLinhasHorarioBean calcTotal(RelatorioLinhasHorarioBean horarioBean) { + BigDecimal total = horarioBean.getPassagens(); + total = total.add(horarioBean.getSeguro()); + horarioBean.setTotal(total); + return horarioBean; + } + + private RelatorioLinhasHorarioBean calcMediaReceitaTotal(RelatorioLinhasHorarioBean horarioBean) { + BigDecimal mediaTotal = horarioBean.getPassagens(); + horarioBean.setMediaReceitaViagem(mediaTotal); + return horarioBean; + } + + private RelatorioLinhasHorarioBean calcTotalViagem(RelatorioLinhasHorarioBean horarioBean) { + BigDecimal totalViagem = horarioBean.getOrd().add(horarioBean.getExtra()); + horarioBean.setTotalViagem(totalViagem); + return horarioBean; + } + + private RelatorioLinhasHorarioBean calcKmRodado(RelatorioLinhasHorarioBean horarioBean) { + BigDecimal kmRodado = horarioBean.getTotalViagem().multiply(horarioBean.getExtensao()); + horarioBean.setKmRodado(kmRodado); + return horarioBean; + } + + private RelatorioLinhasHorarioBean calcEquivalente(RelatorioLinhasHorarioBean horarioBean) { + BigDecimal equivalente = new BigDecimal(0); + try { + equivalente = horarioBean.getSomaExtensaoTrecho().divide(horarioBean.getExtensao(), 2, RoundingMode.HALF_UP); + } catch (ArithmeticException e) { + equivalente = BigDecimal.ZERO; + } catch (NullPointerException nex) { + equivalente = BigDecimal.ZERO; + } catch (Exception ex) { + log.error("", ex); + } + horarioBean.setEquivalente(equivalente); + + return horarioBean; + } + + private RelatorioLinhasHorarioBean calcMpa(RelatorioLinhasHorarioBean horarioBean) { + BigDecimal mpa = new BigDecimal(0); + try { + mpa = horarioBean.getAbsol().divide(horarioBean.getTotalViagem(), 2, 4); + } catch (ArithmeticException e) { + mpa = BigDecimal.ZERO; + } catch (NullPointerException nex) { + mpa = BigDecimal.ZERO; + } catch (Exception ex) { + log.error("", ex); + } + horarioBean.setMpa(mpa); + return horarioBean; + } + + private RelatorioLinhasHorarioBean calcMpe(RelatorioLinhasHorarioBean horarioBean) { + BigDecimal mpe = horarioBean.getEquivalente().divide(horarioBean.getTotalViagem(), 2, 4); + horarioBean.setMpe(mpe); + return horarioBean; + } + + private RelatorioLinhasHorarioBean calcRsKm(RelatorioLinhasHorarioBean horarioBean) { + BigDecimal rsKm = horarioBean.getTotal().divide(horarioBean.getKmRodado(), 2, 4); + horarioBean.setRsKm(rsKm); + return horarioBean; + } + + private RelatorioLinhasHorarioBean calcEq(RelatorioLinhasHorarioBean horarioBean) { + BigDecimal eq = null; + try { + eq = horarioBean.getMediaReceitaViagem().divide(horarioBean.getTarifa(), 2, 4); + } catch (ArithmeticException e) { + eq = BigDecimal.ZERO; + } catch (NullPointerException nex) { + eq = BigDecimal.ZERO; + } catch (Exception ex) { + log.error("", ex); + } + horarioBean.setEq(eq); + return horarioBean; + } + + private RelatorioLinhasHorarioBean calcRsViagem(RelatorioLinhasHorarioBean horarioBean) { + BigDecimal RSViagem = horarioBean.getPassagens().divide(horarioBean.getTotalViagem(), 2, 4); + horarioBean.setRsViagem(RSViagem); + return horarioBean; + } + + private RelatorioLinhasHorarioBean calcPaxKmOfertado(RelatorioLinhasHorarioBean horarioBean) { + BigDecimal paxKmOfertado = horarioBean.getLot().multiply(horarioBean.getTotalViagem()); + paxKmOfertado = paxKmOfertado.multiply(horarioBean.getExtensao()); + horarioBean.setPaxKmOfertado(paxKmOfertado); + return horarioBean; + } + + private RelatorioLinhasHorarioBean calcIap(RelatorioLinhasHorarioBean horarioBean) { + BigDecimal iap = null; + BigDecimal CENTO = BigDecimal.TEN.multiply(BigDecimal.TEN); + try { + iap = (horarioBean.getPaxKmTransportado().multiply(CENTO)).divide(horarioBean.getPaxKmOfertado(), 2, 4); + } catch (ArithmeticException e) { + iap = BigDecimal.ZERO; + } catch (NullPointerException nex) { + iap = BigDecimal.ZERO; + } catch (Exception ex) { + log.error("", ex); + } + horarioBean.setIap(iap); + return horarioBean; + } + + private BigDecimal calcTotalIap(BigDecimal totalPaxKMTransportado, BigDecimal totalPaxKMOfertado) { + BigDecimal iap = null; + BigDecimal CENTO = BigDecimal.TEN.multiply(BigDecimal.TEN); + try { + iap = (totalPaxKMTransportado.multiply(CENTO)).divide(totalPaxKMOfertado, 2, 4); + } catch (ArithmeticException e) { + iap = BigDecimal.ZERO; + } catch (NullPointerException nex) { + iap = BigDecimal.ZERO; + } catch (Exception ex) { + log.error("", ex); + } + return iap; + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSql(String corridaIds, String rutaIds, Empresa empresa, Integer tipoServico, + GrupoRuta grupoRuta, Boolean isSentidoIda, Boolean isSentidoVolta) { + + StringBuilder sql = new StringBuilder(); + sql.append(" SELECT "); + sql.append(" GRUPO_RUTA, "); + sql.append(" HORA, "); + sql.append(" DATA_CORRIDA,"); + sql.append(" DESCRUTA, "); + sql.append(" SERVICO, "); + sql.append(" SENTIDO , "); + sql.append(" LOT, "); + sql.append(" CLA, "); + sql.append(" ORIGEM, "); + sql.append(" DESTINO, "); + sql.append(" EXTENSAO, "); + sql.append(" COALESCE(SUM(EQUIVALENTE * EXTENSAO) ,0) AS EXTENSAO_TRECHO, "); + sql.append(" COALESCE(BAGAGENS, 0) AS BAGAGENS, "); + sql.append(" COALESCE(SUM(SEGURO), 0) AS SEGURO, "); + sql.append(" COALESCE(SUM(TX_EMBARQUE), 0) AS TX_EMBARQUE, "); + sql.append(" COALESCE(SUM(PEDAGIO), 0) AS PEDAGIO, "); + sql.append(" COALESCE(SUM(PASSAGENS), 0) AS PASSAGENS, "); + sql.append(" ORD, "); + sql.append(" EXTRA, "); + sql.append(" TIPO_LINHA, "); + sql.append(" ABSOL, "); + sql.append(" COALESCE(SUM(KM_REAL), 0) AS KM_REAL "); + sql.append(" FROM "); + sql.append(" (SELECT "); + sql.append(" R.RUTA_ID, "); + sql.append(" R.DESCRUTA AS DESCRUTA, "); + sql.append(" NVL(GR.DESCGRUPO, 'Não Definido') AS GRUPO_RUTA, "); + sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI') AS HORA, "); + sql.append(" TO_CHAR(C.feccorrida,'dd/mm/yyyy') AS DATA_CORRIDA, "); + sql.append(" C.CORRIDA_ID AS SERVICO, "); + sql.append(" R.INDSENTIDOIDA AS SENTIDO, "); + sql.append(" DA.CANTASIENTOS AS LOT, "); + sql.append(" NVL(CS.DESCCLASE, '') AS CLA, "); + sql.append(" MAX(NVL(TF.PRECIOORIGINAL, 0)) AS TARIFA, "); + sql.append(" ORIGEM.CVEPARADA AS ORIGEM, "); + sql.append(" DESTINO.CVEPARADA AS DESTINO, "); + sql.append(" EXTENSAO AS EXTENSAO, "); + sql.append(" CJ.EQUIVALENTE AS EQUIVALENTE, "); + sql.append(" SUM(EE.IMPINGRESO) AS BAGAGENS, "); + sql.append(" CJ.IMPORTESEGURO AS SEGURO, "); + sql.append(" CJ.IMPORTETAXAEMBARQUE AS TX_EMBARQUE, "); + sql.append(" CJ.IMPORTEPEDAGIO AS PEDAGIO, "); + sql.append(" CJ.PRECIOPAGADO AS PASSAGENS, "); + sql.append(" CJ.BOLETO_ID, "); + sql.append(" TB2.ORD, "); + sql.append(" TB2.EXTRA, "); + sql.append(" CASE WHEN CO.ESTADO_ID <> CD.ESTADO_ID THEN 'INTERESTADUAL' ELSE 'INTERMUNICIPAL' END TIPO_LINHA, "); + sql.append(" ABSOL, "); + sql.append(" CJ.KM_REAL AS KM_REAL "); + sql.append(" FROM CORRIDA C "); + sql.append(" INNER JOIN ("); + sql.append(" SELECT "); + sql.append(" C.CORRIDA_ID, "); + sql.append(" C.ruta_id as c_ruta_id, "); + sql.append(" Destino.Cveparada AS DESTINO, "); + sql.append(" ORIGEM.CVEPARADA AS ORIGEM, "); + sql.append(" C.ROLOPERATIVO_ID, "); + sql.append(" C.feccorrida, "); + sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI') AS HORASALIDA, "); + sql.append(" COUNT(CASE WHEN C.TIPOSERVICIO_ID = 1 THEN 1 ELSE NULL END) AS ORD, "); + sql.append(" COUNT(CASE WHEN C.TIPOSERVICIO_ID = 2 THEN 1 ELSE NULL END) AS EXTRA "); + sql.append(" FROM CORRIDA C "); + sql.append(" INNER JOIN PARADA ORIGEM ON C.Origen_Id = ORIGEM.PARADA_ID "); + sql.append(" INNER JOIN PARADA DESTINO ON C.DESTINO_ID = DESTINO.PARADA_ID "); + + sql.append(empresa == null ? "" : " INNER JOIN MARCA M ON (C.MARCA_ID = M.MARCA_ID AND M.EMPRESA_ID= :EMPRESA_ID)"); + + sql.append(" WHERE "); + sql.append(" EXISTS (SELECT * FROM CAJA CA WHERE CA.CORRIDA_ID = C.CORRIDA_ID AND CA.FECCORRIDA = C.FECCORRIDA AND CA.MOTIVOCANCELACION_ID IS NULL) "); + sql.append(" AND C.FECCORRIDA BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY hh24:mi:ss') "); + sql.append(" GROUP BY C.CORRIDA_ID, "); + sql.append(" C.ROLOPERATIVO_ID, "); + sql.append(" C.ruta_id, "); + sql.append(" Destino.Cveparada, "); + sql.append(" ORIGEM.CVEPARADA, "); + sql.append(" C.feccorrida, "); + sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI') "); + sql.append(" ) TB2 ON ((TB2.CORRIDA_ID = C.CORRIDA_ID and tb2.c_ruta_id = c.ruta_id ) "); + sql.append(" AND TB2.ROLOPERATIVO_ID = C.ROLOPERATIVO_ID "); + sql.append(" AND TB2.feccorrida = c.feccorrida "); + sql.append(" AND TB2.HORASALIDA = TO_CHAR(C.FECHORSALIDA, 'HH24:MI')) "); + + sql.append(" INNER JOIN ("); + sql.append(" SELECT "); + sql.append(" C.CORRIDA_ID, "); + sql.append(" c.ruta_id as c_ruta_id, "); + sql.append(" C.ROLOPERATIVO_ID, "); + sql.append(" C.DESTINO_ID, "); + sql.append(" C.ORIGEN_ID, "); + sql.append(" C.feccorrida, "); + sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI') AS HORASALIDA, "); + sql.append(" COUNT(b.boleto_id) AS ABSOL "); + sql.append(" FROM CORRIDA C "); + + sql.append(empresa == null ? "" : " INNER JOIN MARCA M ON (C.MARCA_ID = M.MARCA_ID AND M.EMPRESA_ID= :EMPRESA_ID)"); + + sql.append(" LEFT JOIN BOLETO B ON (B.CORRIDA_ID = C.CORRIDA_ID AND B.FECCORRIDA = C.FECCORRIDA AND B.ACTIVO = 1 AND B.MOTIVOCANCELACION_ID IS NULL "); + sql.append(" AND B.CATEGORIA_ID <> :CRIANCA_ID ) "); + sql.append(" WHERE C.ACTIVO NOT IN (0,2) "); + sql.append(" AND C.FECCORRIDA BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY hh24:mi:ss') "); + + sql.append(corridaIds.isEmpty() ? "" : " AND B.CORRIDA_ID IN ("+corridaIds+") "); + + sql.append(" GROUP BY C.CORRIDA_ID, C.ruta_id, C.ROLOPERATIVO_ID, C.DESTINO_ID, C.feccorrida, C.ORIGEN_ID, TO_CHAR(C.FECHORSALIDA, 'HH24:MI') "); + sql.append(" ) TB4 ON ((TB4.CORRIDA_ID = C.CORRIDA_ID and tb4.c_ruta_id = c.ruta_id) "); + sql.append(" AND c.DESTINO_ID = TB4.DESTINO_ID "); + sql.append(" AND c.ORIGEN_ID = TB4.ORIGEN_ID "); + sql.append(" AND TB4.ROLOPERATIVO_ID = C.ROLOPERATIVO_ID "); + sql.append(" AND TB4.feccorrida = c.feccorrida "); + sql.append(" AND TB4.HORASALIDA = TO_CHAR(C.FECHORSALIDA, 'HH24:MI')) "); + + sql.append("LEFT JOIN "); + sql.append(" (SELECT CO.FECCORRIDA, "); + sql.append(" CO.CORRIDA_ID, "); + sql.append(" CO.ROLOPERATIVO_ID, "); + sql.append(" CO.RUTA_ID, "); + sql.append(" CO.EMPRESACORRIDA_ID, "); + sql.append(" BO.BOLETO_ID, "); + sql.append(" BO.NUMKMVIAJE * COUNT(1) AS KM_REAL, "); + sql.append(" CASE "); + sql.append(" WHEN T.CANTKMREAL<>0 AND BO.NUMKMVIAJE<>0 "); + sql.append(" THEN ROUND(BO.NUMKMVIAJE * COUNT(1) / T.CANTKMREAL, 3) "); + sql.append(" ELSE 0 "); + sql.append(" END AS EQUIVALENTE, "); + sql.append(" NVL(BO.IMPORTESEGURO, 0) AS IMPORTESEGURO, "); + sql.append(" NVL(BO.IMPORTETAXAEMBARQUE, 0) AS IMPORTETAXAEMBARQUE, "); + sql.append(" NVL(BO.IMPORTEPEDAGIO, 0) AS IMPORTEPEDAGIO, "); + sql.append(" NVL(BO.PRECIOPAGADO, 0) AS PRECIOPAGADO "); + sql.append(" FROM CORRIDA CO "); + sql.append(empresa == null ? "" : " INNER JOIN MARCA M ON (CO.MARCA_ID = M.MARCA_ID AND M.EMPRESA_ID= :EMPRESA_ID)"); + sql.append(" INNER JOIN BOLETO BO ON CO.CORRIDA_ID = BO.CORRIDA_ID AND CO.FECCORRIDA = BO.FECCORRIDA AND BO.ACTIVO = 1 "); + sql.append(" INNER JOIN RUTA_COMBINACION RC ON RC.RUTA_ID = CO.RUTA_ID "); + sql.append(" INNER JOIN TRAMO T ON RC.TRAMO_ID = T.TRAMO_ID AND T.ORIGEN_ID = BO.ORIGEN_ID AND T.DESTINO_ID = BO.DESTINO_ID "); + sql.append(" WHERE CO.ACTIVO NOT IN (0,2) "); + sql.append(" AND RC.ACTIVO = 1"); + sql.append(" AND T.ACTIVO = 1"); + sql.append(" AND BO.INDSTATUSBOLETO != 'S' AND BO.MOTIVOCANCELACION_ID IS NULL "); + sql.append(" AND BO.CATEGORIA_ID <> :CRIANCA_ID"); + sql.append(" AND BO.FECCORRIDA BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY hh24:mi:ss') "); + + sql.append(corridaIds.isEmpty() ? "" : " AND BO.CORRIDA_ID IN ("+corridaIds+") "); + + sql.append(" GROUP BY CO.FECCORRIDA, CO.CORRIDA_ID, CO.ROLOPERATIVO_ID, CO.RUTA_ID, CO.EMPRESACORRIDA_ID, BO.NUMKMVIAJE, BO.BOLETO_ID, T.CANTKMREAL, "); + sql.append(" NVL(BO.IMPORTESEGURO, 0), NVL(BO.IMPORTETAXAEMBARQUE, 0), NVL(BO.IMPORTEPEDAGIO, 0), NVL(BO.PRECIOPAGADO, 0) "); + sql.append(" ) CJ ON (CJ.CORRIDA_ID = C.CORRIDA_ID AND CJ.FECCORRIDA = C.FECCORRIDA AND CJ.ROLOPERATIVO_ID = C.ROLOPERATIVO_ID "); + sql.append(" AND CJ.RUTA_ID = C.RUTA_ID AND CJ.EMPRESACORRIDA_ID = C.EMPRESACORRIDA_ID) "); + sql.append("INNER JOIN PARADA ORIGEM ON (C.ORIGEN_ID = ORIGEM.PARADA_ID ) "); + sql.append("INNER JOIN PARADA DESTINO ON ( C.DESTINO_ID = DESTINO.PARADA_ID ) "); + sql.append("INNER JOIN CIUDAD CO ON (CO.CIUDAD_ID = ORIGEM.CIUDAD_ID ) "); + sql.append("INNER JOIN CIUDAD CD ON (CD.CIUDAD_ID = DESTINO.CIUDAD_ID ) "); + sql.append("INNER JOIN RUTA R ON (C.RUTA_ID = R.RUTA_ID ) "); + sql.append("LEFT JOIN GRUPO_RUTA GR ON (R.GRUPORUTA_ID = GR.GRUPORUTA_ID ) "); + sql.append("LEFT JOIN ROL_OPERATIVO RO ON (C.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID ) "); + sql.append("LEFT JOIN DIAGRAMA_AUTOBUS DA ON (DA.DIAGRAMAAUTOBUS_ID = RO.DIAGRAMAAUTOBUS_ID ) "); + sql.append("LEFT JOIN CLASE_SERVICIO CS ON (CS.CLASESERVICIO_ID = C.CLASESERVICIO_ID ) "); + sql.append("LEFT JOIN EVENTO_EXTRA EE ON (EE.CORRIDA_ID = C.CORRIDA_ID AND EE.FECCORRIDA = C.FECCORRIDA AND EE.TIPOEVENTOEXTRA_ID = 1 ) "); + sql.append("LEFT JOIN TARIFA TF ON (TF.CLASESERVICIO_ID = C.CLASESERVICIO_ID AND TF.DESTINO_ID = C.DESTINO_ID AND TF.ORIGEN_ID = C.ORIGEN_ID AND TF.MARCA_ID = C.MARCA_ID AND TF.RUTA_ID = C.RUTA_ID AND R.ORGAOCONCEDENTE_ID= TF.ORGAOCONCEDENTE_ID) "); + sql.append("LEFT JOIN VIGENCIA_TARIFA VTF ON (TF.VIGENCIATARIFA_ID = VTF.VIGENCIATARIFA_ID ) "); + sql.append("INNER JOIN "); + sql.append("( "); + sql.append("SELECT RC.RUTA_ID, T.ORIGEN_ID, T.DESTINO_ID, NVL(T.CANTKMREAL,0) AS EXTENSAO "); + sql.append("FROM RUTA_COMBINACION RC "); + sql.append("INNER JOIN TRAMO T ON RC.TRAMO_ID = T.TRAMO_ID "); + sql.append("WHERE RC.ACTIVO = 1 "); + sql.append(") TB5 ON (TB5.RUTA_ID = C.RUTA_ID "); + sql.append("AND TB5.ORIGEN_ID = ORIGEM.PARADA_ID "); + sql.append("AND TB5.DESTINO_ID = DESTINO.PARADA_ID) "); + sql.append(" WHERE C.FECCORRIDA BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY hh24:mi:ss') "); + sql.append(" AND (TF.TARIFA_ID IS NULL OR (TF.TARIFA_ID IS NOT NULL AND C.FECCORRIDA BETWEEN VTF.FECINICIOVIGENCIA AND VTF.FECFINVIGENCIA )) "); + sql.append(" "); + + sql.append(corridaIds.isEmpty() ? "" : " AND C.CORRIDA_ID IN ("+corridaIds+") "); + sql.append(grupoRuta == null ? "" : " AND R.GRUPORUTA_ID IN (:GRUPORUTA_ID) "); + sql.append(rutaIds.isEmpty() ? "" : " AND R.RUTA_ID IN ("+rutaIds+") "); + sql.append(tipoServico == 0 ? "" : " AND C.TIPOSERVICIO_ID = :TIPOSERVICIO_ID" ); + + if(Boolean.TRUE.equals(isSentidoIda)) { + sql.append(" AND R.INDSENTIDOIDA =1 "); + } + + if(Boolean.TRUE.equals(isSentidoVolta)) { + sql.append(" AND R.INDSENTIDOIDA = 0 "); + } + + sql.append(" AND C.ACTIVO <> 0 AND ORIGEM.ACTIVO = 1 AND DESTINO.ACTIVO = 1 AND TB2.ORIGEM = ORIGEM.CVEPARADA AND TB2.DESTINO = DESTINO.CVEPARADA "); + sql.append("AND R.ACTIVO = 1 AND RO.ACTIVO = 1 AND DA.ACTIVO = 1 AND CS.ACTIVO = 1 AND (cj.boleto_id is not null ) "); + sql.append("GROUP BY R.RUTA_ID, R.DESCRUTA, NVL(GR.DESCGRUPO, 'Não Definido'), TO_CHAR(C.FECHORSALIDA, 'HH24:MI'),"); + sql.append(" TO_CHAR(C.feccorrida ,'dd/mm/yyyy'), "); + sql.append(" C.CORRIDA_ID, R.INDSENTIDOIDA, "); + sql.append(" DA.CANTASIENTOS, CS.DESCCLASE, TB5.EXTENSAO, TB2.ORD, TB2.EXTRA, ABSOL, "); + sql.append(" CO.ESTADO_ID, CD.ESTADO_ID, ORIGEM.CVEPARADA, DESTINO.CVEPARADA, CJ.PRECIOPAGADO, "); + sql.append(" CJ.IMPORTESEGURO, CJ.IMPORTETAXAEMBARQUE, CJ.IMPORTEPEDAGIO, "); + sql.append(" CJ.EQUIVALENTE, CJ.KM_REAL , CJ.BOLETO_ID ) "); + sql.append("GROUP BY GRUPO_RUTA, HORA, "); + sql.append(" DATA_CORRIDA, "); + sql.append(" DESCRUTA, SERVICO, SENTIDO, LOT, CLA, ORIGEM, DESTINO, "); + sql.append(" EXTENSAO, BAGAGENS, ORD, EXTRA, TIPO_LINHA, ABSOL "); + sql.append("ORDER BY TIPO_LINHA, GRUPO_RUTA, DESCRUTA, SERVICO, ORIGEM, DESTINO "); + + return sql.toString(); + } + + + private String buscarConstante(String nomeConstante) { + ConstanteService constanteService = (ConstanteService) AppContext.getApplicationContext().getBean("constanteService"); + return constanteService.buscarPorNomeConstante(nomeConstante).getValorconstante(); + } + + protected void mesclarDataHora(Calendar pData, Calendar pHora) { + pData.set(Calendar.HOUR_OF_DAY, pHora.get(Calendar.HOUR_OF_DAY)); + pData.set(Calendar.MINUTE, pHora.get(Calendar.MINUTE)); + pData.set(Calendar.SECOND, pHora.get(Calendar.SECOND)); + + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorarioSimplificado.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorarioSimplificado.java index f01805ace..3a2494624 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorarioSimplificado.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorarioSimplificado.java @@ -56,14 +56,13 @@ public class RelatorioLinhasHorarioSimplificado extends Relatorio { String corridaIds = "", rutaIds = ""; GrupoRuta grupoRuta = (GrupoRuta) parametros.get("GRUPORUTA"); Integer tipoServico = (Integer) parametros.get("TIPOSERVICIO_ID"); - Boolean isPorData = parametros.get("ISPORDATA") == null ? false : (Boolean) parametros.get("ISPORDATA"); if (lsNumServico != null && !lsNumServico.isEmpty()) { corridaIds = retornaFiltro(lsNumServico, null); } if (lsNumLinha != null && !lsNumLinha.isEmpty()) { rutaIds = retornaFiltro(null, lsNumLinha); } - String sql = getSql(corridaIds, rutaIds, empresa, tipoServico, grupoRuta, (Boolean)parametros.get("ISSENTIDOIDA"), (Boolean)parametros.get("ISSENTIDOVOLTA"), isPorData); + String sql = getSql(corridaIds, rutaIds, empresa, tipoServico, grupoRuta, (Boolean)parametros.get("ISSENTIDOIDA"), (Boolean)parametros.get("ISSENTIDOVOLTA")); NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); ResultSet rset = null; @@ -128,9 +127,6 @@ public class RelatorioLinhasHorarioSimplificado extends Relatorio { horarioBean.setGrupoRuta(group); horarioBean.setTipoLinha((String) rset.getObject("TIPO_LINHA")); horarioBean.setHora((String) rset.getObject("HORA")); - if(isPorData) { - horarioBean.setDataCorrida((String) rset.getObject("DATA_CORRIDA")); - } horarioBean.setServico((BigDecimal) rset.getObject("SERVICO")); if (rset.getObject("SENTIDO") != null) { @@ -439,13 +435,12 @@ public class RelatorioLinhasHorarioSimplificado extends Relatorio { } private String getSql(String corridaIds, String rutaIds, Empresa empresa, Integer tipoServico, - GrupoRuta grupoRuta, Boolean isSentidoIda, Boolean isSentidoVolta, Boolean isPorData) { + GrupoRuta grupoRuta, Boolean isSentidoIda, Boolean isSentidoVolta) { StringBuilder sql = new StringBuilder(); sql.append(" SELECT "); sql.append(" GRUPO_RUTA, "); sql.append(" HORA, "); - sql.append(isPorData ? " DATA_CORRIDA," : ""); sql.append(" DESCRUTA, "); sql.append(" SERVICO, "); sql.append(" SENTIDO , "); @@ -471,7 +466,6 @@ public class RelatorioLinhasHorarioSimplificado extends Relatorio { sql.append(" R.DESCRUTA AS DESCRUTA, "); sql.append(" NVL(GR.DESCGRUPO, 'Não Definido') AS GRUPO_RUTA, "); sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI') AS HORA, "); - sql.append(isPorData ? " TO_CHAR(C.feccorrida,'dd/mm/yyyy') AS DATA_CORRIDA, " : ""); sql.append(" C.CORRIDA_ID AS SERVICO, "); sql.append(" R.INDSENTIDOIDA AS SENTIDO, "); sql.append(" DA.CANTASIENTOS AS LOT, "); @@ -623,16 +617,14 @@ public class RelatorioLinhasHorarioSimplificado extends Relatorio { } sql.append(" AND C.ACTIVO <> 0 AND ORIGEM.ACTIVO = 1 AND DESTINO.ACTIVO = 1 AND TB2.ORIGEM = ORIGEM.CVEPARADA AND TB2.DESTINO = DESTINO.CVEPARADA "); - sql.append("AND R.ACTIVO = 1 AND RO.ACTIVO = 1 AND DA.ACTIVO = 1 AND CS.ACTIVO = 1 "); + sql.append("AND R.ACTIVO = 1 AND RO.ACTIVO = 1 AND DA.ACTIVO = 1 AND CS.ACTIVO = 1 AND (cj.boleto_id is not null ) "); sql.append("GROUP BY R.RUTA_ID, R.DESCRUTA, NVL(GR.DESCGRUPO, 'Não Definido'), TO_CHAR(C.FECHORSALIDA, 'HH24:MI'),"); - sql.append(isPorData ? " TO_CHAR(C.feccorrida ,'dd/mm/yyyy'), " : " "); sql.append(" C.CORRIDA_ID, R.INDSENTIDOIDA, "); sql.append(" DA.CANTASIENTOS, CS.DESCCLASE, TB5.EXTENSAO, TB2.ORD, TB2.EXTRA, ABSOL, "); sql.append(" CO.ESTADO_ID, CD.ESTADO_ID, ORIGEM.CVEPARADA, DESTINO.CVEPARADA, CJ.PRECIOPAGADO, "); sql.append(" CJ.IMPORTESEGURO, CJ.IMPORTETAXAEMBARQUE, CJ.IMPORTEPEDAGIO, "); sql.append(" CJ.EQUIVALENTE, CJ.KM_REAL , CJ.BOLETO_ID ) "); sql.append("GROUP BY GRUPO_RUTA, HORA, "); - sql.append(isPorData ? " DATA_CORRIDA, " : " " ); sql.append(" DESCRUTA, SERVICO, SENTIDO, LOT, CLA, ORIGEM, DESTINO, "); sql.append(" EXTENSAO, BAGAGENS, ORD, EXTRA, TIPO_LINHA, ABSOL "); sql.append("ORDER BY TIPO_LINHA, GRUPO_RUTA, DESCRUTA, SERVICO, ORIGEM, DESTINO "); diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioLinhasHorarioSimpData_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioLinhasHorarioSimpData_pt_BR.properties new file mode 100644 index 000000000..4aa58b3dc --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioLinhasHorarioSimpData_pt_BR.properties @@ -0,0 +1,61 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. +msg.a=à + +#Labels header +header.titulo.relatorio=Resumo de Linhas por Horário - RLH +header.periodo=Per\u00EDodo\: +header.data.hora=Data/Hora\: +header.pagina=P\u00E1gina\: +header.filtro=Filtro\: +header.filtro.servico=Servi\u00E7o\: +header.filtro.linha=Linha\: +header.filtro.grupo=Grupo de Linhas\: +cabecalho.impressorPor=Impresso por + +#Labels detail + +detail.receita=RECEITA +detail.viagens=VIAGENS +detail.passageiros=PASSAGEIROS +detail.parametrosOperacionais=PARÂM. OPERACIONAIS +detail.hora=Hora +detail.data=Data +detail.servico=Serviço +detail.trecho=Trecho +detail.setido=Sentido +detail.lot=Lot. +detail.cal=Classe +detail.extensao=Extensão +detail.tarifa=Tarifa +detail.passagens=Passagens +detail.seguro=Seguro +detail.bagagens=Bagagens +detail.segOpc=Tx. Embarque +detail.total=Total +detail.ord=Ord. +detail.extra=Extra +detail.totalViagem=Total +detail.km.rodad=Km Rodad. +detail.absol=Passag.Trasnsportados +detail.equivalente=Equivalente +detail.mpa=MPA +detail.mpe=MPE +detail.rsKm=R$/Km +detail.eq=Eq. +detail.rsViagem=R$/Viagem +detail.paxOfer=Pax.Km Ofer. +detail.paxTrans=Pax.Km Transportado +detail.iap=IAP% +detail.pedagio=Pedágio +detail.linha=Linha + +#Group +ruta.total= Total Linha +group.total=Total do Grupo +sub.total=Sub Total +total.geral=Total Geral + +linhas=Linhas + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorarioSimpData.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorarioSimpData.jasper new file mode 100644 index 000000000..e9801533f Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorarioSimpData.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorarioSimpData.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorarioSimpData.jrxml new file mode 100644 index 000000000..66bef579e --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorarioSimpData.jrxml @@ -0,0 +1,935 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorarioSimplificado.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorarioSimplificado.jasper index e9801533f..b888d2c18 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorarioSimplificado.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorarioSimplificado.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorarioSimplificado.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorarioSimplificado.jrxml index 66bef579e..04e35ef9d 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorarioSimplificado.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorarioSimplificado.jrxml @@ -618,7 +618,7 @@ - + @@ -705,13 +705,6 @@ - - - - - - - @@ -769,7 +762,7 @@ - + @@ -831,13 +824,6 @@ - - - - - - - diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioLinhasHorarioController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioLinhasHorarioController.java index cb237ff43..be1534a96 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioLinhasHorarioController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioLinhasHorarioController.java @@ -30,6 +30,7 @@ import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.GrupoRuta; import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioLinhasHorario; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioLinhasHorarioSimpData; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioLinhasHorarioSimplificado; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.service.CorridaService; @@ -175,7 +176,12 @@ public class RelatorioLinhasHorarioController extends MyGenericForwardComposer { parametros.put("ISSENTIDOIDA", chkIndSentidoIda.isChecked()); parametros.put("ISSENTIDOVOLTA", chkIndSentidoVolta.isChecked() ); parametros.put("ISPORDATA",chkSimplificadoPorData.isChecked() ); - relatorio = new RelatorioLinhasHorarioSimplificado(parametros, dataSourceRead.getConnection()); + if (!chkSimplificadoPorData.isChecked()) { + relatorio = new RelatorioLinhasHorarioSimplificado(parametros, dataSourceRead.getConnection()); + } else { + relatorio = new RelatorioLinhasHorarioSimpData(parametros, dataSourceRead.getConnection()); + } + tituloRelatorio = "relatorioLinhasHorarioSimplificadoController.window.title"; }