fixes bug #9339
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@71960 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
526891a3bb
commit
4d9a17a151
|
@ -4,11 +4,14 @@
|
||||||
*/
|
*/
|
||||||
package com.rjconsultores.ventaboletos.dao;
|
package com.rjconsultores.ventaboletos.dao;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.OrgaoTramo;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Parada;
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.TramoServicio;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Via;
|
import com.rjconsultores.ventaboletos.entidad.Via;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -24,6 +27,8 @@ public interface TramoDAO extends GenericDAO<Tramo, Integer> {
|
||||||
|
|
||||||
public Tramo busca(Parada origem, Parada destino, Via via);
|
public Tramo busca(Parada origem, Parada destino, Via via);
|
||||||
|
|
||||||
|
public List<OrgaoTramo> getLsOrgaoTramo(Tramo tramo);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hace la búsqueda del tramo que tiene origen - destino - via - clase servicio.
|
* Hace la búsqueda del tramo que tiene origen - destino - via - clase servicio.
|
||||||
|
@ -41,4 +46,5 @@ public interface TramoDAO extends GenericDAO<Tramo, Integer> {
|
||||||
public Long count(Via via);
|
public Long count(Via via);
|
||||||
public List<Via> obtenerViasOrigemDestino(Parada origem, Parada destino);
|
public List<Via> obtenerViasOrigemDestino(Parada origem, Parada destino);
|
||||||
public List<Tramo> obtenerPorOrigemDestinoFetchLazy(Parada origem, Parada destino) ;
|
public List<Tramo> obtenerPorOrigemDestinoFetchLazy(Parada origem, Parada destino) ;
|
||||||
|
public List<TramoServicio> obtenerTramosServiciosPorTramo(Tramo t);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,8 +18,10 @@ import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.dao.TramoDAO;
|
import com.rjconsultores.ventaboletos.dao.TramoDAO;
|
||||||
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.OrgaoTramo;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Parada;
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.TramoServicio;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Via;
|
import com.rjconsultores.ventaboletos.entidad.Via;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -44,6 +46,10 @@ public class TramoHibernateDAO extends GenericHibernateDAO<Tramo, Integer>
|
||||||
return c.list();
|
return c.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<TramoServicio> obtenerTramosServiciosPorTramo(Tramo t){
|
||||||
|
return obtenerID(t.getTramoId()).getTramoServicioList();
|
||||||
|
}
|
||||||
|
|
||||||
public Tramo obtenerPorOrigemDestino(Parada origem, Parada destino) {
|
public Tramo obtenerPorOrigemDestino(Parada origem, Parada destino) {
|
||||||
Criteria c = getSession().createCriteria(getPersistentClass());
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
||||||
c.add(Restrictions.eq("origem", origem));
|
c.add(Restrictions.eq("origem", origem));
|
||||||
|
@ -171,4 +177,8 @@ public class TramoHibernateDAO extends GenericHibernateDAO<Tramo, Integer>
|
||||||
|
|
||||||
return HibernateFix.count(c.list());
|
return HibernateFix.count(c.list());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<OrgaoTramo> getLsOrgaoTramo(Tramo tramo){
|
||||||
|
return obtenerID(tramo.getTramoId()).getLsOrgaoTramo();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -187,19 +187,17 @@ public class Tramo implements Serializable {
|
||||||
this.rutaCombinacionList = rutaCombinacionList;
|
this.rutaCombinacionList = rutaCombinacionList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<TramoServicio> getTramoServicioList() {
|
public List<TramoServicio> getTramoServicioList() throws LazyInitializationException{
|
||||||
List<TramoServicio> lsTramoServicio = new ArrayList<TramoServicio>();
|
List<TramoServicio> lsTramoServicio = new ArrayList<TramoServicio>();
|
||||||
try{
|
|
||||||
for (TramoServicio tramoServicio : this.tramoServicioList) {
|
|
||||||
if (tramoServicio.getActivo()) {
|
|
||||||
lsTramoServicio.add(tramoServicio);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.tramoServicioList = lsTramoServicio;
|
for (TramoServicio tramoServicio : this.tramoServicioList) {
|
||||||
} catch (LazyInitializationException le){
|
if (tramoServicio.getActivo()) {
|
||||||
Log.error("", le);
|
lsTramoServicio.add(tramoServicio);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.tramoServicioList = lsTramoServicio;
|
||||||
|
|
||||||
return lsTramoServicio;
|
return lsTramoServicio;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ package com.rjconsultores.ventaboletos.service;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.OrgaoTramo;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Parada;
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Via;
|
import com.rjconsultores.ventaboletos.entidad.Via;
|
||||||
|
@ -63,6 +64,8 @@ public interface TramoService {
|
||||||
|
|
||||||
public Tramo suscribirActualizar(Tramo tramo) throws BusinessException ;
|
public Tramo suscribirActualizar(Tramo tramo) throws BusinessException ;
|
||||||
|
|
||||||
|
public List<OrgaoTramo> getLsOrgaoTramoByTramo(Tramo tramo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gerar a descrição automática do tramo
|
* Gerar a descrição automática do tramo
|
||||||
*
|
*
|
||||||
|
|
|
@ -10,6 +10,7 @@ import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.apache.commons.collections.Predicate;
|
import org.apache.commons.collections.Predicate;
|
||||||
|
import org.hibernate.LazyInitializationException;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
@ -17,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
import com.rjconsultores.ventaboletos.dao.RutaCombinacionDAO;
|
import com.rjconsultores.ventaboletos.dao.RutaCombinacionDAO;
|
||||||
import com.rjconsultores.ventaboletos.dao.TramoDAO;
|
import com.rjconsultores.ventaboletos.dao.TramoDAO;
|
||||||
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.OrgaoTramo;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Parada;
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
||||||
import com.rjconsultores.ventaboletos.entidad.TramoServicio;
|
import com.rjconsultores.ventaboletos.entidad.TramoServicio;
|
||||||
|
@ -175,6 +177,14 @@ public class TramoServiceImpl implements TramoService {
|
||||||
return tramoDAO.obtenerPorOrigemDestinoFetchLazy(origem, destino);
|
return tramoDAO.obtenerPorOrigemDestinoFetchLazy(origem, destino);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<TramoServicio> getListTramoService(Tramo t){
|
||||||
|
return tramoDAO.obtenerTramosServiciosPorTramo(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<OrgaoTramo> getLsOrgaoTramoByTramo(Tramo tramo){
|
||||||
|
return tramoDAO.getLsOrgaoTramo(tramo);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = BusinessException.class)
|
@Transactional(rollbackFor = BusinessException.class)
|
||||||
public Tramo suscribirActualizar(Tramo tramo) throws BusinessException {
|
public Tramo suscribirActualizar(Tramo tramo) throws BusinessException {
|
||||||
|
@ -217,19 +227,24 @@ public class TramoServiceImpl implements TramoService {
|
||||||
// Esa validación tambien permite que el usuario quite una clase y la agregue de nuevo con otro tiempo de recorrido
|
// Esa validación tambien permite que el usuario quite una clase y la agregue de nuevo con otro tiempo de recorrido
|
||||||
List<TramoServicio> lsTramoServicioOriginal = tramoOriginal.getTramoServicioList();
|
List<TramoServicio> lsTramoServicioOriginal = tramoOriginal.getTramoServicioList();
|
||||||
for (final TramoServicio ts : lsTramoServicioOriginal) {
|
for (final TramoServicio ts : lsTramoServicioOriginal) {
|
||||||
boolean existe = CollectionUtils.exists(tramo.getTramoServicioList(), new Predicate() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean evaluate(Object o) {
|
boolean alterouClaseTramoServico = true;
|
||||||
TramoServicio t = (TramoServicio) o;
|
|
||||||
if (t.getActivo()) {
|
try{
|
||||||
return t.getClaseServicio().equals(ts.getClaseServicio());
|
tramo.getTramoServicioList();
|
||||||
}
|
} catch(LazyInitializationException le){
|
||||||
return false;
|
tramo.setTramoServicioList(getListTramoService(tramo));
|
||||||
|
}
|
||||||
|
|
||||||
|
for( TramoServicio tsNovo : tramo.getTramoServicioList()){
|
||||||
|
if (tsNovo.getClaseServicio().equals(ts.getClaseServicio())){
|
||||||
|
alterouClaseTramoServico = false;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
if (!existe) {
|
if (alterouClaseTramoServico) {
|
||||||
if (rutaCombinacionDAO.existeTramo(tramo, ts.getClaseServicio())) {
|
if (rutaCombinacionDAO.existeTramo(tramo, ts.getClaseServicio())) {
|
||||||
throw new BusinessException("TramoServiceImpl.msg.validacionTramoServicio");
|
throw new BusinessException("TramoServiceImpl.msg.validacionTramoServicio");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue