fixed bug #8103 - Inclusão de funcionalidade para copiar horário de serviços que estão corretos.

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@61562 d1611594-4594-4d17-8e1d-87c2c4800839
master
thiago 2016-10-13 19:58:28 +00:00
parent a36d53b8bc
commit 3eb7247b42
6 changed files with 82 additions and 5 deletions

View File

@ -38,6 +38,8 @@ public interface CorridaDAO extends GenericDAO<Corrida, Corrida.Id> {
public List<Corrida> buscarPorRolOperativoCorridasFuturas(DiagramaAutobus diagramaAutobus);
public List<Corrida> buscarPorFecCorrida(Date value);
public Corrida buscarPorId(Id id);
public Long count(Ruta ruta);
@ -82,6 +84,8 @@ public interface CorridaDAO extends GenericDAO<Corrida, Corrida.Id> {
public void actualizaFecHusoFecVerano(Corrida corrida);
public void actualizaFecHusoFecVerano(List<Corrida> corridas);
Boolean editarCorridaPorOutraCorrida(List<Corrida> corridas, Corrida corrida);
public List<Corrida> buscarPorEstado(Estado estado, Date dataInicial);

View File

@ -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<CorridaTramo, Integer> {
@ -10,6 +11,8 @@ public interface CorridaTramoDAO extends GenericDAO<CorridaTramo, Integer> {
public List<CorridaTramo> obtenerTramoTarjetaEmitida();
public List<CorridaTramo> buscarTarjetaMesmaCorrida(CorridaTramo ct);
List<CorridaTramo> buscarCorridaTramoPorCorrida(Corrida corrida);
public BigDecimal buscarSumTarjetaMesmaCorrida(CorridaTramo ct);

View File

@ -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<Corrida, Corrida.Id
private static final Integer ULTIMA_HORA_DIA = Integer.valueOf(23);
private static final Integer ULTIMO_MINUTO_SEGUNDO = Integer.valueOf(59);
private static final Integer ULTIMO_MILLISEGUNDO = Integer.valueOf(99);
@Autowired
private CorridaTramoDAO corridaTramoDao;
@Autowired
public CorridaHibernateDAO(@Qualifier("sessionFactory") final SessionFactory factory) {
@ -702,4 +706,49 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
}
return null;
}
@Override
public Boolean editarCorridaPorOutraCorrida(List<Corrida> corridas, Corrida corridaPadrao) {
List<CorridaTramo> tramosPadrao = corridaTramoDao.buscarCorridaTramoPorCorrida(corridaPadrao);
for (Corrida corrida : corridas) {
List<CorridaTramo> 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();
}
}

View File

@ -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<CorridaTramo, Integer> implements CorridaTramoDAO {
@ -44,6 +43,14 @@ public class CorridaTramoHibernateDAO extends GenericHibernateDAO<CorridaTramo,
return c.list();
}
public List<CorridaTramo> 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) {

View File

@ -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<Corrida, Corrida.Id> {
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<Corrida> buscarCorridaRelatorio(Connection conexao, Parada origem, Parada destino, Date feccorrida, Integer corridaId);

View File

@ -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<Corrida> 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;
}
}