diff --git a/src/com/rjconsultores/ventaboletos/dao/ConexionDAO.java b/src/com/rjconsultores/ventaboletos/dao/ConexionDAO.java index ca3d5695f..16f97e36c 100644 --- a/src/com/rjconsultores/ventaboletos/dao/ConexionDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/ConexionDAO.java @@ -17,4 +17,6 @@ public interface ConexionDAO extends GenericDAO { public List buscarConexiones(Integer origenId, Integer destinoId); public List buscarPorConexionCtrl(Long conexcionCtrlId); + + public List buscarConexionesValidas(); } diff --git a/src/com/rjconsultores/ventaboletos/dao/ConexionExcepcionDAO.java b/src/com/rjconsultores/ventaboletos/dao/ConexionExcepcionDAO.java new file mode 100644 index 000000000..8f1f4f65f --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/ConexionExcepcionDAO.java @@ -0,0 +1,11 @@ +package com.rjconsultores.ventaboletos.dao; + +import java.util.List; + +import com.rjconsultores.ventaboletos.entidad.ConexionExcepcion; + +public interface ConexionExcepcionDAO extends GenericDAO { + + public List obtenerConexionExcepcionsActivo(); + +} diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionExcepcionHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionExcepcionHibernateDAO.java new file mode 100644 index 000000000..686b6a5bd --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionExcepcionHibernateDAO.java @@ -0,0 +1,30 @@ +package com.rjconsultores.ventaboletos.dao.hibernate; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.SessionFactory; +import org.hibernate.criterion.Restrictions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Repository; + +import com.rjconsultores.ventaboletos.dao.ConexionExcepcionDAO; +import com.rjconsultores.ventaboletos.entidad.ConexionExcepcion; + +@Repository("conexionExcepcionDAO") +public class ConexionExcepcionHibernateDAO extends GenericHibernateDAO + implements ConexionExcepcionDAO { + + @Autowired + public ConexionExcepcionHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { + setSessionFactory(factory); + } + + @Override + public List obtenerConexionExcepcionsActivo() { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + return c.list(); + } +} diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionHibernateDAO.java index adab2bff6..01969ae96 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionHibernateDAO.java @@ -1,5 +1,7 @@ package com.rjconsultores.ventaboletos.dao.hibernate; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -29,6 +31,55 @@ public class ConexionHibernateDAO extends GenericHibernateDAO setSessionFactory(factory); } + @Override + public List buscarConexionesValidas() { + + StringBuffer sb = new StringBuffer(); + sb.append(" select "); + sb.append(" cct.conexionctrl_id as conexionCtrlId, "); + sb.append(" po1.descparada as conOrigen, "); + sb.append(" pd1.descparada as conDestino, "); + sb.append(" c.numgrupo as grupo, "); + sb.append(" po2.descparada as tramoOrigen, "); + sb.append(" pd2.descparada as tramoDestino "); + sb.append(" from conexion c "); + sb.append(" inner join conexion_conf cf on ( cf.conexionctrl_id = c.conexionctrl_id ), "); + sb.append(" conexion_ctrl cct, "); + sb.append(" parada po1, "); + sb.append(" parada pd1, "); + sb.append(" parada po2, "); + sb.append(" parada pd2 "); + sb.append(" where c.activo = 1 "); + sb.append(" and cct.conexionctrl_id = c.conexionctrl_id "); + sb.append(" and po1.parada_id = cct.origen_id "); + sb.append(" and pd1.parada_id = cct.destino_id "); + sb.append(" and po2.parada_id = c.origen_id "); + sb.append(" and pd2.parada_id = c.destino_id "); + sb.append(" order by po1.descparada, "); + sb.append(" pd1.descparada, "); + sb.append(" c.numgrupo, "); + sb.append(" po2.descparada, "); + sb.append(" pd2.descparada "); + + Query query = getSession().createSQLQuery(sb.toString()); + List conexionVOs = new ArrayList(); + + for (Object o : query.list()) { + Object[] oc = (Object[]) o; + + ConexionVO conexionVO = new ConexionVO(); + conexionVO.setConexionCtrlId(((BigDecimal) oc[0]).longValue()); + conexionVO.setConOrigen((String) oc[1]); + conexionVO.setConDestino((String) oc[2]); + conexionVO.setGrupo(((BigDecimal) oc[3]).intValue()); + conexionVO.setTramoOrigen((String) oc[4]); + conexionVO.setTramoDestino((String) oc[5]); + conexionVOs.add(conexionVO); + } + + return conexionVOs; + } + @Override public List buscarConexiones(Integer origenId, Integer destinoId) { StringBuilder sb = new StringBuilder(""); diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java index 562187ac3..ca42efd68 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/CorridaHibernateDAO.java @@ -126,7 +126,6 @@ public class CorridaHibernateDAO extends GenericHibernateDAO buscarPorId(final Integer idCorrida) { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); - c.add(Restrictions.eq("id.corridaId", idCorrida)); return c.list(); diff --git a/src/com/rjconsultores/ventaboletos/entidad/ConexionExcepcion.java b/src/com/rjconsultores/ventaboletos/entidad/ConexionExcepcion.java new file mode 100644 index 000000000..e3cf9013c --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/entidad/ConexionExcepcion.java @@ -0,0 +1,134 @@ +package com.rjconsultores.ventaboletos.entidad; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.Basic; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@Entity +@SequenceGenerator(name = "CONEXION_EXCEPCION_SEQ", sequenceName = "CONEXION_EXCEPCION_SEQ", allocationSize = 1) +@Table(name = "CONEXION_EXCEPCION") +public class ConexionExcepcion implements Serializable { + + private static final long serialVersionUID = 1L; + @Id + @Basic(optional = false) + @GeneratedValue(strategy = GenerationType.AUTO, generator = "CONEXION_EXCEPCION_SEQ") + @Column(name = "CONEXIONEXCEPCION_ID") + private Long conexionExcepcionId; + @Column(name = "NUMCORRIDA") + private Integer numcorrida; + @Column(name = "CONEXIONCTRL_ID") + private Long conexionctrlId; + @Column(name = "ACTIVO") + private Boolean activo; + @Column(name = "FECMODIF") + @Temporal(TemporalType.TIMESTAMP) + private Date fecmodif; + @Column(name = "USUARIO_ID") + private Integer usuarioId; + + public ConexionExcepcion() { + } + + public ConexionExcepcion(Long conexionExcepcionId) { + this.conexionExcepcionId = conexionExcepcionId; + } + + public ConexionExcepcion(Long conexionExcepcionId, Integer numcorrida, Long conexionctrlId, Boolean activo, Date fecmodif, Integer usuarioId) { + this.conexionExcepcionId = conexionExcepcionId; + this.numcorrida = numcorrida; + this.conexionctrlId = conexionctrlId; + this.activo = activo; + this.fecmodif = fecmodif; + this.usuarioId = usuarioId; + } + + public Long getConexionExcepcionId() { + return conexionExcepcionId; + } + + public void setConexionExcepcionId(Long conexionExcepcionId) { + this.conexionExcepcionId = conexionExcepcionId; + } + + public Integer getNumcorrida() { + return numcorrida; + } + + public void setNumcorrida(Integer numcorrida) { + this.numcorrida = numcorrida; + } + + public Long getConexionctrlId() { + return conexionctrlId; + } + + public void setConexionctrlId(Long conexionctrlId) { + this.conexionctrlId = conexionctrlId; + } + + public Boolean getActivo() { + return activo; + } + + public void setActivo(Boolean activo) { + this.activo = activo; + } + + public Date getFecmodif() { + return fecmodif; + } + + public void setFecmodif(Date fecmodif) { + this.fecmodif = fecmodif; + } + + public Integer getUsuarioId() { + return usuarioId; + } + + public void setUsuarioId(Integer usuarioId) { + this.usuarioId = usuarioId; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((conexionExcepcionId == null) ? 0 : conexionExcepcionId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + ConexionExcepcion other = (ConexionExcepcion) obj; + if (conexionExcepcionId == null) { + if (other.conexionExcepcionId != null) + return false; + } else if (!conexionExcepcionId.equals(other.conexionExcepcionId)) + return false; + return true; + } + + @Override + public String toString() { + return "ConexionExcepcion [conexionExcepcionId=" + conexionExcepcionId + "]"; + } + +} diff --git a/src/com/rjconsultores/ventaboletos/service/ConexionExcepcionService.java b/src/com/rjconsultores/ventaboletos/service/ConexionExcepcionService.java new file mode 100644 index 000000000..f1f6ca08f --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/ConexionExcepcionService.java @@ -0,0 +1,11 @@ +package com.rjconsultores.ventaboletos.service; + +import java.util.List; + +import com.rjconsultores.ventaboletos.entidad.ConexionExcepcion; + +public interface ConexionExcepcionService extends GenericService { + + public List obtenerConexionExcepcionsActivo(); + +} diff --git a/src/com/rjconsultores/ventaboletos/service/ConexionService.java b/src/com/rjconsultores/ventaboletos/service/ConexionService.java index 7e2fa91f8..2343b77d2 100644 --- a/src/com/rjconsultores/ventaboletos/service/ConexionService.java +++ b/src/com/rjconsultores/ventaboletos/service/ConexionService.java @@ -22,4 +22,7 @@ public interface ConexionService { public void borrar(Conexion conexion); public List buscarPorConexionCtrl(Long conexcionCtrlId); + + public List buscarConexionesValidas(); + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ConexionExcepcionServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ConexionExcepcionServiceImpl.java new file mode 100644 index 000000000..9cf52a83a --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/impl/ConexionExcepcionServiceImpl.java @@ -0,0 +1,67 @@ +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.ConexionExcepcionDAO; +import com.rjconsultores.ventaboletos.entidad.ConexionExcepcion; +import com.rjconsultores.ventaboletos.service.ConexionExcepcionService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; + +@Service("conexionExcepcionService") +public class ConexionExcepcionServiceImpl implements ConexionExcepcionService { + + @Autowired + private ConexionExcepcionDAO conexionExcepcionDAO; + + @Override + public List obtenerTodos() { + return conexionExcepcionDAO.obtenerTodos(); + } + + @Override + public List obtenerConexionExcepcionsActivo() { + return conexionExcepcionDAO.obtenerConexionExcepcionsActivo(); + } + + @Override + public ConexionExcepcion obtenerID(Long id) { + return conexionExcepcionDAO.obtenerID(id); + } + + @Override + @Transactional + public ConexionExcepcion suscribir(ConexionExcepcion entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.TRUE); + + return conexionExcepcionDAO.suscribir(entidad); + } + + @Override + @Transactional + public ConexionExcepcion actualizacion(ConexionExcepcion entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.TRUE); + + return conexionExcepcionDAO.actualizacion(entidad); + } + + @Override + @Transactional + public void borrar(ConexionExcepcion entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.FALSE); + + conexionExcepcionDAO.actualizacion(entidad); + + } + +} diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ConexionServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ConexionServiceImpl.java index 15691de3a..de41fda84 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ConexionServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ConexionServiceImpl.java @@ -25,6 +25,11 @@ public class ConexionServiceImpl implements ConexionService { conexionDAO.generarConexiones(UsuarioLogado.getUsuarioLogado().getUsuarioId()); } + @Override + public List buscarConexionesValidas() { + return conexionDAO.buscarConexionesValidas(); + } + @Override public List buscarConexiones(Integer origenId, Integer destinoId) { return conexionDAO.buscarConexiones(origenId, destinoId); diff --git a/src/com/rjconsultores/ventaboletos/vo/conexion/ConexionVO.java b/src/com/rjconsultores/ventaboletos/vo/conexion/ConexionVO.java index 8e1694bbb..a727bda18 100644 --- a/src/com/rjconsultores/ventaboletos/vo/conexion/ConexionVO.java +++ b/src/com/rjconsultores/ventaboletos/vo/conexion/ConexionVO.java @@ -55,4 +55,9 @@ public class ConexionVO { public void setConexionCtrlId(Long conexionCtrlId) { this.conexionCtrlId = conexionCtrlId; } + + @Override + public String toString() { + return "ConexionVO [conOrigen=" + conOrigen + ", conDestino=" + conDestino + ", grupo=" + grupo + ", tramoOrigen=" + tramoOrigen + ", tramoDestino=" + tramoDestino + ", conexionCtrlId=" + conexionCtrlId + "]"; + } }