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); + } +}