diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentoPorOrgaoConcedente.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentoPorOrgaoConcedente.java new file mode 100644 index 000000000..c44ff1ccd --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentoPorOrgaoConcedente.java @@ -0,0 +1,540 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +public class RelatorioMovimentoPorOrgaoConcedente extends Relatorio { + +// private List lsRelatorioMovimentoPorOrgaoConcedenteBean; + + public RelatorioMovimentoPorOrgaoConcedente(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new ArrayDataSource(this) { + @Override + public void initDados() throws Exception { + + Connection conexao = this.relatorio.getConexao(); + Map parametros = this.relatorio.getParametros(); + +// Comboitem itemEmpresa = cmbEmpresa.getSelectedItem(); +// if (itemEmpresa != null) { +// Empresa empresa = (Empresa) itemEmpresa.getValue(); +// parametros.put("EMPRESA_ID", empresa.getEmpresaId()); +// parametros.put("EMPRESA", empresa.getNombempresa()); +// filtro.append(empresa.getNombempresa() + ";"); +// } else { +// filtro.append(" Todas;"); +// } + + + NamedParameterStatement stmt = new NamedParameterStatement(conexao, getSql()); + + Calendar dataInicial = Calendar.getInstance(); + dataInicial.setTime((Date) parametros.get("DATA_DE")); + + Calendar dataFinal = Calendar.getInstance(); + dataFinal.setTime((Date) parametros.get("DATA_ATE")); +// + Integer empresaId = (Integer) parametros.get("EMPRESA_ID"); + stmt.setInt("empresa_id", empresaId); + + + if(!parametros.get("ORGAOCONCEDENTE_ID").equals("")){ + stmt.setInt("orgaoconcedenteId",(Integer)parametros.get("ORGAOCONCEDENTE_ID")); + } + + + if(!parametros.get("TIPOSERVICIO_ID").equals("-1")){ + stmt.setInt("tiposervicio_id", Integer.parseInt((String)parametros.get("TIPOSERVICIO_ID"))); + } + + ResultSet rset = stmt.executeQuery(); + + + +// List ls = new ArrayList(); + while (rset.next()) { + Map dataResult = new HashMap(); + dataResult.put("SECCOES", rset.getString("PORIGDESCPARADA") +" "+ rset.getString("PDESTDESCPARADA")); + dataResult.put("KM", rset.getString("TCANTKMREAL")); +// dataResult.put("SEQ", rset.getString("NUMSEQ")); + + dataResult.put("SENTIDO", rset.getString("RUSENTIDO")); + dataResult.put("SOMA", rset.getString("QTD")); + + Double m1 = Double.parseDouble(rset.getString("QTD")); + Double m2 = Double.parseDouble(rset.getString("TARIFA")); + + dataResult.put("TOTAL", String.format("%.02f",m1*m2)); + dataResult.put("TARIFA",rset.getString("TARIFA")); + dataResult.put("SERVICO",rset.getString("SERVICO") != null ? rset.getString("SERVICO") : "-" ); + +// RelatorioMovimentoPorOrgaoConcedenteBean r = new RelatorioMovimentoPorOrgaoConcedenteBean(); +// r.setSECCOES(rset.getString("ORIGEM") +" "+ rset.getString("DESTINO")); +// r.setKM(rset.getString("KILOMETRAGEM")); +// r.setSEQ(rset.getString("NUMSEQ")); +// r.setIDA(rset.getString("INDSENTIDOIDA")); +// r.setSOMA(rset.getString("QTD")); +// +// ls.add(r); + + + this.dados.add(dataResult); + } +// lsRelatorioMovimentoPorOrgaoConcedenteBean = ls; + this.resultSet = rset; + + } + }); + } + + private String getSql() { + + SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); + + StringBuilder sql = new StringBuilder(); + +// sql.append(" WITH boletos AS "); +// sql.append(" (SELECT * "); +// sql.append(" FROM boleto b "); +// +// sql.append(" INNER JOIN empresa e "); +// sql.append(" ON e.empresa_id = b.empresacorrida_Id "); +// sql.append(" AND b.empresacorrida_Id = :empresa_id "); +// sql.append(" AND b.ruta_Id in(213, 3651)"); +// +// sql.append(" WHERE "); +// sql.append(" b.corrida_id in(6678 ,1)"); +// +// sql.append(" AND b.FECCORRIDA BETWEEN to_date('" +format.format(DateUtil.inicioFecha((Date) parametros.get("DATA_DE")).getTime())+"') AND to_date('" +format.format( DateUtil.fimFecha((Date) parametros.get("DATA_ATE")).getTime())+"') "); +// sql.append(" ), "); +// sql.append(" tramosSeqRuta AS "); +// sql.append(" (SELECT DISTINCT t.tramo_id AS tramo_id , "); +// sql.append(" porig.descparada AS origem , "); +// sql.append(" porig.parada_id AS origem_id , "); +// sql.append(" pdest.descparada AS destino , "); +// sql.append(" pdest.parada_id AS destino_id, "); +// sql.append(" t.desctramo AS tramodesc, "); +// sql.append(" r.descruta AS rutadesc, "); +// sql.append(" rs.numsecuencia AS numseq, "); +// sql.append(" t.CANTKMREAL AS kilometragem, "); +// sql.append(" r.INDSENTIDOIDA AS INDSENTIDOIDA "); +// sql.append(" FROM boletos b "); +// sql.append(" INNER JOIN RUTA r "); +// sql.append(" ON r.ruta_id = b.ruta_id "); +// sql.append(" INNER JOIN RUTA_SECUENCIA rs "); +// sql.append(" ON rs.ruta_id = r.ruta_id "); +// sql.append(" INNER JOIN TRAMO t "); +// sql.append(" ON t.tramo_id = rs.tramo_id "); +// sql.append(" INNER JOIN parada porig "); +// sql.append(" ON porig.parada_id = t.ORIGEN_ID "); +// sql.append(" INNER JOIN parada pdest "); +// sql.append(" ON pdest.parada_id = t.DESTINO_ID "); +// sql.append(" INNER JOIN corrida c "); +// sql.append(" ON c.corrida_id = b.corrida_id "); +// sql.append(" WHERE t.activo =1 "); +// //sql.append(" AND t.activo =1 "); +// sql.append(" AND rs.activo =1 "); +// +// sql.append(" ORDER BY rs.numsecuencia "); +// sql.append(" ), "); +// sql.append(" paradasSeqsBolsOrig AS "); +// sql.append(" (SELECT b.boleto_id, "); +// sql.append(" tsr.numseq AS numseqOri, "); +// sql.append(" tsr.tramo_id, "); +// sql.append(" b.origen_id "); +// sql.append(" FROM boletos b "); +// sql.append(" INNER JOIN tramosSeqRuta tsr "); +// sql.append(" ON b.origen_id = tsr.origem_id "); +// sql.append(" ), "); +// sql.append(" paradasSeqsBolsDest AS "); +// sql.append(" (SELECT b.boleto_id, "); +// sql.append(" tsr.numseq AS numseqDest, "); +// sql.append(" tsr.tramo_id, "); +// sql.append(" b.destino_id "); +// sql.append(" FROM boletos b "); +// sql.append(" INNER JOIN tramosSeqRuta tsr "); +// sql.append(" ON b.destino_id = tsr.destino_id "); +// sql.append(" ), "); +// sql.append(" embarques AS "); +// sql.append(" ( SELECT DISTINCT tsr.tramodesc AS etsrtramodesc, "); +// sql.append(" tsr.rutadesc AS etsrrutadesc, "); +// sql.append(" tsr.origem AS etsrorigem, "); +// sql.append(" tsr.origem_id AS etsrorigem_id, "); +// sql.append(" tsr.destino AS etsrdestino, "); +// sql.append(" tsr.destino_id AS etsrdestino_id, "); +// sql.append(" tsr.numseq AS etsrnumseq, "); +// sql.append(" b.boleto_id AS ebboleto_id, "); +// sql.append(" tsr.tramo_id AS etsrtramo_id "); +// sql.append(" FROM tramosSeqRuta tsr "); +// sql.append(" INNER JOIN paradasSeqsBolsOrig psbo "); +// sql.append(" ON psbo.numseqOri <= tsr.numseq "); +// sql.append(" INNER JOIN boletos b "); +// sql.append(" ON b.origen_id = psbo.origen_id "); +// sql.append(" ), "); +// sql.append(" desembarques AS "); +// sql.append(" ( SELECT DISTINCT tsr.tramodesc AS dtsrtramodesc, "); +// sql.append(" tsr.rutadesc AS dtsrrutadesc, "); +// sql.append(" tsr.origem AS dtsrorigem, "); +// sql.append(" tsr.origem_id AS dtsrorigem_id, "); +// sql.append(" tsr.destino AS dtsrdestino, "); +// sql.append(" tsr.destino_id AS dtsrdestino_id, "); +// sql.append(" tsr.numseq AS dtsrnumseq, "); +// sql.append(" b.boleto_id AS dbboleto_id, "); +// sql.append(" tsr.tramo_id AS dtsrtramo_id "); +// sql.append(" FROM tramosSeqRuta tsr "); +// sql.append(" INNER JOIN paradasSeqsBolsDest psbd "); +// sql.append(" ON psbd.numseqDest = tsr.numseq "); +// sql.append(" INNER JOIN boletos b "); +// sql.append(" ON b.destino_id = psbd.destino_id "); +// sql.append(" ), "); +// sql.append(" boletos_embarcados_no_tramo AS "); +// sql.append(" ( SELECT DISTINCT * "); +// sql.append(" FROM embarques e "); +// sql.append(" INNER JOIN desembarques d "); +// sql.append(" ON e.ebboleto_id = d.dbboleto_id "); +// sql.append(" WHERE e.etsrnumseq <= d.dtsrnumseq "); +// sql.append(" ) "); +// sql.append(" SELECT tramo_id, origem, origem_id, destino, destino_id, tramodesc, rutadesc, numseq, kilometragem, indsentidoida, ETSRTRAMODESC, ETSRRUTADESC, ETSRORIGEM, ETSRORIGEM_ID, ETSRDESTINO, ETSRDESTINO_id, ETSRNUMSEQ, count(EBBOLETO_ID) as qtd, ETSRTRAMO_ID ");//, DTSRTRAMODESC, DTSRRUTADESC, DTSRORIGEM_ID, DTSRDESTINO, DTSRDESTINO_ID, DTSRNUMSEQ, DBBOLETO_ID, DTSRTRAMO_ID "); +// sql.append(" FROM tramosSeqRuta tsr "); +// sql.append(" LEFT JOIN boletos_embarcados_no_tramo bet "); +// sql.append(" ON tsr.tramo_id = bet.etsrtramo_id"); +// +// sql.append(" group by tramo_id, origem, origem_id, destino, destino_id, tramodesc, rutadesc, numseq, kilometragem, indsentidoida, ETSRTRAMODESC, ETSRRUTADESC, ETSRORIGEM, ETSRORIGEM_ID, ETSRDESTINO, ETSRDESTINO_id, ETSRNUMSEQ, ETSRTRAMO_ID "); +// sql.append(" ORDER BY numseq "); + + //---------------------------------------------------------------------------------------------------------------------------- +// sql.append(" WITH boletos AS "); +// sql.append(" (SELECT * "); +// sql.append(" FROM boleto b "); +// sql.append(" INNER JOIN empresa e "); +// sql.append(" ON e.empresa_id = b.empresacorrida_Id "); +// sql.append(" AND b.empresacorrida_Id = :empresa_id "); +// if(parametros.get("LINHA_ID") != null ){ +// sql.append(" AND b.ruta_Id IN(" +parametros.get("LINHA_ID")+ " ) "); +// } +// sql.append(" WHERE b.FECCORRIDA BETWEEN to_date('" +format.format(DateUtil.inicioFecha((Date) parametros.get("DATA_DE")).getTime())+"') AND to_date('" +format.format( DateUtil.fimFecha((Date) parametros.get("DATA_ATE")).getTime())+"') "); +// if(parametros.get("SERVICO_ID") != null ){ +// sql.append(" AND b.corrida_id IN(" +parametros.get("SERVICO_ID")+ ") "); +// } +// sql.append(" ), "); +// sql.append(" tramosSeqRuta AS "); +// sql.append(" (SELECT DISTINCT t.tramo_id AS tramo_id , "); +// sql.append(" porig.descparada AS origem , "); +// sql.append(" porig.parada_id AS origem_id , "); +// sql.append(" pdest.descparada AS destino , "); +// sql.append(" pdest.parada_id AS destino_id, "); +// sql.append(" t.desctramo AS tramodesc, "); +// sql.append(" r.descruta AS rutadesc, "); +// sql.append(" rs.numsecuencia AS numseq, "); +// sql.append(" t.CANTKMREAL AS kilometragem, "); +// sql.append(" r.INDSENTIDOIDA AS INDSENTIDOIDA, "); +// sql.append(" r.ruta_id AS miruta "); +// sql.append(" FROM boletos b "); +// sql.append(" INNER JOIN RUTA r "); +// sql.append(" ON r.ruta_id = b.ruta_id "); +// +// if(!parametros.get("ORGAOCONCEDENTE_ID").equals("")){ +// sql.append(" and r.ORGAOCONCEDENTE_ID = :orgaoconcedenteId "); +// } +// +// sql.append(" INNER JOIN RUTA_SECUENCIA rs "); +// sql.append(" ON rs.ruta_id = r.ruta_id "); +// sql.append(" INNER JOIN TRAMO t "); +// sql.append(" ON t.tramo_id = rs.tramo_id "); +// sql.append(" INNER JOIN parada porig "); +// sql.append(" ON porig.parada_id = t.ORIGEN_ID "); +// sql.append(" INNER JOIN parada pdest "); +// sql.append(" ON pdest.parada_id = t.DESTINO_ID "); +// sql.append(" INNER JOIN corrida c "); +// sql.append(" ON c.corrida_id = b.corrida_id AND b.FECCORRIDA = c.FECCORRIDA "); +// +// if(!parametros.get("TIPOSERVICIO_ID").equals("-1")){ +// sql.append(" AND c.tiposervicio_id = :tiposervicio_id");// parametros.get("TIPOSERVICIO_ID") +// } +// +// sql.append(" WHERE t.activo =1 "); +// +// +// +// +// sql.append(" AND rs.activo =1 "); +// sql.append(" ORDER BY rs.numsecuencia "); +// sql.append(" ), "); +// sql.append(" paradasSeqsBolsOrig AS "); +// sql.append(" (SELECT b.boleto_id, "); +// sql.append(" tsr.numseq AS numseqOri, "); +// sql.append(" tsr.tramo_id, "); +// sql.append(" b.origen_id "); +// sql.append(" FROM boletos b "); +// sql.append(" INNER JOIN tramosSeqRuta tsr "); +// sql.append(" ON b.origen_id = tsr.origem_id "); +// sql.append(" ), "); +// sql.append(" paradasSeqsBolsDest AS "); +// sql.append(" (SELECT b.boleto_id, "); +// sql.append(" tsr.numseq AS numseqDest, "); +// sql.append(" tsr.tramo_id, "); +// sql.append(" b.destino_id "); +// sql.append(" FROM boletos b "); +// sql.append(" INNER JOIN tramosSeqRuta tsr "); +// sql.append(" ON b.destino_id = tsr.destino_id "); +// sql.append(" ), "); +// sql.append(" embarques AS "); +// sql.append(" ( SELECT DISTINCT tsr.tramodesc AS etsrtramodesc, "); +// sql.append(" tsr.rutadesc AS etsrrutadesc, "); +// sql.append(" tsr.origem AS etsrorigem, "); +// sql.append(" tsr.origem_id AS etsrorigem_id, "); +// sql.append(" tsr.destino AS etsrdestino, "); +// sql.append(" tsr.destino_id AS etsrdestino_id, "); +// sql.append(" tsr.numseq AS etsrnumseq, "); +// sql.append(" b.boleto_id AS ebboleto_id, "); +// sql.append(" tsr.tramo_id AS etsrtramo_id "); +// sql.append(" FROM tramosSeqRuta tsr "); +// sql.append(" INNER JOIN paradasSeqsBolsOrig psbo "); +// sql.append(" ON psbo.numseqOri <= tsr.numseq "); +// sql.append(" INNER JOIN boletos b "); +// sql.append(" ON b.origen_id = psbo.origen_id "); +// sql.append(" ), "); +// sql.append(" desembarques AS "); +// sql.append(" ( SELECT DISTINCT tsr.tramodesc AS dtsrtramodesc, "); +// sql.append(" tsr.rutadesc AS dtsrrutadesc, "); +// sql.append(" tsr.origem AS dtsrorigem, "); +// sql.append(" tsr.origem_id AS dtsrorigem_id, "); +// sql.append(" tsr.destino AS dtsrdestino, "); +// sql.append(" tsr.destino_id AS dtsrdestino_id, "); +// sql.append(" tsr.numseq AS dtsrnumseq, "); +// sql.append(" b.boleto_id AS dbboleto_id, "); +// sql.append(" tsr.tramo_id AS dtsrtramo_id "); +// sql.append(" FROM tramosSeqRuta tsr "); +// sql.append(" INNER JOIN paradasSeqsBolsDest psbd "); +// sql.append(" ON psbd.numseqDest = tsr.numseq "); +// sql.append(" INNER JOIN boletos b "); +// sql.append(" ON b.destino_id = psbd.destino_id "); +// sql.append(" ), "); +// sql.append(" boletos_embarcados_no_tramo AS "); +// sql.append(" ( SELECT DISTINCT * "); +// sql.append(" FROM embarques e "); +// sql.append(" INNER JOIN desembarques d "); +// sql.append(" ON e.ebboleto_id = d.dbboleto_id "); +// sql.append(" WHERE e.etsrnumseq <= d.dtsrnumseq "); +// sql.append(" ), "); +// sql.append(" secuencia_qtd AS "); +// sql.append(" (SELECT tramo_id, "); +// sql.append(" origem, "); +// sql.append(" origem_id, "); +// sql.append(" destino, "); +// sql.append(" destino_id, "); +// sql.append(" tramodesc, "); +// sql.append(" rutadesc, "); +// sql.append(" numseq, "); +// sql.append(" kilometragem, "); +// sql.append(" indsentidoida, "); +// sql.append(" ETSRTRAMODESC, "); +// sql.append(" ETSRRUTADESC, "); +// sql.append(" ETSRORIGEM, "); +// sql.append(" ETSRORIGEM_ID, "); +// sql.append(" ETSRDESTINO, "); +// sql.append(" ETSRDESTINO_id, "); +// sql.append(" ETSRNUMSEQ, "); +// sql.append(" COUNT(EBBOLETO_ID) AS qtd, "); +// sql.append(" ETSRTRAMO_ID, "); +// sql.append(" miruta "); +// sql.append(" FROM tramosSeqRuta tsr "); +// sql.append(" LEFT JOIN boletos_embarcados_no_tramo bet "); +// sql.append(" ON tsr.tramo_id = bet.etsrtramo_id "); +// sql.append(" GROUP BY tramo_id, "); +// sql.append(" origem, "); +// sql.append(" origem_id, "); +// sql.append(" destino, "); +// sql.append(" destino_id, "); +// sql.append(" tramodesc, "); +// sql.append(" rutadesc, "); +// sql.append(" numseq, "); +// sql.append(" kilometragem, "); +// sql.append(" indsentidoida, "); +// sql.append(" ETSRTRAMODESC, "); +// sql.append(" ETSRRUTADESC, "); +// sql.append(" ETSRORIGEM, "); +// sql.append(" ETSRORIGEM_ID, "); +// sql.append(" ETSRDESTINO, "); +// sql.append(" ETSRDESTINO_id, "); +// sql.append(" ETSRNUMSEQ, "); +// sql.append(" ETSRTRAMO_ID, "); +// sql.append(" miruta "); +// sql.append(" ORDER BY numseq "); +// sql.append(" ) , "); +// sql.append(" combinacion AS "); +// sql.append(" ( SELECT DISTINCT rc.*, "); +// sql.append(" por.parada_id AS idorig, "); +// sql.append(" por.descparada descorig, "); +// sql.append(" pde.parada_id iddest, "); +// sql.append(" pde.descparada descdest "); +// sql.append(" FROM ruta_combinacion rc "); +// sql.append(" INNER JOIN secuencia_qtd sq "); +// sql.append(" ON sq.miruta = rc.ruta_id "); +// sql.append(" INNER JOIN tramo t "); +// sql.append(" ON t.tramo_id = rc.tramo_id "); +// sql.append(" INNER JOIN parada por "); +// sql.append(" ON por.parada_id = t.origen_id "); +// sql.append(" INNER JOIN parada pde "); +// sql.append(" ON pde.parada_id = t.destino_id "); +// sql.append(" ), "); +// sql.append(" secuencia_combinacion AS "); +// sql.append(" (SELECT c.ruta_id AS cruta_id, "); +// sql.append(" c.tramo_id AS ctramo_id, "); +// sql.append(" c.idorig AS cidorig, "); +// sql.append(" c.descorig AS cdescorig, "); +// sql.append(" c.iddest AS iddest, "); +// sql.append(" c.descdest AS cdescdest, "); +// sql.append(" sq.numseq AS seqembarque, "); +// sql.append(" sq2.numseq AS seqdesembarque "); +// sql.append(" FROM combinacion c "); +// sql.append(" INNER JOIN secuencia_qtd sq "); +// sql.append(" ON c.idorig = sq.origem_id "); +// sql.append(" INNER JOIN secuencia_qtd sq2 "); +// sql.append(" ON c.iddest = sq2.destino_id "); +// sql.append(" WHERE c.ruta_id = sq2.miruta "); +// sql.append(" AND c.ruta_id = sq.miruta "); +// sql.append(" ) "); +// sql.append(" SELECT DISTINCT sc.*, "); +// sql.append(" sq.qtd , SQ.INDSENTIDOIDA AS INDSENTIDOIDA , t1.cantkmreal, tar.precio as tarifa "); +// sql.append(" FROM secuencia_combinacion sc "); +// sql.append(" INNER JOIN secuencia_qtd sq "); +// sql.append(" ON sc.seqembarque <= sq.numseq "); +// sql.append(" AND sc.seqdesembarque = sq.numseq "); +// sql.append(" inner join tramo t1 on t1.tramo_id = sc.ctramo_id "); +// sql.append(" INNER JOIN tarifa tar "); +// sql.append(" ON t1.tramo_id = tar.tramo_id "); +// sql.append(" order by ctramo_id "); + + + + sql.append(" WITH boletos AS "); + sql.append(" (SELECT b.boleto_id AS bboleto_id, "); + sql.append(" b.ruta_id AS bruta_id, "); + sql.append(" b.ORIGEN_ID AS bORIGEN_ID, "); + sql.append(" b.DESTINO_ID AS bDESTINO_ID, "); + sql.append(" b.CORRIDA_ID AS bCORRIDA_ID, "); + sql.append(" b.FECCORRIDA AS bFECCORRIDA, "); + sql.append(" b.FECHORVIAJE AS bFECHORVIAJE , "); + sql.append(" b.EMPRESACORRIDA_ID AS bEMPRESACORRIDA_ID, "); + sql.append(" r.INDSENTIDOIDA AS rINDSENTIDOIDA "); + sql.append(" FROM boleto b "); + sql.append(" INNER JOIN empresa e "); + sql.append(" ON e.empresa_id = b.empresacorrida_Id "); + sql.append(" AND b.empresacorrida_Id = :empresa_id "); + if(parametros.get("LINHA_ID") != null ){ + sql.append(" AND b.ruta_Id IN(" +parametros.get("LINHA_ID")+ " ) "); + } + sql.append(" INNER JOIN ruta r "); + sql.append(" ON r.ruta_id = b.ruta_id "); + + sql.append(" INNER JOIN corrida c "); + sql.append(" ON c.corrida_id = b.corrida_id AND b.FECCORRIDA = c.FECCORRIDA "); + + sql.append(" WHERE b.FECCORRIDA BETWEEN to_date('" +format.format(DateUtil.inicioFecha((Date) parametros.get("DATA_DE")).getTime())+"') AND to_date('" +format.format( DateUtil.fimFecha((Date) parametros.get("DATA_ATE")).getTime())+"') "); + sql.append(" AND b.MOTIVOCANCELACION_ID IS NULL "); + + if(parametros.get("SERVICO_ID") != null ){ + sql.append(" AND b.corrida_id IN(" +parametros.get("SERVICO_ID")+ ") "); + } + if(!parametros.get("ORGAOCONCEDENTE_ID").equals("")){ + sql.append(" and r.ORGAOCONCEDENTE_ID = :orgaoconcedenteId "); + } + if(!parametros.get("TIPOSERVICIO_ID").equals("-1")){ + sql.append(" AND c.tiposervicio_id = :tiposervicio_id");// parametros.get("TIPOSERVICIO_ID") + } + +// sql.append(" AND b.corrida_id IN(1) "); + sql.append(" ) , "); + sql.append(" combinacion AS "); + sql.append(" ( SELECT DISTINCT rc.ruta_id AS rcruta_id, "); + sql.append(" rc.tramo_id AS rctramo_id, "); + sql.append(" porig.descparada AS porigdescparada, "); + sql.append(" porig.parada_id AS porigparada_id, "); + sql.append(" pdest.descparada AS pdestdescparada, "); + sql.append(" pdest.parada_id AS pdestparada_id, "); + sql.append(" t.CANTKMREAL AS tCANTKMREAL, "); + sql.append(" ta.PRECIO AS taPRECIO, "); + sql.append(" ru.indsentidoida AS rusentido "); + sql.append(" FROM ruta_combinacion rc "); + sql.append(" INNER JOIN tramo t "); + sql.append(" ON t.tramo_id = rc.tramo_id "); + sql.append(" INNER JOIN parada porig "); + sql.append(" ON porig.parada_id = t.origen_id "); + sql.append(" INNER JOIN parada pdest "); + sql.append(" ON pdest.parada_id = t.destino_id "); + sql.append(" INNER JOIN boletos b "); + sql.append(" ON b.bruta_id = rc.ruta_id "); + sql.append(" INNER JOIN tarifa ta "); + sql.append(" ON ta.tramo_id = t.tramo_id "); + sql.append(" INNER JOIN ruta ru "); + sql.append(" ON ru.ruta_id = rc.ruta_id "); + sql.append(" ) , "); + sql.append(" resultado AS "); + sql.append(" (SELECT * "); + sql.append(" FROM combinacion c "); + sql.append(" LEFT JOIN boletos b "); + sql.append(" ON c.porigparada_id = b.bORIGEN_ID "); + sql.append(" AND c.pdestparada_id = b.bdestino_ID "); + sql.append(" ) "); + sql.append(" SELECT RCRUTA_ID, "); + sql.append(" RCTRAMO_ID, "); + sql.append(" PORIGDESCPARADA, "); + sql.append(" PORIGPARADA_ID, "); + sql.append(" PDESTDESCPARADA, "); + sql.append(" PDESTPARADA_ID, "); + sql.append(" TCANTKMREAL, "); + sql.append(" taPRECIO AS TARIFA, "); + sql.append(" COUNT(BBOLETO_ID) AS QTD, "); + sql.append(" BRUTA_ID, "); + sql.append(" BORIGEN_ID, "); + sql.append(" BDESTINO_ID, "); + sql.append(" BCORRIDA_ID as servico, "); + sql.append(" BFECCORRIDA, "); + sql.append(" BFECHORVIAJE, "); + sql.append(" BEMPRESACORRIDA_ID, "); + sql.append(" RINDSENTIDOIDA, "); + sql.append(" rusentido "); + sql.append(" FROM resultado "); + sql.append(" GROUP BY RCRUTA_ID, "); + sql.append(" RCTRAMO_ID, "); + sql.append(" PORIGDESCPARADA, "); + sql.append(" PORIGPARADA_ID, "); + sql.append(" PDESTDESCPARADA, "); + sql.append(" PDESTPARADA_ID, "); + sql.append(" TCANTKMREAL, "); + sql.append(" taPRECIO, "); + sql.append(" BRUTA_ID, "); + sql.append(" BORIGEN_ID, "); + sql.append(" BDESTINO_ID, "); + sql.append(" BCORRIDA_ID, "); + sql.append(" BFECCORRIDA, "); + sql.append(" BFECHORVIAJE, "); + sql.append(" BEMPRESACORRIDA_ID, "); + sql.append(" RINDSENTIDOIDA , "); + sql.append(" rusentido "); + + + + + //---------------------------------------------------------------------------------------------------------------------------- + + return sql.toString(); + } + + @Override + protected void processaParametros() throws Exception { + } +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoPorOrgaoConcedente_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoPorOrgaoConcedente_pt_BR.properties new file mode 100644 index 000000000..d4d074666 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoPorOrgaoConcedente_pt_BR.properties @@ -0,0 +1,46 @@ +#geral +msg.noData=Não foi possível obter dados com os parâmetros informados. + +header.titulo.relatorio=QUADRO DEMONSTRATIVO DO MOVIMENTO DE PASSAGEIROS +header.poderConcedente=Poder Concedente +header.periodo=Período de: +header.ate=até: +header.ordinarias=Ordinárias +header.estras=Extras +header.empresa=Empresa: +header.endereco=Endereço: +header.municipio=Município: +header.cnpj=CNPJ: +header.lugares=Lugares +header.ofertados=Ofertados +header.linha=Linha: +header.inscricao=Inscrição: + + +#Labels column header +column.header.seccoes=Secções +column.header.km=KM +column.header.seq=SEQ +column.header.sentido=Sentido +column.header.soma=Soma +column.header.tarifa=Tarifa +column.header.total=Total +column.header.servico=Serviço + +#Labels header +#label.nomePassageiro=Nome Passageiro +#label.dataViaje=Data Viagem +#label.servico=Serviço +#label.passagem=Bilhete +#label.claseServicio=Classe +#label.origem=Origem +#label.destino=Destino +#label.numKmViaje=Distância +#label.poltrona=Po. +#label.precioPagado=Tarifa +#label.precioTaxas=Taxas +#label.preco=Tarifa Total +#label.categoria=Tipo Pax +#label.dataVenda=Data Compra +#label.pontoVenda=Agência +#label.nomeUsuario=Bilheteiro \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoPorOrgaoConcedente.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoPorOrgaoConcedente.jasper new file mode 100644 index 000000000..7aa2e2764 Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoPorOrgaoConcedente.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoPorOrgaoConcedente.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoPorOrgaoConcedente.jrxml new file mode 100644 index 000000000..0d71506ec --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoPorOrgaoConcedente.jrxml @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="160" splitType="Stretch"> + <textField> + <reportElement uuid="c65887a6-a78a-400f-84bd-ed4d09a4b492" x="0" y="60" width="802" height="20"/> + <textElement textAlignment="Center" markup="none"> + <font size="14" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{header.titulo.relatorio}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="5e67db14-e1ef-4e2a-a6a4-bd21adfc35ed" x="623" y="0" width="179" height="20"/> + <textElement textAlignment="Right"/> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="c7da0bfc-d99f-4551-94c1-99cc5a0af80d" x="0" y="20" width="200" height="20"/> + <textElement textAlignment="Center"> + <font size="10"/> + </textElement> + <textFieldExpression><![CDATA[$P{ORGAO_CONCEDENTE}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="1b824e4c-ebdd-4852-b29a-15320ab744b0" x="0" y="0" width="200" height="20"/> + <textElement markup="none"> + <font size="10"/> + </textElement> + <textFieldExpression><![CDATA[$R{header.poderConcedente}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="8770a74a-33a0-44f2-bebd-574588bcd4ae" x="423" y="20" width="200" height="20"/> + <textElement textAlignment="Right" markup="none"> + <font size="10"/> + </textElement> + <textFieldExpression><![CDATA[$R{header.periodo}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="c2d86c3b-29b7-43e7-82c2-706eadd3e067" x="423" y="40" width="200" height="20"/> + <textElement textAlignment="Right" markup="none"> + <font size="10"/> + </textElement> + <textFieldExpression><![CDATA[$R{header.ate}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy"> + <reportElement uuid="5c6c0a52-ecbb-4423-8a0a-24c789d8b3da" x="623" y="20" width="179" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$P{DATA_DE}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy"> + <reportElement uuid="02d93ca3-4d18-4440-940b-674ac21fd849" x="623" y="40" width="179" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$P{DATA_ATE}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="31137737-3d7a-450f-bd8f-ceaa97f463be" x="0" y="80" width="69" height="20"/> + <textElement markup="none"/> + <textFieldExpression><![CDATA[$R{header.empresa}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="d9f51fd7-872b-45b6-ab47-7c69679db9ed" x="69" y="80" width="334" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$P{EMPRESA}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="8a44071d-2677-4c75-8931-20c1f2306818" x="69" y="100" width="334" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$P{MUNICIPIO}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="bbc0db06-9f0f-4989-82a2-bddb5479775d" x="0" y="100" width="69" height="20"/> + <textElement markup="none"/> + <textFieldExpression><![CDATA[$R{header.municipio}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="0a5e07fe-7388-4e38-9a2c-3fab33edf4a1" x="69" y="120" width="334" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$P{LINHA}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="73ff499c-1cc2-4852-9b25-cb336d66e9fa" x="0" y="120" width="69" height="20"/> + <textElement markup="none"/> + <textFieldExpression><![CDATA[$R{header.linha}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="ecce43f4-3f2a-4a15-ad05-067d4d5c66c4" x="472" y="80" width="330" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$P{ENDERECO}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="f812fe0c-c355-4a5b-a6c9-098ee57642ae" x="403" y="80" width="69" height="20"/> + <textElement markup="none"/> + <textFieldExpression><![CDATA[$R{header.endereco}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="bbaf5ea2-2d14-4210-a8b8-b8c92a90c8c8" x="472" y="100" width="330" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$P{CNPJ}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="8110a811-cc15-4678-965f-e7ec9ea3c2d2" x="403" y="100" width="69" height="20"/> + <textElement markup="none"/> + <textFieldExpression><![CDATA[$R{header.cnpj}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="1d20d65c-da30-4749-b3e8-5d8c8b9a0c5d" x="403" y="120" width="69" height="20"/> + <textElement markup="none"/> + <textFieldExpression><![CDATA[$R{header.inscricao}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="888d2a97-cb82-431f-bced-4012e8862e17" x="472" y="120" width="330" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$P{INSCRICAO}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioMovimentoPorOrgaoConcedenteBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioMovimentoPorOrgaoConcedenteBean.java new file mode 100644 index 000000000..ec182b3e6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioMovimentoPorOrgaoConcedenteBean.java @@ -0,0 +1,71 @@ +package com.rjconsultores.ventaboletos.relatorios.utilitarios; + +public class RelatorioMovimentoPorOrgaoConcedenteBean { + + private String SECCOES; + private String KM; + private String SEQ; + private String IDA; + private String VOLTA; + private String SOMA; + private String TARIFA; + private String TOTAL; + private String TOTALFINAL;//TOTAL FINAL DE TODAS AS INFORMAÇÕES + + + public String getSECCOES() { + return SECCOES; + } + public void setSECCOES(String sECCOES) { + SECCOES = sECCOES; + } + public String getKM() { + return KM; + } + public void setKM(String kM) { + KM = kM; + } + public String getSEQ() { + return SEQ; + } + public void setSEQ(String sEQ) { + SEQ = sEQ; + } + public String getIDA() { + return IDA; + } + public void setIDA(String iDA) { + IDA = iDA; + } + public String getVOLTA() { + return VOLTA; + } + public void setVOLTA(String vOLTA) { + VOLTA = vOLTA; + } + public String getSOMA() { + return SOMA; + } + public void setSOMA(String sOMA) { + SOMA = sOMA; + } + public String getTARIFA() { + return TARIFA; + } + public void setTARIFA(String tARIFA) { + TARIFA = tARIFA; + } + public String getTOTAL() { + return TOTAL; + } + public void setTOTAL(String tOTAL) { + TOTAL = tOTAL; + } + public String getTOTALFINAL() { + return TOTALFINAL; + } + public void setTOTALFINAL(String tOTALFINAL) { + TOTALFINAL = tOTALFINAL; + } + +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMovimentoPorOrgaoConcedenteController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMovimentoPorOrgaoConcedenteController.java new file mode 100644 index 000000000..2c38a574f --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMovimentoPorOrgaoConcedenteController.java @@ -0,0 +1,432 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.util.resource.Labels; +import org.zkoss.zhtml.Messagebox; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Combobox; +import org.zkoss.zul.Datebox; +import org.zkoss.zul.Radio; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; +import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; +import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioDemandasDetalhadoNovoLayout; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioMovimentoPorOrgaoConcedente; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.service.EsquemaCorridaService; +import com.rjconsultores.ventaboletos.service.OrgaoConcedenteService; +import com.rjconsultores.ventaboletos.service.RutaService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderEsquemaCorrida; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderRuta; + +@Controller("relatorioMovimentoPorOrgaoConcedenteController") +@Scope("prototype") +public class RelatorioMovimentoPorOrgaoConcedenteController extends MyGenericForwardComposer { + + @Autowired + private DataSource dataSourceRead; + + @Autowired + private EmpresaService empresaService; + private List lsEmpresas; + private Combobox cmbEmpresa; + private Empresa empresa; + + @Autowired + private OrgaoConcedenteService orgaoConcedenteService; + private List lsOrgaoConcedente; + private Combobox cmbOrgaoConcedente; + private OrgaoConcedente orgaoConcedente; + + private Radio radTipoServicioTodos; + private Radio radTipoServicioOrdinarios; + private Radio radTipoServicioExtraOrdinarios; + + private Datebox fecInicio; + private Datebox fecFinal; + + @Autowired + private EsquemaCorridaService esquemaCorridaService; + private List lsEsquemaCorrida; + private List lsSelectedEsquemaCorrida; + private Combobox cmbEsquemaCorrida; + private MyListbox listboxSelectedEsquemaCorrida; + + @Autowired + private RutaService rutaService; + private List lsRuta; + private List lsSelectedRuta; + private Combobox cmbRuta; + private MyListbox listboxSelectedRuta; + + public List getLsRuta() { + return lsRuta; + } + + public void setLsRuta(List lsRuta) { + this.lsRuta = lsRuta; + } + + @Override + public void doAfterCompose(Component comp) throws Exception { + + this.lsEmpresas = this.empresaService.obtenerTodos(); + this.lsOrgaoConcedente = this.orgaoConcedenteService.obtenerTodos(); + this.lsRuta = this.rutaService.buscarRutasPorEmpresas(UsuarioLogado.getUsuarioLogado().getEmpresa()); + this.lsEsquemaCorrida = this.esquemaCorridaService.obtenerTodos(); + + super.doAfterCompose(comp); + + listboxSelectedEsquemaCorrida.setItemRenderer(new RenderEsquemaCorrida()); + lsSelectedEsquemaCorrida = new ArrayList(); + listboxSelectedRuta.setItemRenderer(new RenderRuta()); + lsSelectedRuta = new ArrayList(); + + + } + + public OrgaoConcedenteService getOrgaoConcedenteService() { + return orgaoConcedenteService; + } + + public void setOrgaoConcedenteService(OrgaoConcedenteService orgaoConcedenteService) { + this.orgaoConcedenteService = orgaoConcedenteService; + } + + public Combobox getCmbOrgaoConcedente() { + return cmbOrgaoConcedente; + } + + public void setCmbOrgaoConcedente(Combobox cmbOrgaoConcedente) { + this.cmbOrgaoConcedente = cmbOrgaoConcedente; + } + + public List getLsOrgaoConcedente() { + return lsOrgaoConcedente; + } + + public void setLsOrgaoConcedente(List lsOrgaoConcedente) { + this.lsOrgaoConcedente = lsOrgaoConcedente; + } + + public List getLsEmpresas() { + return lsEmpresas; + } + + public void setLsEmpresas(List lsEmpresas) { + this.lsEmpresas = lsEmpresas; + } + + public EmpresaService getEmpresaService() { + return empresaService; + } + + public void setEmpresaService(EmpresaService empresaService) { + this.empresaService = empresaService; + } + + public Combobox getCmbEmpresa() { + return cmbEmpresa; + } + + public void setCmbEmpresa(Combobox cmbEmpresa) { + this.cmbEmpresa = cmbEmpresa; + } + + public Empresa getEmpresa() { + return empresa; + } + + public void setEmpresa(Empresa empresa) { + this.empresa = empresa; + } + + public Datebox getFecInicio() { + return fecInicio; + } + + public void setFecInicio(Datebox fecInicio) { + this.fecInicio = fecInicio; + } + + public Datebox getFecFinal() { + return fecFinal; + } + + public void setFecFinal(Datebox fecFinal) { + this.fecFinal = fecFinal; + } + + public OrgaoConcedente getOrgaoConcedente() { + return orgaoConcedente; + } + + public void setOrgaoConcedente(OrgaoConcedente orgaoConcedente) { + this.orgaoConcedente = orgaoConcedente; + } + + public List getLsEsquemaCorrida() { + return lsEsquemaCorrida; + } + + public void setLsEsquemaCorrida(List lsEsquemaCorrida) { + this.lsEsquemaCorrida = lsEsquemaCorrida; + } + + public List getLsSelectedEsquemaCorrida() { + return lsSelectedEsquemaCorrida; + } + + public void setLsSelectedEsquemaCorrida(List lsSelectedEsquemaCorrida) { + this.lsSelectedEsquemaCorrida = lsSelectedEsquemaCorrida; + } + + public EsquemaCorridaService getEsquemaCorridaService() { + return esquemaCorridaService; + } + + public void setEsquemaCorridaService(EsquemaCorridaService esquemaCorridaService) { + this.esquemaCorridaService = esquemaCorridaService; + } + + public Combobox getCmbEsquemaCorrida() { + return cmbEsquemaCorrida; + } + + public void setCmbEsquemaCorrida(Combobox cmbEsquemaCorrida) { + this.cmbEsquemaCorrida = cmbEsquemaCorrida; + } + + public void onClick$btnAddEsquemaCorrida(Event ev) throws InterruptedException { + if (cmbEsquemaCorrida.getSelectedItem() != null) { + lsSelectedEsquemaCorrida.add((EsquemaCorrida) cmbEsquemaCorrida.getSelectedItem().getValue()); + listboxSelectedEsquemaCorrida.setData(lsSelectedEsquemaCorrida); + cmbEsquemaCorrida.setSelectedItem(null); + } + } + + public void onClick$btnRemoveEsquemaCorrida(Event ev) throws InterruptedException { + if (listboxSelectedEsquemaCorrida.getSelectedItem() != null) { + EsquemaCorrida ec = (EsquemaCorrida)listboxSelectedEsquemaCorrida.getSelected(); + lsSelectedEsquemaCorrida.remove(ec); + listboxSelectedEsquemaCorrida.setData(lsSelectedEsquemaCorrida); + } + } + + public void onClick$btnAddRuta(Event ev) throws InterruptedException { + if (cmbRuta.getSelectedItem() != null) { + lsSelectedRuta.add((Ruta) cmbRuta.getSelectedItem().getValue()); + listboxSelectedRuta.setData(lsSelectedRuta); + cmbRuta.setSelectedItem(null); + } + } + + public void onClick$btnRemoveRuta(Event ev) throws InterruptedException { + if (listboxSelectedRuta.getSelectedItem() != null) { + Ruta ec = (Ruta)listboxSelectedRuta.getSelected(); + lsSelectedRuta.remove(ec); + listboxSelectedRuta.setData(lsSelectedRuta); + } + } + + public MyListbox getListboxSelectedEsquemaCorrida() { + return listboxSelectedEsquemaCorrida; + } + + public void setListboxSelectedEsquemaCorrida(MyListbox listboxSelectedEsquemaCorrida) { + this.listboxSelectedEsquemaCorrida = listboxSelectedEsquemaCorrida; + } + + public RutaService getRutaService() { + return rutaService; + } + + public void setRutaService(RutaService rutaService) { + this.rutaService = rutaService; + } + + public List getLsSelectedRuta() { + return lsSelectedRuta; + } + + public void setLsSelectedRuta(List lsSelectedRuta) { + this.lsSelectedRuta = lsSelectedRuta; + } + + public Combobox getCmbRuta() { + return cmbRuta; + } + + public void setCmbRuta(Combobox cmbRuta) { + this.cmbRuta = cmbRuta; + } + + public MyListbox getListboxSelectedRuta() { + return listboxSelectedRuta; + } + + public void setListboxSelectedRuta(MyListbox listboxSelectedRuta) { + this.listboxSelectedRuta = listboxSelectedRuta; + } + + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + executarRelatorio(); + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + private void executarRelatorio() throws Exception { + + Relatorio relatorio; + + Map parametros = new HashMap(); + + if (this.orgaoConcedente != null) { + parametros.put("ORGAOCONCEDENTE_ID", this.orgaoConcedente.getOrgaoConcedenteId()); + parametros.put("ORGAO_CONCEDENTE", this.orgaoConcedente.getDescOrgao()); + }else{ + parametros.put("ORGAO_CONCEDENTE", "TODOS"); + } + + if(this.empresa != null){ + parametros.put("EMPRESA", this.empresa.getNombempresa()); + parametros.put("MUNICIPIO", this.empresa.getCidade().getNombciudad()); + parametros.put("EMPRESA_ID", this.empresa.getEmpresaId()); + parametros.put("ENDERECO", this.empresa.getLogradouro() +this.empresa.getNumero());// +this.empresa.getComplemento()); + parametros.put("CNPJ", this.empresa.getCnpj()); + parametros.put("INSCRICAO", "descrição inscrição estadual"); + }else{ + parametros.put("EMPRESA", "TODAS"); + parametros.put("MUNICIPIO", ""); + parametros.put("ENDERECO",""); + parametros.put("CNPJ", ""); + parametros.put("INSCRICAO", ""); + } + Boolean isNull = fecInicio.getValue() == null || fecFinal.getValue() == null; + if(isNull){ + try { + Messagebox.show(Labels.getLabel("relatorioMovimentoPorOrgaoConcedente.MSG.informarPeriodoData"), + Labels.getLabel("relatorioMovimentoPorOrgaoConcedente.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return; + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + } + + if(this.lsSelectedRuta != null && !this.lsSelectedRuta.isEmpty()){ + parametros.put("LINHA_ID", obterRutaIds(this.lsSelectedRuta) ); + parametros.put("LINHA", this.lsSelectedRuta.toString());// "oi"); + }else{ + parametros.put("LINHA", "TODAS"); + } + + if(this.lsSelectedEsquemaCorrida != null && ! this.lsSelectedEsquemaCorrida.isEmpty()){ + parametros.put("SERVICO_ID", obterEsquemaCorrridaIds(this.lsSelectedEsquemaCorrida) ); + parametros.put("SERVICO", this.lsSelectedEsquemaCorrida); + }else{ + parametros.put("SERVICO", "TODOS"); + } + + + + String tipoServicioId = ""; + if (radTipoServicioTodos.isChecked()) { + tipoServicioId = "-1"; + }else if (radTipoServicioOrdinarios.isChecked()) { + tipoServicioId = "1"; + }else if(radTipoServicioExtraOrdinarios.isChecked()) { + tipoServicioId = "2"; + } + parametros.put("TIPOSERVICIO_ID", tipoServicioId); + + if(fecInicio.getValue() != null && fecFinal.getValue() != null ){ + Date dataInicial = fecInicio.getValue(); + Date dataFinal = fecFinal.getValue(); + if (dataInicial.after(dataFinal)) { + Messagebox.show(Labels.getLabel("relatorioMovimentoPorOrgaoConcedente.MSG.dataInicialMaiorFinal"), + Labels.getLabel("relatorioMovimentoPorOrgaoConcedente.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return; + } +// parametros.put("FECCORRIDA", new java.sql.Date(((java.util.Date) this.fecCorrida.getValue()).getTime())); + parametros.put("DATA_DE", new java.sql.Date(((java.util.Date) fecInicio.getValue()).getTime())); + parametros.put("DATA_ATE", new java.sql.Date(((java.util.Date) fecFinal.getValue()).getTime())); + } + + parametros.put("ESQUEMACORRIDA_ID", obterEsquemaCorrridaIds(lsSelectedEsquemaCorrida) ); + + relatorio = new RelatorioMovimentoPorOrgaoConcedente(parametros, dataSourceRead.getConnection()); + + Map args = new HashMap(); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", + Labels.getLabel("relatorioMovimentoPorOrgaoConcedente.window.title"), args, MODAL); + + } + + private String obterEsquemaCorrridaIds(List esquemaCorridas){ + String ids = ""; + for(int i = 0 ; i < esquemaCorridas.size() ; i ++){ + if(i == 0 ){ + ids = ids+esquemaCorridas.get(i).getNumCorrida(); + }else{ + ids = ids+","+esquemaCorridas.get(i).getNumCorrida(); + } + } + return ids; + } + + private String obterRutaIds(List rutas){ + String ids = ""; + for(int i = 0 ; i < rutas.size() ; i ++){ + if(i == 0 ){ + ids = ids+rutas.get(i).getRutaId(); + }else{ + ids = ids+","+rutas.get(i).getRutaId(); + } + } + return ids; + } + + public Radio getRadTipoServicioTodos() { + return radTipoServicioTodos; + } + + public void setRadTipoServicioTodos(Radio radTipoServicioTodos) { + this.radTipoServicioTodos = radTipoServicioTodos; + } + + public Radio getRadTipoServicioOrdinarios() { + return radTipoServicioOrdinarios; + } + + public void setRadTipoServicioOrdinarios(Radio radTipoServicioOrdinarios) { + this.radTipoServicioOrdinarios = radTipoServicioOrdinarios; + } + + public Radio getRadTipoServicioExtraOrdinarios() { + return radTipoServicioExtraOrdinarios; + } + + public void setRadTipoServicioExtraOrdinarios(Radio radTipoServicioExtraOrdinarios) { + this.radTipoServicioExtraOrdinarios = radTipoServicioExtraOrdinarios; + } +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMovimentoPorOrgaoConcedente.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMovimentoPorOrgaoConcedente.java new file mode 100644 index 000000000..47dfa5c61 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMovimentoPorOrgaoConcedente.java @@ -0,0 +1,25 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuRelatorioMovimentoPorOrgaoConcedente extends DefaultItemMenuSistema { + + public ItemMenuRelatorioMovimentoPorOrgaoConcedente() { + super("indexController.mniRelatorioMovimentoPorOrgaoConcedente.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.MOVIMENTOPORORGAOCONCEDENTE"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioMovimentoPorOrgaoConcedente.zul", + Labels.getLabel("relatorioMovimentoPorOrgaoConcedente.window.title"), getArgs(), desktop); + + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties index 294a90ac7..cabf367d3 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties @@ -157,6 +157,7 @@ analitico.gerenciais.estatisticos.relatorioCorridas=com.rjconsultores.ventabolet analitico.gerenciais.estatisticos.gratuidades=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidadeANTT analitico.gerenciais.estatisticos.gratuidadesANTT=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidade analitico.gerenciais.estatisticos.gratuidadesIdosoDeficiente=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidadeIdosoDeficiente +analitico.gerenciais.estatisticos.relatorioMovimentoPorOrgaoConcedente=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioMovimentoPorOrgaoConcedente analitico.gerenciais.estatisticos.checkin=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioCheckin analitico.gerenciais.estatisticos.relatorioBaixasVendasInternet=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioBaixasVendasInternet analitico.gerenciais.financeiro=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.financeiro.SubMenuRelatorioFinanceiro diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderEsquemaCorrida.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderEsquemaCorrida.java new file mode 100644 index 000000000..eab6979f9 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderEsquemaCorrida.java @@ -0,0 +1,26 @@ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; + +public class RenderEsquemaCorrida implements ListitemRenderer { + + public void render(Listitem lstm, Object o) throws Exception { + EsquemaCorrida esquemaCorrida = (EsquemaCorrida) o; + + Listcell lc = new Listcell(esquemaCorrida.getNumCorrida().toString()); + lc.setParent(lstm); + + lc = new Listcell(esquemaCorrida.getRuta().getNumRuta()); + lc.setParent(lstm); + + lc = new Listcell(esquemaCorrida.getRuta().getDescruta()); + lc.setParent(lstm); + + lstm.setAttribute("data", esquemaCorrida); + } + +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRuta.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRuta.java new file mode 100644 index 000000000..e27d3b1b0 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRuta.java @@ -0,0 +1,29 @@ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.Ruta; + +public class RenderRuta implements ListitemRenderer { + + public void render(Listitem lstm, Object o) throws Exception { + Ruta ruta = (Ruta) o; + + Listcell lc = new Listcell(ruta.getNumRuta().toString()); + lc.setParent(lstm); + + lc = new Listcell(ruta.getPrefixo()); + lc.setParent(lstm); + + lc = new Listcell(ruta.getDescruta()); + lc.setParent(lstm); + + lc = new Listcell(ruta.getOrgaoConcedente().getDescOrgao()); + lc.setParent(lstm); + + lstm.setAttribute("data", ruta); + } + +} \ No newline at end of file diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index b973b2da4..0ba517126 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -7257,6 +7257,52 @@ relatorioRemessaCNAB.lbDataEmissao.value = Dt. Emissão relatorioRemessaCNAB.lbValor.value = Valor relatorioRemessaCNAB.lbRemessa.value = Enviado +# Relatório Movimento Por Orgao Concedente +indexController.mniRelatorioMovimentoPorOrgaoConcedente.label = Movimento Por Órgão Concedente +relatorioMovimentoPorOrgaoConcedente.window.title = Movimento Por Órgao Concedente +relatorioMovimentoPorOrgaoConcedente.lbEmpresa.value =Empresa +relatorioMovimentoPorOrgaoConcedente.labelOrgaoConc.value=Orgão Conc. +relatorioMovimentoPorOrgaoConcedente.labelTiposServicios.value=Tipos de Serviços +relatorioMovimentoPorOrgaoConcedente.labelTipoServicioOrdinarios.value=Ordinários +relatorioMovimentoPorOrgaoConcedente.labelTipoServicioExtraOrdinarios.value=Extraordinários +relatorioMovimentoPorOrgaoConcedente.labelTipoServicioTodos.value=Todos +relatorioMovimentoPorOrgaoConcedente.labelDataInicial.value=Data inicial +relatorioMovimentoPorOrgaoConcedente.labelDataFinal.value=Data Final +relatorioMovimentoPorOrgaoConcedente.labelServico.value=Serviço +relatorioMovimentoPorOrgaoConcedente.labelCodLinha.value=Cód Linha +relatorioMovimentoPorOrgaoConcedente.labelOrigemXdestino.value=Origem x Destino +relatorioMovimentoPorOrgaoConcedente.labelRuta.value=Linha +relatorioMovimentoPorOrgaoConcedente.labelNumRuta.value=Num. Linha +relatorioMovimentoPorOrgaoConcedente.labelPrefixoRuta.value=Prefixo +relatorioMovimentoPorOrgaoConcedente.labeldescruta.value=Descrição +relatorioMovimentoPorOrgaoConcedente.labelOrgaoConcedente.value=Órgão Concedente +relatorioMovimentoPorOrgaoConcedente.MSG.dataInicialMaiorFinal=Data inicial maior que final +relatorioMovimentoPorOrgaoConcedente.MSG.informarPeriodoData=Favor informar o período a ser consultado + +# Relatório Movimento Por Orgao Concedente +indexController.mniRelatorioMovimentoPorOrgaoConcedente.label = Movimento Por Órgão Concedente +relatorioMovimentoPorOrgaoConcedente.window.title = Movimento Por Órgao Concedente +relatorioMovimentoPorOrgaoConcedente.lbEmpresa.value =Empresa +relatorioMovimentoPorOrgaoConcedente.labelOrgaoConc.value=Orgão Conc. +relatorioMovimentoPorOrgaoConcedente.labelTiposServicios.value=Tipos de Serviços +relatorioMovimentoPorOrgaoConcedente.labelTipoServicioOrdinarios.value=Ordinários +relatorioMovimentoPorOrgaoConcedente.labelTipoServicioExtraOrdinarios.value=Extraordinários +relatorioMovimentoPorOrgaoConcedente.labelTipoServicioTodos.value=Todos +relatorioMovimentoPorOrgaoConcedente.labelDataInicial.value=Data inicial +relatorioMovimentoPorOrgaoConcedente.labelDataFinal.value=Data Final +relatorioMovimentoPorOrgaoConcedente.labelServico.value=Serviço +relatorioMovimentoPorOrgaoConcedente.labelCodLinha.value=Cód Linha +relatorioMovimentoPorOrgaoConcedente.labelOrigemXdestino.value=Origem x Destino +relatorioMovimentoPorOrgaoConcedente.labelRuta.value=Linha +relatorioMovimentoPorOrgaoConcedente.labelNumRuta.value=Num. Linha +relatorioMovimentoPorOrgaoConcedente.labelPrefixoRuta.value=Prefixo +relatorioMovimentoPorOrgaoConcedente.labeldescruta.value=Descrição +relatorioMovimentoPorOrgaoConcedente.labelOrgaoConcedente.value=Órgão Concedente +relatorioMovimentoPorOrgaoConcedente.MSG.dataInicialMaiorFinal=Data inicial maior que final +relatorioMovimentoPorOrgaoConcedente.MSG.informarPeriodoData=Favor informar o período a ser consultado + + + # Relatório Vendas com Parcelamento relatorioVendasParcelamentoController.window.title = Ventas con Parcelamiento relatorioVendasParcelamentoController.lbDataFin.value = Fecha Final diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 3cb7991eb..1d4026e59 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -7743,6 +7743,50 @@ relatorioRemessaCNAB.lbDataEmissao.value = Dt. Emissão relatorioRemessaCNAB.lbValor.value = Valor relatorioRemessaCNAB.lbRemessa.value = Enviado +# Relatório Movimento Por Orgao Concedente +indexController.mniRelatorioMovimentoPorOrgaoConcedente.label = Movimento Por Órgão Concedente +relatorioMovimentoPorOrgaoConcedente.window.title = Movimento Por Órgao Concedente +relatorioMovimentoPorOrgaoConcedente.lbEmpresa.value =Empresa +relatorioMovimentoPorOrgaoConcedente.labelOrgaoConc.value=Orgão Conc. +relatorioMovimentoPorOrgaoConcedente.labelTiposServicios.value=Tipos de Serviços +relatorioMovimentoPorOrgaoConcedente.labelTipoServicioOrdinarios.value=Ordinários +relatorioMovimentoPorOrgaoConcedente.labelTipoServicioExtraOrdinarios.value=Extraordinários +relatorioMovimentoPorOrgaoConcedente.labelTipoServicioTodos.value=Todos +relatorioMovimentoPorOrgaoConcedente.labelDataInicial.value=Data inicial +relatorioMovimentoPorOrgaoConcedente.labelDataFinal.value=Data Final +relatorioMovimentoPorOrgaoConcedente.labelServico.value=Serviço +relatorioMovimentoPorOrgaoConcedente.labelCodLinha.value=Cód Linha +relatorioMovimentoPorOrgaoConcedente.labelOrigemXdestino.value=Origem x Destino +relatorioMovimentoPorOrgaoConcedente.labelRuta.value=Linha +relatorioMovimentoPorOrgaoConcedente.labelNumRuta.value=Num. Linha +relatorioMovimentoPorOrgaoConcedente.labelPrefixoRuta.value=Prefixo +relatorioMovimentoPorOrgaoConcedente.labeldescruta.value=Descrição +relatorioMovimentoPorOrgaoConcedente.labelOrgaoConcedente.value=Órgão Concedente +relatorioMovimentoPorOrgaoConcedente.MSG.dataInicialMaiorFinal=Data inicial maior que final +relatorioMovimentoPorOrgaoConcedente.MSG.informarPeriodoData=Favor informar o período a ser consultado + +# Relatório Movimento Por Orgao Concedente +indexController.mniRelatorioMovimentoPorOrgaoConcedente.label = Movimento Por Órgão Concedente +relatorioMovimentoPorOrgaoConcedente.window.title = Movimento Por Órgao Concedente +relatorioMovimentoPorOrgaoConcedente.lbEmpresa.value =Empresa +relatorioMovimentoPorOrgaoConcedente.labelOrgaoConc.value=Orgão Conc. +relatorioMovimentoPorOrgaoConcedente.labelTiposServicios.value=Tipos de Serviços +relatorioMovimentoPorOrgaoConcedente.labelTipoServicioOrdinarios.value=Ordinários +relatorioMovimentoPorOrgaoConcedente.labelTipoServicioExtraOrdinarios.value=Extraordinários +relatorioMovimentoPorOrgaoConcedente.labelTipoServicioTodos.value=Todos +relatorioMovimentoPorOrgaoConcedente.labelDataInicial.value=Data inicial +relatorioMovimentoPorOrgaoConcedente.labelDataFinal.value=Data Final +relatorioMovimentoPorOrgaoConcedente.labelServico.value=Serviço +relatorioMovimentoPorOrgaoConcedente.labelCodLinha.value=Cód Linha +relatorioMovimentoPorOrgaoConcedente.labelOrigemXdestino.value=Origem x Destino +relatorioMovimentoPorOrgaoConcedente.labelRuta.value=Linha +relatorioMovimentoPorOrgaoConcedente.labelNumRuta.value=Num. Linha +relatorioMovimentoPorOrgaoConcedente.labelPrefixoRuta.value=Prefixo +relatorioMovimentoPorOrgaoConcedente.labeldescruta.value=Descrição +relatorioMovimentoPorOrgaoConcedente.labelOrgaoConcedente.value=Órgão Concedente +relatorioMovimentoPorOrgaoConcedente.MSG.dataInicialMaiorFinal=Data inicial maior que final +relatorioMovimentoPorOrgaoConcedente.MSG.informarPeriodoData=Favor informar o período a ser consultado + # Relatório Vendas com Parcelamento relatorioVendasParcelamentoController.window.title = Vendas com Parcelamento diff --git a/web/gui/relatorios/filtroRelatorioMovimentoPorOrgaoConcedente.zul b/web/gui/relatorios/filtroRelatorioMovimentoPorOrgaoConcedente.zul new file mode 100644 index 000000000..4c8914ac4 --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioMovimentoPorOrgaoConcedente.zul @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +