diff --git a/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java b/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java index baf0d2e83..8672ccf4c 100644 --- a/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/CorridaDAO.java @@ -38,6 +38,8 @@ public interface CorridaDAO extends GenericDAO { public List buscarPorRolOperativoCorridasFuturas(DiagramaAutobus diagramaAutobus); public List buscarPorFecCorrida(Date value); + + public Corrida buscarPorId(Id id); public Long count(Ruta ruta); @@ -82,6 +84,8 @@ public interface CorridaDAO extends GenericDAO { public void actualizaFecHusoFecVerano(Corrida corrida); public void actualizaFecHusoFecVerano(List corridas); + + Boolean editarCorridaPorOutraCorrida(List corridas, Corrida corrida); public List buscarPorEstado(Estado estado, Date dataInicial); diff --git a/src/com/rjconsultores/ventaboletos/dao/CorridaTramoDAO.java b/src/com/rjconsultores/ventaboletos/dao/CorridaTramoDAO.java index 6af40d53a..4128ae82b 100644 --- a/src/com/rjconsultores/ventaboletos/dao/CorridaTramoDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/CorridaTramoDAO.java @@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.dao; import java.math.BigDecimal; import java.util.List; +import com.rjconsultores.ventaboletos.entidad.Corrida; import com.rjconsultores.ventaboletos.entidad.CorridaTramo; public interface CorridaTramoDAO extends GenericDAO { @@ -10,6 +11,8 @@ public interface CorridaTramoDAO extends GenericDAO { public List obtenerTramoTarjetaEmitida(); public List buscarTarjetaMesmaCorrida(CorridaTramo ct); + + List buscarCorridaTramoPorCorrida(Corrida corrida); public BigDecimal buscarSumTarjetaMesmaCorrida(CorridaTramo ct); diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java index 65bb006f4..fdc999727 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java @@ -24,10 +24,12 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.CorridaDAO; +import com.rjconsultores.ventaboletos.dao.CorridaTramoDAO; import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder; import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.Corrida; import com.rjconsultores.ventaboletos.entidad.Corrida.Id; +import com.rjconsultores.ventaboletos.entidad.CorridaTramo; import com.rjconsultores.ventaboletos.entidad.DiagramaAutobus; import com.rjconsultores.ventaboletos.entidad.Estado; import com.rjconsultores.ventaboletos.entidad.Marca; @@ -49,6 +51,8 @@ public class CorridaHibernateDAO extends GenericHibernateDAO corridas, Corrida corridaPadrao) { + List tramosPadrao = corridaTramoDao.buscarCorridaTramoPorCorrida(corridaPadrao); + + for (Corrida corrida : corridas) { + List tramos = corridaTramoDao.buscarCorridaTramoPorCorrida(corrida); + + for (CorridaTramo tramo : tramos) { + for (CorridaTramo tramoPadrao : tramosPadrao) { + if(tramoPadrao.getNumsecuencia().equals(tramo.getNumsecuencia())){ + tramo.setFechorsalida(mudarData(tramoPadrao.getFechorsalida(), tramo.getFechorsalida())); + tramo.setFechorsalidaH(mudarData(tramoPadrao.getFechorsalidaH(), tramo.getFechorsalidaH())); + tramo.setFechorSalidaOriginal(mudarData(tramoPadrao.getFechorSalidaOriginal(), tramo.getFechorSalidaOriginal())); + tramo.setFechorllegada(mudarData(tramoPadrao.getFechorllegada(), tramo.getFechorllegada())); + tramo.setFechorllegadaH(mudarData(tramoPadrao.getFechorllegadaH(), tramo.getFechorllegadaH())); + corridaTramoDao.actualizacion(tramo); + break; + } + + } + + + } + } + return true; + } + + private Date mudarData(Date dataPadrao,Date dataMudanca){ + Calendar calPadrao = Calendar.getInstance(); + calPadrao.setTime(dataPadrao); + Calendar calMudanca = Calendar.getInstance(); + calMudanca.setTime(dataMudanca); + + calMudanca.set(calMudanca.get(Calendar.YEAR), calMudanca.get(Calendar.MONTH), calMudanca.get(Calendar.DAY_OF_MONTH), + calPadrao.get(Calendar.HOUR_OF_DAY), calPadrao.get(Calendar.MINUTE), calPadrao.get(Calendar.SECOND)); + return calMudanca.getTime(); + } + + @Override + public Corrida buscarPorId(Id id) { + Criteria c = makeCriteria(); + c.add(Restrictions.eq("id", id)); + return (Corrida) c.uniqueResult(); + } } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaTramoHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaTramoHibernateDAO.java index 1cebe1112..e19ac5ce2 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaTramoHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaTramoHibernateDAO.java @@ -1,8 +1,10 @@ package com.rjconsultores.ventaboletos.dao.hibernate; +import java.math.BigDecimal; import java.util.List; import org.hibernate.Criteria; +import org.hibernate.Query; import org.hibernate.SessionFactory; import org.hibernate.criterion.Restrictions; import org.springframework.beans.factory.annotation.Autowired; @@ -10,13 +12,10 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.CorridaTramoDAO; +import com.rjconsultores.ventaboletos.entidad.Corrida; import com.rjconsultores.ventaboletos.entidad.CorridaTramo; -import com.rjconsultores.ventaboletos.entidad.RutaCombinacion; import com.rjconsultores.ventaboletos.utilerias.ActivoUtil; -import java.math.BigDecimal; -import org.hibernate.Query; - @Repository("corridaTramoDAO") public class CorridaTramoHibernateDAO extends GenericHibernateDAO implements CorridaTramoDAO { @@ -44,6 +43,14 @@ public class CorridaTramoHibernateDAO extends GenericHibernateDAO buscarCorridaTramoPorCorrida(Corrida corrida) { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("activo", ActivoUtil.ATIVO)); + c.add(Restrictions.eq("corrida", corrida)); + + return c.list(); + } public BigDecimal buscarSumTarjetaMesmaCorrida(CorridaTramo ct) { diff --git a/src/com/rjconsultores/ventaboletos/service/CorridaService.java b/src/com/rjconsultores/ventaboletos/service/CorridaService.java index 325bebfe6..d7be792f6 100644 --- a/src/com/rjconsultores/ventaboletos/service/CorridaService.java +++ b/src/com/rjconsultores/ventaboletos/service/CorridaService.java @@ -5,7 +5,6 @@ package com.rjconsultores.ventaboletos.service; import java.sql.Connection; -import java.sql.SQLException; import java.util.Date; import java.util.List; @@ -72,6 +71,8 @@ public interface CorridaService extends GenericService { public Boolean atualizarCorridaFecHusoFecVerano(Estado estado, Date dataInicial); Boolean atualizarCorridaFecHusoFecVerano(Estado estado, Date dataInicial, Integer corridaId); + + Boolean editarCorridaPorOutraCorrida(Estado estado, Date dataInicial, Integer corridaId, Date dataPadrao); public List buscarCorridaRelatorio(Connection conexao, Parada origem, Parada destino, Date feccorrida, Integer corridaId); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java index a13b56f96..569e6517a 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java @@ -1389,4 +1389,17 @@ public class CorridaServiceImpl implements CorridaService { return corridaDAO.buscaCorrridaFutura(ruta, fecInicio); } + @Override + @Transactional + public Boolean editarCorridaPorOutraCorrida(Estado estado, Date dataInicial, Integer corridaId, Date dataPadrao) { + List corridas = corridaDAO.buscarPorEstado(estado, dataInicial, corridaId); + Corrida corrida = corridaDAO.buscarPorId(new Corrida(corridaId, dataPadrao).getId()); + if(corrida != null){ + corridaDAO.editarCorridaPorOutraCorrida(corridas,corrida); + }else { + return false; + } + return true; + } + }