diff --git a/pom.xml b/pom.xml
index 3616595d7..aecbfabda 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
br.com.rjconsultores
ModelWeb
- 1.58.3
+ 1.59.0
diff --git a/src/com/rjconsultores/ventaboletos/dao/AliasClasseDAO.java b/src/com/rjconsultores/ventaboletos/dao/AliasClasseDAO.java
new file mode 100644
index 000000000..5a1b0a0d6
--- /dev/null
+++ b/src/com/rjconsultores/ventaboletos/dao/AliasClasseDAO.java
@@ -0,0 +1,13 @@
+package com.rjconsultores.ventaboletos.dao;
+
+import java.util.List;
+
+import com.rjconsultores.ventaboletos.entidad.AliasClasse;
+
+ public interface AliasClasseDAO extends GenericDAO{
+
+ public List buscar(Integer classe,Integer alias,Integer orgaoConcedente);
+
+ public AliasClasse existe(Integer classe, Integer alias, Integer orgaoConcedente, Integer aliasClasseId);
+
+}
diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/AliasClasseHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/AliasClasseHibernateDAO.java
new file mode 100644
index 000000000..37bf30d86
--- /dev/null
+++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/AliasClasseHibernateDAO.java
@@ -0,0 +1,69 @@
+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.AliasClasseDAO;
+import com.rjconsultores.ventaboletos.entidad.AliasClasse;
+
+@Repository("aliasClasseDAO")
+@SuppressWarnings("unchecked")
+public class AliasClasseHibernateDAO extends GenericHibernateDAO
+ implements AliasClasseDAO {
+
+ @Autowired
+ public AliasClasseHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
+ setSessionFactory(factory);
+ }
+
+ @Override
+ public AliasClasse existe(Integer classe, Integer alias, Integer orgaoConcedente, Integer aliasClasseId) {
+ Criteria c = makeCriteria();
+
+ c.add(Restrictions.eq("activo", Boolean.TRUE));
+ if( classe != null ) {
+ c.add(Restrictions.eq("classe.claseservicioId",classe));
+ }
+
+ if ( alias != null ) {
+ c.add(Restrictions.eq("alias.claseservicioId",alias));
+ }
+
+ if( orgaoConcedente != null ) {
+ c.add(Restrictions.eq("orgaoConcedente.orgaoConcedenteId", orgaoConcedente));
+ }
+
+ if( aliasClasseId != null ) {
+ c.add(Restrictions.eq("aliasClasseId",aliasClasseId));
+ }
+
+ return (AliasClasse) c.uniqueResult();
+ }
+
+ @Override
+ public List buscar(Integer classe, Integer alias, Integer orgaoConcedente) {
+ Criteria c = makeCriteria();
+ c.add(Restrictions.eq("activo", Boolean.TRUE));
+ if( classe != null ) {
+ c.add(Restrictions.eq("classe.claseservicioId",classe));
+ }
+
+ if ( alias != null ) {
+ c.add(Restrictions.eq("alias.claseservicioId",alias));
+ }
+
+ if( orgaoConcedente != null ) {
+ c.add(Restrictions.eq("orgaoConcedente.orgaoConcedenteId", orgaoConcedente));
+ }
+
+ return c.list();
+ }
+
+}
diff --git a/src/com/rjconsultores/ventaboletos/entidad/AliasClasse.java b/src/com/rjconsultores/ventaboletos/entidad/AliasClasse.java
new file mode 100644
index 000000000..b3134b426
--- /dev/null
+++ b/src/com/rjconsultores/ventaboletos/entidad/AliasClasse.java
@@ -0,0 +1,148 @@
+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.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@SequenceGenerator(name = "ALIAS_CLASSE_SEQ", sequenceName = "ALIAS_CLASSE_SEQ", allocationSize = 1)
+@Table(name = "ALIAS_CLASSE_SERVICO")
+public class AliasClasse implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+ @Id
+ @Basic(optional = false)
+ @GeneratedValue(strategy = GenerationType.AUTO, generator = "ALIAS_CLASSE_SEQ")
+ @Column(name = "ALIASCLASSE_ID")
+ private Integer aliasClasseId;
+
+ @OneToOne
+ @JoinColumn(name = "CLASSE_ID")
+ private ClaseServicio classe;
+
+ @OneToOne
+ @JoinColumn(name = "ALIAS_ID")
+ private ClaseServicio alias;
+
+ @OneToOne
+ @JoinColumn(name = "ORGAOCONCEDENTE_ID")
+ private OrgaoConcedente orgaoConcedente;
+
+ @Column(name = "MENSAGEM")
+ private String mensagem;
+
+ @Column(name = "ACTIVO")
+ private Boolean activo;
+
+ @Column(name = "FECMODIF")
+ @Temporal(TemporalType.TIMESTAMP)
+ private Date fecmodif;
+
+ @Column(name = "USUARIO_ID")
+ private Integer usuarioId;
+
+ public AliasClasse() {
+ super();
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((aliasClasseId == null) ? 0 : aliasClasseId.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;
+ AliasClasse other = (AliasClasse) obj;
+ if (aliasClasseId == null) {
+ if (other.aliasClasseId != null)
+ return false;
+ } else if (!aliasClasseId.equals(other.aliasClasseId))
+ return false;
+ return true;
+ }
+
+ public Integer getAliasClasseId() {
+ return aliasClasseId;
+ }
+
+ public void setAliasClasseId(Integer aliasClasseId) {
+ this.aliasClasseId = aliasClasseId;
+ }
+
+ public ClaseServicio getClasse() {
+ return classe;
+ }
+
+ public void setClasse(ClaseServicio classe) {
+ this.classe = classe;
+ }
+
+ public ClaseServicio getAlias() {
+ return alias;
+ }
+
+ public void setAlias(ClaseServicio alias) {
+ this.alias = alias;
+ }
+
+ public OrgaoConcedente getOrgaoConcedente() {
+ return orgaoConcedente;
+ }
+
+ public void setOrgaoConcedente(OrgaoConcedente orgaoConcedente) {
+ this.orgaoConcedente = orgaoConcedente;
+ }
+
+ public String getMensagem() {
+ return mensagem;
+ }
+
+ public void setMensagem(String mensagem) {
+ this.mensagem = mensagem;
+ }
+
+ 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;
+ }
+}
diff --git a/src/com/rjconsultores/ventaboletos/service/AliasClasseService.java b/src/com/rjconsultores/ventaboletos/service/AliasClasseService.java
new file mode 100644
index 000000000..fa2243883
--- /dev/null
+++ b/src/com/rjconsultores/ventaboletos/service/AliasClasseService.java
@@ -0,0 +1,21 @@
+package com.rjconsultores.ventaboletos.service;
+
+import java.util.List;
+
+import com.rjconsultores.ventaboletos.entidad.AliasClasse;
+import com.rjconsultores.ventaboletos.exception.BusinessException;
+
+public interface AliasClasseService{
+
+ public List obtenerTodos();
+
+ public AliasClasse obtenerID(Integer id);
+
+ public AliasClasse suscribirActualizar(AliasClasse entidad) throws BusinessException;
+
+ public void borrar(AliasClasse entidad);
+
+ public AliasClasse existe(Integer classe, Integer alias, Integer orgaoConcedente, Integer aliasClasseId);
+
+ public List buscar(Integer classe,Integer alias,Integer orgaoConcedente);
+}
diff --git a/src/com/rjconsultores/ventaboletos/service/impl/AliasClasseServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/AliasClasseServiceImpl.java
new file mode 100644
index 000000000..d194e267c
--- /dev/null
+++ b/src/com/rjconsultores/ventaboletos/service/impl/AliasClasseServiceImpl.java
@@ -0,0 +1,77 @@
+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.AliasClasseDAO;
+import com.rjconsultores.ventaboletos.entidad.AliasClasse;
+import com.rjconsultores.ventaboletos.exception.BusinessException;
+import com.rjconsultores.ventaboletos.service.AliasClasseService;
+import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
+
+@Service("aliasClasseService")
+public class AliasClasseServiceImpl implements AliasClasseService {
+
+ @Autowired
+ private AliasClasseDAO aliasClasseDAO;
+
+ public List obtenerTodos() {
+ return aliasClasseDAO.obtenerTodos();
+ }
+
+ public AliasClasse obtenerID(Integer id) {
+ return aliasClasseDAO.obtenerID(id);
+ }
+
+ @Transactional
+ public AliasClasse suscribirActualizar(AliasClasse entidad) throws BusinessException {
+
+ if ( (entidad.getClasse() == null) || (entidad.getAlias() == null) || (entidad.getOrgaoConcedente() == null) ){
+ throw new BusinessException("MSG.camposObrigatorios");
+ }
+
+ List lsBusca = aliasClasseDAO.buscar(entidad.getClasse().getClaseservicioId(), null, entidad.getOrgaoConcedente().getOrgaoConcedenteId());
+
+ if (!lsBusca.isEmpty()){
+
+ for(AliasClasse as : lsBusca){
+ if(!as.equals(entidad)){
+ throw new BusinessException("MSG.registroYaExiste");
+ }
+ }
+ }
+
+ entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
+ entidad.setFecmodif(Calendar.getInstance().getTime());
+ entidad.setActivo(Boolean.TRUE);
+
+ if (entidad.getAliasClasseId() == null){
+ return aliasClasseDAO.suscribir(entidad);
+ }else{
+ return aliasClasseDAO.actualizacion(entidad);
+ }
+ }
+
+ @Transactional
+ public void borrar(AliasClasse entidad) {
+ entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
+ entidad.setFecmodif(Calendar.getInstance().getTime());
+ entidad.setActivo(Boolean.FALSE);
+
+ aliasClasseDAO.actualizacion(entidad);
+ }
+
+ @Override
+ public AliasClasse existe(Integer classe, Integer alias, Integer orgaoConcedente, Integer aliasClasseId) {
+ return aliasClasseDAO.existe(classe, alias, orgaoConcedente, aliasClasseId);
+ }
+
+ @Override
+ public List buscar(Integer classe, Integer alias, Integer orgaoConcedente) {
+ return aliasClasseDAO.buscar(classe, alias, orgaoConcedente);
+ }
+}