git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@25461 d1611594-4594-4d17-8e1d-87c2c4800839
parent
e23c010fd8
commit
a30cdadab1
|
@ -4,11 +4,25 @@
|
||||||
*/
|
*/
|
||||||
package com.rjconsultores.ventaboletos.dao;
|
package com.rjconsultores.ventaboletos.dao;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.entidad.DetDiagramaAutobus;
|
import com.rjconsultores.ventaboletos.entidad.DetDiagramaAutobus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Administrador
|
* @author Administrador
|
||||||
*/
|
*/
|
||||||
public interface DetDiagramaAutobusDAO extends GenericDAO<DetDiagramaAutobus, Short> {
|
public interface DetDiagramaAutobusDAO {
|
||||||
|
|
||||||
|
public List<DetDiagramaAutobus> obtenerTodos();
|
||||||
|
|
||||||
|
public DetDiagramaAutobus obtenerID(Short id);
|
||||||
|
|
||||||
|
public DetDiagramaAutobus suscribir(DetDiagramaAutobus entidad);
|
||||||
|
|
||||||
|
public DetDiagramaAutobus actualizacion(DetDiagramaAutobus entidad);
|
||||||
|
|
||||||
|
public void borrar(DetDiagramaAutobus entidad);
|
||||||
|
|
||||||
|
public Long count(String campo, Object o);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,9 +4,11 @@
|
||||||
*/
|
*/
|
||||||
package com.rjconsultores.ventaboletos.dao;
|
package com.rjconsultores.ventaboletos.dao;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Ruta;
|
import com.rjconsultores.ventaboletos.entidad.Ruta;
|
||||||
import com.rjconsultores.ventaboletos.entidad.RutaSecuencia;
|
import com.rjconsultores.ventaboletos.entidad.RutaSecuencia;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -15,5 +17,17 @@ import java.util.List;
|
||||||
public interface RutaSecuenciaDAO extends GenericDAO<RutaSecuencia, Integer> {
|
public interface RutaSecuenciaDAO extends GenericDAO<RutaSecuencia, Integer> {
|
||||||
|
|
||||||
public List<RutaSecuencia> buscarSecuenciaOrdenado(Ruta ruta);
|
public List<RutaSecuencia> buscarSecuenciaOrdenado(Ruta ruta);
|
||||||
|
|
||||||
public int borrarSecuencias(Ruta ruta);
|
public int borrarSecuencias(Ruta ruta);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hace la validación de la origen y destino dentro de la secuencia de la ruta. <br/>
|
||||||
|
*
|
||||||
|
* La parada de origen no puede tener el numero de secuencia mayor o igual a la parada de destino<br/>
|
||||||
|
* @param ruta
|
||||||
|
* @param origen
|
||||||
|
* @param destino
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean paradaSecuenciaValida(Ruta ruta, Parada origen,Parada destino);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,9 +4,8 @@
|
||||||
*/
|
*/
|
||||||
package com.rjconsultores.ventaboletos.dao.hibernate;
|
package com.rjconsultores.ventaboletos.dao.hibernate;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.dao.DetDiagramaAutobusDAO;
|
|
||||||
import com.rjconsultores.ventaboletos.entidad.DetDiagramaAutobus;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.hibernate.Criteria;
|
import org.hibernate.Criteria;
|
||||||
import org.hibernate.SessionFactory;
|
import org.hibernate.SessionFactory;
|
||||||
import org.hibernate.criterion.Restrictions;
|
import org.hibernate.criterion.Restrictions;
|
||||||
|
@ -14,13 +13,15 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.dao.DetDiagramaAutobusDAO;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.DetDiagramaAutobus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Administrador
|
* @author Administrador
|
||||||
*/
|
*/
|
||||||
@Repository("detDiagramaAutobusDAO")
|
@Repository("detDiagramaAutobusDAO")
|
||||||
public class DetDiagramaAutobusHibernateDAO extends GenericHibernateDAO<DetDiagramaAutobus, Short>
|
public class DetDiagramaAutobusHibernateDAO extends GenericHibernateDAO<DetDiagramaAutobus, Short> implements DetDiagramaAutobusDAO {
|
||||||
implements DetDiagramaAutobusDAO {
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public DetDiagramaAutobusHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
public DetDiagramaAutobusHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
||||||
|
|
|
@ -43,9 +43,13 @@ public class EsquemaAsientoHibernateDAO extends GenericHibernateDAO<EsquemaAsien
|
||||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||||
|
|
||||||
EsquemaAsiento ea = new EsquemaAsiento();
|
EsquemaAsiento ea = new EsquemaAsiento();
|
||||||
if (c.list().size() > 0) {
|
|
||||||
ea = (EsquemaAsiento) c.uniqueResult();
|
List<EsquemaAsiento> lsAsientos = c.list();
|
||||||
|
|
||||||
|
if (!lsAsientos.isEmpty()) {
|
||||||
|
ea = lsAsientos.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ea;
|
return ea;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
package com.rjconsultores.ventaboletos.dao.hibernate;
|
package com.rjconsultores.ventaboletos.dao.hibernate;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.dao.RutaSecuenciaDAO;
|
import com.rjconsultores.ventaboletos.dao.RutaSecuenciaDAO;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Ruta;
|
import com.rjconsultores.ventaboletos.entidad.Ruta;
|
||||||
import com.rjconsultores.ventaboletos.entidad.RutaSecuencia;
|
import com.rjconsultores.ventaboletos.entidad.RutaSecuencia;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
||||||
|
@ -13,6 +14,7 @@ import java.util.List;
|
||||||
import org.hibernate.Criteria;
|
import org.hibernate.Criteria;
|
||||||
import org.hibernate.Query;
|
import org.hibernate.Query;
|
||||||
import org.hibernate.SessionFactory;
|
import org.hibernate.SessionFactory;
|
||||||
|
import org.hibernate.criterion.Projections;
|
||||||
import org.hibernate.criterion.Restrictions;
|
import org.hibernate.criterion.Restrictions;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
@ -40,9 +42,9 @@ public class RutaSecuenciaHibernateDAO extends GenericHibernateDAO<RutaSecuencia
|
||||||
|
|
||||||
c.addOrder(Order.asc("numsecuencia"));
|
c.addOrder(Order.asc("numsecuencia"));
|
||||||
|
|
||||||
|
|
||||||
return c.list();
|
return c.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int borrarSecuencias(Ruta ruta) {
|
public int borrarSecuencias(Ruta ruta) {
|
||||||
Query query = this.getSession().createQuery("UPDATE RutaSecuencia SET activo = false, fecmodif = current_timestamp(), usuarioId= :usuario where ruta = :ruta");
|
Query query = this.getSession().createQuery("UPDATE RutaSecuencia SET activo = false, fecmodif = current_timestamp(), usuarioId= :usuario where ruta = :ruta");
|
||||||
query.setParameter("usuario", UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
query.setParameter("usuario", UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||||
|
@ -50,4 +52,49 @@ public class RutaSecuenciaHibernateDAO extends GenericHibernateDAO<RutaSecuencia
|
||||||
|
|
||||||
return query.executeUpdate();
|
return query.executeUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean paradaSecuenciaValida(Ruta ruta, Parada origen, Parada destino) {
|
||||||
|
Criteria cOrigen = makeCriteria();
|
||||||
|
cOrigen.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||||
|
cOrigen.add(Restrictions.eq("ruta", ruta));
|
||||||
|
cOrigen.setProjection(Projections.property("numsecuencia"));
|
||||||
|
|
||||||
|
Criteria cOrigenTramo = cOrigen.createCriteria("tramo");
|
||||||
|
cOrigenTramo.add(Restrictions.eq("origem", origen));
|
||||||
|
|
||||||
|
|
||||||
|
Short numSecOrigen = (Short) cOrigen.uniqueResult();
|
||||||
|
|
||||||
|
Criteria cDestino = makeCriteria();
|
||||||
|
cDestino.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||||
|
cDestino.add(Restrictions.eq("ruta", ruta));
|
||||||
|
cDestino.setProjection(Projections.property("numsecuencia"));
|
||||||
|
|
||||||
|
Criteria cDestinoTramo = cDestino.createCriteria("tramo");
|
||||||
|
cDestinoTramo.add(Restrictions.eq("origem", destino));
|
||||||
|
|
||||||
|
|
||||||
|
Short numSecDestino = (Short) cDestino.uniqueResult();
|
||||||
|
|
||||||
|
// destino final da ruta
|
||||||
|
if (numSecDestino == null) {
|
||||||
|
cDestino = makeCriteria();
|
||||||
|
cDestino.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||||
|
cDestino.add(Restrictions.eq("ruta", ruta));
|
||||||
|
cDestino.setProjection(Projections.property("numsecuencia"));
|
||||||
|
|
||||||
|
cDestinoTramo = cDestino.createCriteria("tramo");
|
||||||
|
cDestinoTramo.add(Restrictions.eq("destino", destino));
|
||||||
|
|
||||||
|
|
||||||
|
numSecDestino = (Short) cDestino.uniqueResult();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((numSecOrigen != null) && (numSecDestino != null)) {
|
||||||
|
return (numSecOrigen.compareTo(numSecDestino) < 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,11 +4,23 @@
|
||||||
*/
|
*/
|
||||||
package com.rjconsultores.ventaboletos.service;
|
package com.rjconsultores.ventaboletos.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.entidad.DetDiagramaAutobus;
|
import com.rjconsultores.ventaboletos.entidad.DetDiagramaAutobus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Administrador
|
* @author Administrador
|
||||||
*/
|
*/
|
||||||
public interface DetDiagramaAutobusService extends GenericService<DetDiagramaAutobus, Short> {
|
public interface DetDiagramaAutobusService {
|
||||||
|
|
||||||
|
public List<DetDiagramaAutobus> obtenerTodos();
|
||||||
|
|
||||||
|
public DetDiagramaAutobus obtenerID(Short id);
|
||||||
|
|
||||||
|
public DetDiagramaAutobus suscribir(DetDiagramaAutobus entidad);
|
||||||
|
|
||||||
|
public DetDiagramaAutobus actualizacion(DetDiagramaAutobus entidad);
|
||||||
|
|
||||||
|
public void borrar(DetDiagramaAutobus entidad);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,17 +4,27 @@
|
||||||
*/
|
*/
|
||||||
package com.rjconsultores.ventaboletos.service;
|
package com.rjconsultores.ventaboletos.service;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.entidad.DiagramaAutobus;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.DiagramaAutobus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Administrador
|
* @author Administrador
|
||||||
*/
|
*/
|
||||||
public interface DiagramaAutobusService extends GenericService<DiagramaAutobus, Short> {
|
public interface DiagramaAutobusService {
|
||||||
|
|
||||||
public List<DiagramaAutobus> buscar(String descDiagrama, Short maxparados,
|
public List<DiagramaAutobus> obtenerTodos();
|
||||||
Short cantasientos);
|
|
||||||
|
public DiagramaAutobus obtenerID(Short id);
|
||||||
|
|
||||||
|
public DiagramaAutobus suscribir(DiagramaAutobus entidad);
|
||||||
|
|
||||||
|
public DiagramaAutobus actualizacion(DiagramaAutobus entidad);
|
||||||
|
|
||||||
|
public void borrar(DiagramaAutobus entidad);
|
||||||
|
|
||||||
|
public List<DiagramaAutobus> buscar(String descDiagrama, Short maxparados, Short cantasientos);
|
||||||
|
|
||||||
public List<DiagramaAutobus> buscar(String descDiagrama);
|
public List<DiagramaAutobus> buscar(String descDiagrama);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,17 +4,50 @@
|
||||||
*/
|
*/
|
||||||
package com.rjconsultores.ventaboletos.service;
|
package com.rjconsultores.ventaboletos.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento;
|
import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento;
|
||||||
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
|
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
|
||||||
import java.util.List;
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
|
import com.rjconsultores.ventaboletos.exception.BusinessException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Rafius
|
* @author Rafius
|
||||||
*/
|
*/
|
||||||
public interface EsquemaAsientoService extends GenericService<EsquemaAsiento, Integer> {
|
public interface EsquemaAsientoService {
|
||||||
|
|
||||||
|
public EsquemaAsiento obtenerID(Integer id);
|
||||||
|
|
||||||
|
public EsquemaAsiento suscribir(EsquemaAsiento entidad);
|
||||||
|
|
||||||
|
public EsquemaAsiento actualizacion(EsquemaAsiento entidad);
|
||||||
|
|
||||||
|
public void borrar(EsquemaAsiento entidad);
|
||||||
|
|
||||||
public List<EsquemaAsiento> obtenerPorCorrida(EsquemaCorrida esquemaCorrida);
|
public List<EsquemaAsiento> obtenerPorCorrida(EsquemaCorrida esquemaCorrida);
|
||||||
|
|
||||||
public EsquemaAsiento obtenerPorCorridaeAsiento(EsquemaCorrida esquemaCorrida, String asiento);
|
public EsquemaAsiento obtenerPorCorridaeAsiento(EsquemaCorrida esquemaCorrida, String asiento);
|
||||||
|
|
||||||
|
/***
|
||||||
|
* Hace la configuración de bloqueo de asientos de acuerdo la origen informada. <br/>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param asiento - Indica los asientos. Ej.: 1,2,3,4 o 1-4,
|
||||||
|
* @param origenId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public void bloqueoAsientoExclusivo(EsquemaCorrida esquemaCorrida,String asiento,Parada origen) throws BusinessException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hace la configuración de ocupación de bloqueo de asientos de acuerdo con el tramo informado (origen - destino). <br/>
|
||||||
|
*
|
||||||
|
* @param asiento- Indica los asientos. Ej.: 1,2,3,4 o 1-4,
|
||||||
|
* @param origenId
|
||||||
|
* @param destinoId
|
||||||
|
* @param motivoOcupacion
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public void bloqueoAsientoOcupacion(EsquemaCorrida esquemaCorrida,String asiento,Parada origen,Parada destino,String motivoOcupacion) throws BusinessException;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,16 +4,18 @@
|
||||||
*/
|
*/
|
||||||
package com.rjconsultores.ventaboletos.service.impl;
|
package com.rjconsultores.ventaboletos.service.impl;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.dao.DiagramaAutobusDAO;
|
import com.rjconsultores.ventaboletos.dao.DiagramaAutobusDAO;
|
||||||
import com.rjconsultores.ventaboletos.entidad.DetDiagramaAutobus;
|
import com.rjconsultores.ventaboletos.entidad.DetDiagramaAutobus;
|
||||||
import com.rjconsultores.ventaboletos.entidad.DiagramaAutobus;
|
import com.rjconsultores.ventaboletos.entidad.DiagramaAutobus;
|
||||||
import com.rjconsultores.ventaboletos.service.DiagramaAutobusService;
|
import com.rjconsultores.ventaboletos.service.DiagramaAutobusService;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.List;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -67,8 +69,7 @@ public class DiagramaAutobusServiceImpl implements DiagramaAutobusService {
|
||||||
diagramaAutobusDAO.actualizacion(entidad);
|
diagramaAutobusDAO.actualizacion(entidad);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<DiagramaAutobus> buscar(String descDiagrama, Short maxparados,
|
public List<DiagramaAutobus> buscar(String descDiagrama, Short maxparados,Short cantasientos) {
|
||||||
Short cantasientos) {
|
|
||||||
return diagramaAutobusDAO.buscar(descDiagrama, maxparados, cantasientos);
|
return diagramaAutobusDAO.buscar(descDiagrama, maxparados, cantasientos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,17 +4,29 @@
|
||||||
*/
|
*/
|
||||||
package com.rjconsultores.ventaboletos.service.impl;
|
package com.rjconsultores.ventaboletos.service.impl;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.dao.EsquemaAsientoDAO;
|
import java.util.ArrayList;
|
||||||
import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento;
|
|
||||||
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
|
|
||||||
import com.rjconsultores.ventaboletos.service.EsquemaAsientoService;
|
|
||||||
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
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;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.dao.EsquemaAsientoDAO;
|
||||||
|
import com.rjconsultores.ventaboletos.dao.RutaSecuenciaDAO;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.DetDiagramaAutobus;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.DiagramaAutobus;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
|
import com.rjconsultores.ventaboletos.exception.BusinessException;
|
||||||
|
import com.rjconsultores.ventaboletos.service.DiagramaAutobusService;
|
||||||
|
import com.rjconsultores.ventaboletos.service.EsquemaAsientoService;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Rafius
|
* @author Rafius
|
||||||
|
@ -22,12 +34,15 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
@Service("esquemaAsientoService")
|
@Service("esquemaAsientoService")
|
||||||
public class EsquemaAsientoServiceImpl implements EsquemaAsientoService {
|
public class EsquemaAsientoServiceImpl implements EsquemaAsientoService {
|
||||||
|
|
||||||
|
private static Logger log = LoggerFactory.getLogger(EsquemaAsientoServiceImpl.class);
|
||||||
|
private static final String BLOQUEO_EXCLUSIVO = "BLOQUEO_EXCLUSIVO";
|
||||||
|
private static final String BLOQUEO_OCUPACION = "BLOQUEO_OCUPACION";
|
||||||
@Autowired
|
@Autowired
|
||||||
private EsquemaAsientoDAO esquemaAsientoDAO;
|
private EsquemaAsientoDAO esquemaAsientoDAO;
|
||||||
|
@Autowired
|
||||||
public List<EsquemaAsiento> obtenerTodos() {
|
private RutaSecuenciaDAO rutaSecuenciaDAO;
|
||||||
return esquemaAsientoDAO.obtenerTodos();
|
@Autowired
|
||||||
}
|
private DiagramaAutobusService diagramaAutobusService;
|
||||||
|
|
||||||
public EsquemaAsiento obtenerID(Integer id) {
|
public EsquemaAsiento obtenerID(Integer id) {
|
||||||
return esquemaAsientoDAO.obtenerID(id);
|
return esquemaAsientoDAO.obtenerID(id);
|
||||||
|
@ -67,4 +82,142 @@ public class EsquemaAsientoServiceImpl implements EsquemaAsientoService {
|
||||||
public EsquemaAsiento obtenerPorCorridaeAsiento(EsquemaCorrida esquemaCorrida, String asiento) {
|
public EsquemaAsiento obtenerPorCorridaeAsiento(EsquemaCorrida esquemaCorrida, String asiento) {
|
||||||
return esquemaAsientoDAO.obtenerPorCorridaeAsiento(esquemaCorrida, asiento);
|
return esquemaAsientoDAO.obtenerPorCorridaeAsiento(esquemaCorrida, asiento);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor=BusinessException.class)
|
||||||
|
@Override
|
||||||
|
public void bloqueoAsientoExclusivo(EsquemaCorrida esquemaCorrida, String strAsiento, Parada origen) throws BusinessException {
|
||||||
|
|
||||||
|
if (origen == null) {
|
||||||
|
throw new BusinessException("editarConfiguracionCorridaAsientoController.MSG.origenObligatoria");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
hacerBloqueo(BLOQUEO_EXCLUSIVO, esquemaCorrida, strAsiento, origen, null, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean hacerBloqueo(String tipoBloqueo,EsquemaCorrida esquemaCorrida, String strAsiento, Parada origen, Parada destino, String motivoOcupacion) throws BusinessException {
|
||||||
|
List<String> asientos = cargarAsientos(strAsiento);
|
||||||
|
|
||||||
|
DiagramaAutobus da = diagramaAutobusService.obtenerID(esquemaCorrida.getRolOperativo().getDiagramaAutobus().getDiagramaautobusId());
|
||||||
|
|
||||||
|
for (String asiento : asientos) {
|
||||||
|
|
||||||
|
boolean vende = true;
|
||||||
|
List<DetDiagramaAutobus> listDda = da.getDetDiagramaAutobusList();
|
||||||
|
for (DetDiagramaAutobus dd : listDda) {
|
||||||
|
if (dd.getAsiento().equals(asiento)) {
|
||||||
|
if (!dd.getVendible()) {
|
||||||
|
vende = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (vende) {
|
||||||
|
EsquemaAsiento es = new EsquemaAsiento();
|
||||||
|
es.setActivo(Boolean.TRUE);
|
||||||
|
es.setFecmodif(Calendar.getInstance().getTime());
|
||||||
|
es.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||||
|
es.setNumasiento(asiento.toString());
|
||||||
|
|
||||||
|
if (tipoBloqueo.equals(BLOQUEO_EXCLUSIVO)){
|
||||||
|
es.setIndvendible(Boolean.TRUE);
|
||||||
|
es.setParada(origen);
|
||||||
|
}else{
|
||||||
|
es.setIndvendible(Boolean.FALSE);
|
||||||
|
es.setParada(origen);
|
||||||
|
es.setDestino(destino);
|
||||||
|
es.setMotivobloqueo(motivoOcupacion);
|
||||||
|
}
|
||||||
|
|
||||||
|
es.setEsquemaCorrida(esquemaCorrida);
|
||||||
|
|
||||||
|
EsquemaAsiento esquemaAsientoBusqueda = obtenerPorCorridaeAsiento(esquemaCorrida, asiento);
|
||||||
|
if (esquemaAsientoBusqueda.getEsquemaasientoId() == null) {
|
||||||
|
es = suscribir(es);
|
||||||
|
|
||||||
|
//validação extra para garantir que salvou corretamente
|
||||||
|
if (tipoBloqueo.equals(BLOQUEO_EXCLUSIVO)){
|
||||||
|
|
||||||
|
if ( !(es.getIndvendible() && (es.getParada() != null) && (es.getDestino() == null))){
|
||||||
|
throw new BusinessException("editarConfiguracionCorridaAsientoController.MSG.validacionGrabacion");
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
//validação extra para garantir que salvou corretamente
|
||||||
|
if ( !(!es.getIndvendible() && (es.getParada() != null) && (es.getDestino() != null))){
|
||||||
|
throw new BusinessException("editarConfiguracionCorridaAsientoController.MSG.validacionGrabacion");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new BusinessException("editarConfiguracionCorridaAsientoController.MSG.poltronaJahConfigurada",new Object[]{asiento});
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
throw new BusinessException("editarConfiguracionCorridaAsientoController.MSG.poltronaNoVendible",new Object[]{asiento});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor=BusinessException.class)
|
||||||
|
@Override
|
||||||
|
public void bloqueoAsientoOcupacion(EsquemaCorrida esquemaCorrida, String strAsiento, Parada origen, Parada destino, String motivoOcupacion) throws BusinessException {
|
||||||
|
|
||||||
|
if (origen == null) {
|
||||||
|
throw new BusinessException("editarConfiguracionCorridaAsientoController.MSG.origenObligatoria");
|
||||||
|
}
|
||||||
|
if (destino == null) {
|
||||||
|
throw new BusinessException("editarConfiguracionCorridaAsientoController.MSG.destinoObligatoria");
|
||||||
|
}
|
||||||
|
if (StringUtils.isBlank(motivoOcupacion)) {
|
||||||
|
throw new BusinessException("editarConfiguracionCorridaAsientoController.MSG.motivo");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!rutaSecuenciaDAO.paradaSecuenciaValida(esquemaCorrida.getRuta(), origen, destino)){
|
||||||
|
throw new BusinessException("editarConfiguracionCorridaAsientoController.MSG.tramo");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
hacerBloqueo(BLOQUEO_OCUPACION, esquemaCorrida, strAsiento, origen, destino, motivoOcupacion);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hace la conversion de la string strAsientos en una lista de asientos
|
||||||
|
* válidos<br/>
|
||||||
|
*
|
||||||
|
* @param strAsientos
|
||||||
|
* @return
|
||||||
|
* @throws BusinessException
|
||||||
|
*/
|
||||||
|
private List<String> cargarAsientos(String strAsientos) throws BusinessException {
|
||||||
|
List<String> todosAsientos = new ArrayList<String>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
String asientos[] = strAsientos.split(",");
|
||||||
|
|
||||||
|
for (int i = 0; i < asientos.length; i++) {
|
||||||
|
if (asientos[i].contains("-")) {
|
||||||
|
String intervalo[] = asientos[i].split("-");
|
||||||
|
Integer ini = Integer.parseInt(intervalo[0]);
|
||||||
|
Integer fim = Integer.parseInt(intervalo[1]);
|
||||||
|
|
||||||
|
while (ini <= fim) {
|
||||||
|
todosAsientos.add(ini.toString());
|
||||||
|
ini++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Integer.parseInt(asientos[i]);//para validar
|
||||||
|
todosAsientos.add(asientos[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (NumberFormatException t) {
|
||||||
|
throw new BusinessException("editarConfiguracionCorridaAsientoController.MSG.invalido");
|
||||||
|
} catch (Throwable t) {
|
||||||
|
log.error("", t);
|
||||||
|
|
||||||
|
throw new BusinessException("editarConfiguracionCorridaAsientoController.MSG.invalido");
|
||||||
|
}
|
||||||
|
|
||||||
|
return todosAsientos;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue