diff --git a/src/com/rjconsultores/ventaboletos/dao/AgruparParadaDAO.java b/src/com/rjconsultores/ventaboletos/dao/AgruparParadaDAO.java new file mode 100644 index 000000000..f12a66363 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/AgruparParadaDAO.java @@ -0,0 +1,21 @@ +package com.rjconsultores.ventaboletos.dao; + +import java.util.List; + +import com.rjconsultores.ventaboletos.entidad.AgrupamentoParada; + +public interface AgruparParadaDAO { + + public AgrupamentoParada obtenerID(Integer id); + + public AgrupamentoParada suscribir(AgrupamentoParada entidad); + + public AgrupamentoParada actualizacion(AgrupamentoParada entidad); + + public List obtenerTodos(); + + public List buscar(String descAgrupamentoParada); + + public List buscarCVE(String cveAgrupamentoParada); + +} diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/AgruparParadaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/AgruparParadaHibernateDAO.java new file mode 100644 index 000000000..d666c7712 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/AgruparParadaHibernateDAO.java @@ -0,0 +1,48 @@ +package com.rjconsultores.ventaboletos.dao.hibernate; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.SessionFactory; +import org.hibernate.criterion.Order; +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.AgruparParadaDAO; +import com.rjconsultores.ventaboletos.entidad.AgrupamentoParada; + +@Repository("agruparParadaDAO") +public class AgruparParadaHibernateDAO extends GenericHibernateDAO implements AgruparParadaDAO { + + @Autowired + public AgruparParadaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { + setSessionFactory(factory); + } + + @Override + public List obtenerTodos() { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + c.addOrder(Order.asc("descAgrupamentoParada")); + return c.list(); + } + + @Override + public List buscar(String descparada) { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + c.add(Restrictions.eq("descAgrupamentoParada", descparada)); + return c.list(); + } + + @Override + public List buscarCVE(String cveAgrupamentoParada) { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + c.add(Restrictions.eq("cveAgrupamentoParada", cveAgrupamentoParada)); + return c.list(); + } + +} diff --git a/src/com/rjconsultores/ventaboletos/entidad/AgrupamentoParada.java b/src/com/rjconsultores/ventaboletos/entidad/AgrupamentoParada.java new file mode 100644 index 000000000..69ba73333 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/entidad/AgrupamentoParada.java @@ -0,0 +1,106 @@ +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 = "AGRUPAMENTOPARADA_SEQ", sequenceName = "AGRUPAMENTOPARADA_SEQ", allocationSize = 1) +@Table(name = "AGRUPAMENTO_PARADA") +public class AgrupamentoParada implements Serializable { + + private static final long serialVersionUID = 1L; + @Id + @Basic(optional = false) + @GeneratedValue(strategy = GenerationType.AUTO, generator = "AGRUPAMENTOPARADA_SEQ") + @Column(name = "AGRUPAMENTOPARADA_ID") + private Integer agrupamentoParadaId; + @Basic(optional = false) + @Column(name = "DESCAGRUPAMENTOPARADA") + private String descAgrupamentoParada; + @Column(name = "CVEAGRUPAMENTOPARADA") + private String cveAgrupamentoParada; + @Column(name = "ACTIVO") + private Boolean activo; + @Column(name = "FECMODIF") + @Temporal(TemporalType.TIMESTAMP) + private Date fecmodif; + @Column(name = "USUARIO_ID") + private Integer usuarioId; + + public Integer getAgrupamentoParadaId() { + return agrupamentoParadaId; + } + + public void setAgrupamentoParadaId(Integer agrupamentoParadaId) { + this.agrupamentoParadaId = agrupamentoParadaId; + } + + public String getDescAgrupamentoParada() { + return descAgrupamentoParada; + } + + public void setDescAgrupamentoParada(String descAgrupamentoParada) { + this.descAgrupamentoParada = descAgrupamentoParada; + } + + public String getCveAgrupamentoParada() { + return cveAgrupamentoParada; + } + + public void setCveAgrupamentoParada(String cveAgrupamentoParada) { + this.cveAgrupamentoParada = cveAgrupamentoParada; + } + + 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 boolean equals(Object object) { + if (!(object instanceof AgrupamentoParada)) { + return false; + } + AgrupamentoParada other = (AgrupamentoParada) object; + if ((this.getAgrupamentoParadaId() == null && other.getAgrupamentoParadaId() != null) || (this.getAgrupamentoParadaId() != null && !this.getAgrupamentoParadaId().equals(other.getAgrupamentoParadaId()))) { + return false; + } + return true; + } + + @Override + public String toString() { + return getDescAgrupamentoParada(); + } + +} diff --git a/src/com/rjconsultores/ventaboletos/entidad/Parada.java b/src/com/rjconsultores/ventaboletos/entidad/Parada.java index 4c18ebf7e..6a7307bd5 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Parada.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Parada.java @@ -95,6 +95,9 @@ public class Parada implements Serializable, Auditavel { private Boolean indVendeTotem; @Column(name="INDVISIBLEINTERNET") private Boolean indVisibleInternet; + @OneToOne + @JoinColumn(name = "AGRUPAMENTOPARADA_ID") + private AgrupamentoParada agrupamentoParada; @ManyToOne @JoinColumn(name = "REGIONMETROPOLITANA_ID", referencedColumnName = "REGIONMETROPOLITANA_ID") @@ -346,6 +349,16 @@ public class Parada implements Serializable, Auditavel { this.indVisibleInternet = indVisibleInternet; } + + + public AgrupamentoParada getAgrupamentoParada() { + return agrupamentoParada; + } + + public void setAgrupamentoParada(AgrupamentoParada agrupamentoParada) { + this.agrupamentoParada = agrupamentoParada; + } + @Override public void clonar() throws CloneNotSupportedException { paradaClone = new Parada(); diff --git a/src/com/rjconsultores/ventaboletos/service/AgruparParadaService.java b/src/com/rjconsultores/ventaboletos/service/AgruparParadaService.java new file mode 100644 index 000000000..2549737d3 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/AgruparParadaService.java @@ -0,0 +1,18 @@ +package com.rjconsultores.ventaboletos.service; + +import java.util.List; + +import com.rjconsultores.ventaboletos.entidad.AgrupamentoParada; +import com.rjconsultores.ventaboletos.exception.BusinessException; + +public interface AgruparParadaService { + + public AgrupamentoParada obtenerID(Integer id); + + public List obtenerTodos(); + + public AgrupamentoParada suscribirActualizar(AgrupamentoParada entidad) throws BusinessException; + + public void borrar(AgrupamentoParada entidad); + +} diff --git a/src/com/rjconsultores/ventaboletos/service/impl/AgruparParadaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/AgruparParadaServiceImpl.java new file mode 100644 index 000000000..ad0b30d84 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/service/impl/AgruparParadaServiceImpl.java @@ -0,0 +1,95 @@ +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.AgruparParadaDAO; +import com.rjconsultores.ventaboletos.entidad.AgrupamentoParada; +import com.rjconsultores.ventaboletos.exception.BusinessException; +import com.rjconsultores.ventaboletos.service.AgruparParadaService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; + +@Service("agruparParadaService") +public class AgruparParadaServiceImpl implements AgruparParadaService { + @Autowired + private AgruparParadaDAO agruparParadaDAO; + + @Override + public AgrupamentoParada obtenerID(Integer id) { + // TODO Auto-generated method stub + return null; + } + + @Transactional + public AgrupamentoParada suscribir(AgrupamentoParada entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.TRUE); + return agruparParadaDAO.suscribir(entidad); + } + + @Transactional + public AgrupamentoParada actualizacion(AgrupamentoParada entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.TRUE); + return agruparParadaDAO.actualizacion(entidad); + } + + @Override + public List obtenerTodos() { + return agruparParadaDAO.obtenerTodos(); + } + + @Override + @Transactional(readOnly = false) + public AgrupamentoParada suscribirActualizar(AgrupamentoParada entidad) throws BusinessException { + + List lsAgrumaentoParadas = agruparParadaDAO.buscar(entidad.getDescAgrupamentoParada()); + + if (!lsAgrumaentoParadas.isEmpty()) { + if (entidad.getAgrupamentoParadaId() == null) { + throw new BusinessException("editarCatalogoDeParadaController.registroDESCAGRUPAMENTOPARADAexiste"); + } else { + if (!lsAgrumaentoParadas.contains(entidad)) { + throw new BusinessException("editarCatalogoDeParadaController.registroDESCAGRUPAMENTOPARADAexiste"); + } + } + } + + lsAgrumaentoParadas = agruparParadaDAO.buscarCVE(entidad.getCveAgrupamentoParada()); + + if (!lsAgrumaentoParadas.isEmpty()) { + if (entidad.getAgrupamentoParadaId() == null) { + throw new BusinessException("editarCatalogoDeParadaController.registroCVEAGRUPAMENTOPARADAexiste"); + } else { + if (!lsAgrumaentoParadas.contains(entidad)) { + throw new BusinessException("editarCatalogoDeParadaController.registroCVEAGRUPAMENTOPARADAexiste"); + } + } + } + + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.TRUE); + + if (entidad.getAgrupamentoParadaId() == null) { + return agruparParadaDAO.suscribir(entidad); + } + return agruparParadaDAO.actualizacion(entidad); + + } + + @Transactional + public void borrar(AgrupamentoParada entidad) { + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + entidad.setFecmodif(Calendar.getInstance().getTime()); + entidad.setActivo(Boolean.FALSE); + agruparParadaDAO.actualizacion(entidad); + } + +}