diff --git a/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java b/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java index 8672ccf4c..34f1c0f30 100644 --- a/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java @@ -93,4 +93,6 @@ public interface CorridaDAO extends GenericDAO { public Corrida buscaCorrridaFutura(Ruta ruta, Date fecInicio); + List buscarCorridaRelAproveitamento(Parada origem, Parada destino, Date feccorrida, Integer corridaId); + } \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java index fdc999727..d685b5a97 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java @@ -5,6 +5,7 @@ package com.rjconsultores.ventaboletos.dao.hibernate; import java.math.BigDecimal; +import java.sql.Timestamp; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -12,7 +13,6 @@ import java.util.GregorianCalendar; import java.util.List; import org.apache.commons.lang.math.NumberUtils; -import org.apache.xmlbeans.impl.xb.xsdschema.RestrictionDocument.Restriction; import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.SessionFactory; @@ -506,6 +506,7 @@ public class CorridaHibernateDAO extends GenericHibernateDAO corridas) { @@ -751,4 +752,86 @@ public class CorridaHibernateDAO extends GenericHibernateDAO buscarCorridaRelAproveitamento( Parada origem, Parada destino, + Date feccorrida, Integer corridaId) { + + StringBuilder sql = new StringBuilder(); + sql.append(" select "); + sql.append(" c.corrida_id as corrida_id, "); + sql.append(" c.feccorrida as feccorrida, "); + sql.append(" c.fechorsalida as fechorsalida, "); + sql.append(" origen.parada_id as origen_id, "); + sql.append(" origen.descparada as origen, "); + sql.append(" destino.parada_id as destino_id, "); + sql.append(" destino.descparada as destino, "); + sql.append(" r.ruta_id as ruta_id, "); + sql.append(" r.descruta as descruta, "); + sql.append(" cs.claseservicio_id as claseservicio_id, "); + sql.append(" cs.descclase as descclase "); + sql.append(" from corrida c "); + sql.append(" inner join parada origen on c.origen_id = origen.parada_id "); + sql.append(" inner join parada destino on c.destino_id = destino.parada_id "); + sql.append(" inner join ruta r on c.ruta_id = r.ruta_id "); + sql.append(" inner join clase_servicio cs on c.claseservicio_id = cs.claseservicio_id "); + sql.append(" where c.activo <> 0 "); + sql.append(corridaId == null ? "" : " and c.corrida_id = :corridaId "); + sql.append(feccorrida == null ? "" : " and c.feccorrida = :feccorrida "); + sql.append(origem == null ? "" : " and c.origen_id = :origen_id "); + sql.append(destino == null ? "" : " and c.destino_id = :destino_id "); + + Query query = getSession().createSQLQuery(sql.toString()); + if (corridaId != null) { + query.setParameter("corridaId", corridaId); + } else { + query.setParameter("corridaId", '%'); + } + query.setParameter("feccorrida", feccorrida); + query.setParameter("origen_id", origem.getParadaId()); + query.setParameter("destino_id", destino.getParadaId()); + + List lsObject = query.list(); + + List lsCorridas = new ArrayList(); + + if (lsObject != null && !lsObject.isEmpty()) { + + for (Object object : lsObject) { + if(object!=null){ + Object objectArray[] = (Object[]) object; + Id id = new Id(); + id.setCorridaId(((BigDecimal)objectArray[0]).intValue()); + id.setFeccorrida((Timestamp)objectArray[1]); + + Parada o = new Parada(); + o.setParadaId(((BigDecimal)objectArray[3]).intValue()); + o.setDescparada((String)objectArray[4]); + + Parada d = new Parada(); + d.setParadaId(((BigDecimal)objectArray[5]).intValue()); + d.setDescparada((String)objectArray[6]); + + Ruta ruta = new Ruta(); + ruta.setRutaId(((BigDecimal)objectArray[7]).intValue()); + ruta.setDescruta((String)objectArray[8]); + + ClaseServicio claseServicio = new ClaseServicio(); + claseServicio.setClaseservicioId(((BigDecimal)objectArray[9]).intValue()); + claseServicio.setDescclase((String)objectArray[10]); + + Corrida corrida = new Corrida(); + corrida.setId(id); + corrida.setFechorsalida((Timestamp)objectArray[2]); + corrida.setOrigem(o); + corrida.setDestino(d); + corrida.setRuta(ruta); + corrida.setClaseServicio(claseServicio); + + lsCorridas.add(corrida); + } + } + } + return lsCorridas; + } } diff --git a/src/com/rjconsultores/ventaboletos/service/CorridaService.java b/src/com/rjconsultores/ventaboletos/service/CorridaService.java index d7be792f6..b2f29c834 100644 --- a/src/com/rjconsultores/ventaboletos/service/CorridaService.java +++ b/src/com/rjconsultores/ventaboletos/service/CorridaService.java @@ -4,7 +4,6 @@ */ package com.rjconsultores.ventaboletos.service; -import java.sql.Connection; import java.util.Date; import java.util.List; @@ -74,7 +73,7 @@ public interface CorridaService extends GenericService { Boolean editarCorridaPorOutraCorrida(Estado estado, Date dataInicial, Integer corridaId, Date dataPadrao); - public List buscarCorridaRelatorio(Connection conexao, Parada origem, Parada destino, Date feccorrida, Integer corridaId); + public List buscarCorridaRelAproveitamento(Parada origem, Parada destino, Date feccorrida, Integer corridaId); public Corrida buscaCorrridaFutura(Ruta ruta, Date fecInicio); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java index 2fa569ef0..82d9ceedf 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java @@ -4,10 +4,6 @@ */ package com.rjconsultores.ventaboletos.service.impl; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; @@ -37,7 +33,6 @@ import com.rjconsultores.ventaboletos.entidad.Ciudad; import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.entidad.Corrida; -import com.rjconsultores.ventaboletos.entidad.Corrida.Id; import com.rjconsultores.ventaboletos.entidad.CorridaCtrl; import com.rjconsultores.ventaboletos.entidad.CorridaTramo; import com.rjconsultores.ventaboletos.entidad.DetDiagramaAutobus; @@ -1288,100 +1283,11 @@ public class CorridaServiceImpl implements CorridaService { } @Override - public List buscarCorridaRelatorio(Connection conexao, Parada origem, Parada destino, + public List buscarCorridaRelAproveitamento(Parada origem, Parada destino, Date feccorrida, Integer corridaId) { List ls = new ArrayList(); - try { - StringBuilder sql = new StringBuilder(); - sql.append(" select "); - sql.append(" c.corrida_id as corrida_id, "); - sql.append(" c.feccorrida as feccorrida, "); - sql.append(" c.fechorsalida as fechorsalida, "); - sql.append(" origen.parada_id as origen_id, "); - sql.append(" origen.descparada as origen, "); - sql.append(" destino.parada_id as destino_id, "); - sql.append(" destino.descparada as destino, "); - sql.append(" r.ruta_id as ruta_id, "); - sql.append(" r.descruta as descruta, "); - sql.append(" cs.claseservicio_id as claseservicio_id, "); - sql.append(" cs.descclase as descclase "); - sql.append(" from corrida c "); - sql.append(" inner join parada origen on c.origen_id = origen.parada_id "); - sql.append(" inner join parada destino on c.destino_id = destino.parada_id "); - sql.append(" inner join ruta r on c.ruta_id = r.ruta_id "); - sql.append(" inner join clase_servicio cs on c.claseservicio_id = cs.claseservicio_id "); - sql.append(" where c.activo <> 0 "); - sql.append(corridaId == null ? "" : " and c.corrida_id = ? "); - sql.append(feccorrida == null ? "" : " and c.feccorrida = ? "); - sql.append(origem == null ? "" : " and c.origen_id = ? "); - sql.append(destino == null ? "" : " and c.destino_id = ? "); - - int atbNum = 1; - PreparedStatement stmt = conexao.prepareStatement(sql.toString()); - if (corridaId != null) { - stmt.setInt(atbNum, corridaId); - atbNum++; - } - - if (feccorrida != null) { - stmt.setDate(atbNum, new java.sql.Date(feccorrida.getTime())); - atbNum++; - } - - if (origem != null) { - stmt.setInt(atbNum, origem.getParadaId()); - atbNum++; - } - - if (destino != null) { - stmt.setInt(atbNum, destino.getParadaId()); - atbNum++; - } - - ResultSet rset = stmt.executeQuery(); - - while (rset.next()) { - - Id id = new Id(); - id.setCorridaId(rset.getInt("corrida_id")); - id.setFeccorrida(rset.getDate("feccorrida")); - - Parada o = new Parada(); - o.setParadaId(rset.getInt("origen_id")); - o.setDescparada(rset.getString("origen")); - - Parada d = new Parada(); - d.setParadaId(rset.getInt("destino_id")); - d.setDescparada(rset.getString("destino")); - - Ruta ruta = new Ruta(); - ruta.setRutaId(rset.getInt("ruta_id")); - ruta.setDescruta(rset.getString("descruta")); - - ClaseServicio claseServicio = new ClaseServicio(); - claseServicio.setClaseservicioId(rset.getInt("claseservicio_id")); - claseServicio.setDescclase(rset.getString("descclase")); - - Corrida corrida = new Corrida(); - corrida.setId(id); - corrida.setFechorsalida(new Date(rset.getTimestamp("fechorsalida").getTime())); - corrida.setOrigem(o); - corrida.setDestino(d); - corrida.setRuta(ruta); - corrida.setClaseServicio(claseServicio); - - ls.add(corrida); - - } - - if (!conexao.isClosed()) - conexao.close(); - - } catch (SQLException e) { - log.error("", e); - } - + ls =corridaDAO.buscarCorridaRelAproveitamento(origem, destino, feccorrida, corridaId); return ls; }