From 19dede32d005d40b730004d04bdfb557c41fb69e Mon Sep 17 00:00:00 2001 From: rodrigo Date: Tue, 10 Sep 2013 19:27:27 +0000 Subject: [PATCH] git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@30814 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/CorridaDAO.java | 2 + .../dao/hibernate/CorridaHibernateDAO.java | 64 +++++++++++++++++++ .../ventaboletos/service/CorridaService.java | 2 + .../service/impl/CorridaServiceImpl.java | 19 ++++++ 4 files changed, 87 insertions(+) diff --git a/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java b/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java index 798bbc765..ea9b9e3fc 100644 --- a/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java @@ -69,4 +69,6 @@ public interface CorridaDAO extends GenericDAO { public Long cantCorridaGeneradasHoy(); public List buscarGroupCorrridaId(Integer corridaId, Date dateInicio, Date dateFin); + + public List buscarGroupCorrridaId(Integer corridaId, Integer origem, Integer destino, Integer ruta, Integer numRuta, Date dateInicio, Date dateFin); } \ 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 51af57da1..8a632cad0 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java @@ -326,6 +326,70 @@ public class CorridaHibernateDAO extends GenericHibernateDAO buscarGroupCorrridaId(Integer corridaId, Integer origem, Integer destino, Integer ruta, Integer numRuta, Date dateInicio, Date dateFin) { + StringBuffer sql = new StringBuffer(); + sql.append(" SELECT c.corrida_id "); + sql.append(" FROM corrida c "); + if (numRuta != null) { + sql.append(" INNER JOIN Ruta r ON r.ruta_id=c.ruta_id "); + } + sql.append(" WHERE c.feccorrida BETWEEN :dateInicio AND :dateFin "); + sql.append(" AND c.corrida_id LIKE :corridaId "); + + if (origem != null) { + sql.append(" AND c.ORIGEN_ID=").append(origem); + } + if (destino != null) { + sql.append(" AND c.DESTINO_ID=").append(destino); + } + if (ruta != null) { + sql.append(" AND c.RUTA_ID=").append(ruta); + } + if (numRuta != null) { + sql.append(" AND r.NUMRUTA=").append(numRuta); + } + + sql.append(" GROUP BY c.corrida_id "); + + Query sq = getSession().createSQLQuery(sql.toString()); + + if (corridaId != null) { + sq.setParameter("corridaId", corridaId.toString() + '%'); + } else { + sq.setParameter("corridaId", '%'); + } + + sq.setParameter("dateInicio", dateInicio); + sq.setParameter("dateFin", dateFin); + + List lsObject = sq.list(); + + List lsCorridas = new ArrayList(); + + if (lsObject != null && !lsObject.isEmpty()) { + + for (Object object : lsObject) { + + BigDecimal id = (BigDecimal) object; + + StringBuffer hql = new StringBuffer(); + hql.append(" FROM Corrida "); + hql.append(" WHERE id.corridaId = " + id); + + Query squery = getSession().createQuery(hql.toString()); + squery.setMaxResults(maxResult); + + List lsCorridasAux = squery.list(); + + if (lsCorridasAux != null && !lsCorridasAux.isEmpty()) { + lsCorridas.add(lsCorridasAux.iterator().next()); + } + } + } + + return lsCorridas; + } + public List buscarGroupCorrridaId(Integer corridaId, Date dateInicio, Date dateFin) { StringBuffer sql = new StringBuffer(); diff --git a/src/com/rjconsultores/ventaboletos/service/CorridaService.java b/src/com/rjconsultores/ventaboletos/service/CorridaService.java index 3ddf2bf7a..bf9c6f4f7 100644 --- a/src/com/rjconsultores/ventaboletos/service/CorridaService.java +++ b/src/com/rjconsultores/ventaboletos/service/CorridaService.java @@ -58,4 +58,6 @@ public interface CorridaService extends GenericService { public Long generarCorridasSelecionadas(List lsEsquemaCorrida, Date dataDe, Date dataAte); public List buscarGroupCorrridaId(Integer corridaId, Date dateInicio, Date dateFin); + + public List buscarGroupCorrridaId(Integer corridaId, Integer origem, Integer destino, Integer ruta, Integer numRuta, Date dateInicio, Date dateFin); } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java index ab62a181a..aa9d709d5 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java @@ -1002,4 +1002,23 @@ public class CorridaServiceImpl implements CorridaService { return corridaDAO.buscarGroupCorrridaId(corridaId, gCalendarDe.getTime(), gCalendarAte.getTime()); } + + @Override + public List buscarGroupCorrridaId(Integer corridaId, Integer origem, Integer destino, Integer ruta, Integer numRuta, Date dateInicio, Date dateFin) { + GregorianCalendar gCalendarDe = new GregorianCalendar(); + gCalendarDe.setTime(dateInicio); + gCalendarDe.set(Calendar.HOUR_OF_DAY, 0); + gCalendarDe.set(Calendar.MINUTE, 0); + gCalendarDe.set(Calendar.SECOND, 0); + gCalendarDe.set(Calendar.MILLISECOND, 0); + + GregorianCalendar gCalendarAte = new GregorianCalendar(); + gCalendarAte.setTime(dateFin); + gCalendarAte.set(Calendar.HOUR_OF_DAY, 0); + gCalendarAte.set(Calendar.MINUTE, 0); + gCalendarAte.set(Calendar.SECOND, 0); + gCalendarAte.set(Calendar.MILLISECOND, 0); + + return corridaDAO.buscarGroupCorrridaId(corridaId, origem, destino, ruta, numRuta, gCalendarDe.getTime(), gCalendarAte.getTime()); + } }