diff --git a/pom.xml b/pom.xml
index 4aac00419..1ca3c4d1c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
br.com.rjconsultores
ModelWeb
- 1.81.0
+ 1.82.0
diff --git a/src/com/rjconsultores/ventaboletos/dao/DescontoContratoDAO.java b/src/com/rjconsultores/ventaboletos/dao/DescontoContratoDAO.java
new file mode 100644
index 000000000..da17d41c2
--- /dev/null
+++ b/src/com/rjconsultores/ventaboletos/dao/DescontoContratoDAO.java
@@ -0,0 +1,11 @@
+package com.rjconsultores.ventaboletos.dao;
+
+import java.util.List;
+
+import com.rjconsultores.ventaboletos.entidad.DescontoContrato;
+
+public interface DescontoContratoDAO extends GenericDAO{
+
+ public boolean gravarDescontosContrato(List descontos);
+
+}
diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/DescontoContratoHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/DescontoContratoHibernateDAO.java
new file mode 100644
index 000000000..d6f3238ad
--- /dev/null
+++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/DescontoContratoHibernateDAO.java
@@ -0,0 +1,45 @@
+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.DescontoContratoDAO;
+import com.rjconsultores.ventaboletos.entidad.DescontoContrato;
+
+@SuppressWarnings("unchecked")
+@Repository("descontoContratoDAO")
+public class DescontoContratoHibernateDAO extends GenericHibernateDAO implements DescontoContratoDAO {
+
+ @Autowired
+ public DescontoContratoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
+ setSessionFactory(factory);
+ }
+
+ @Override
+ public List obtenerTodos() {
+ Criteria c = getSession().createCriteria(getPersistentClass());
+ c.add(Restrictions.eq("activo", Boolean.TRUE));
+
+ return c.list();
+ }
+
+ @Override
+ public boolean gravarDescontosContrato(List descontos) {
+
+ for (DescontoContrato desconto : descontos) {
+ if(desconto.getDescontoContratoId() == null) {
+ suscribir(desconto);
+ }else {
+ actualizacion(desconto);
+ }
+ }
+
+ return true;
+ }
+}
diff --git a/src/com/rjconsultores/ventaboletos/entidad/ContratoCorporativo.java b/src/com/rjconsultores/ventaboletos/entidad/ContratoCorporativo.java
index 3896c2e49..b1a3d8993 100644
--- a/src/com/rjconsultores/ventaboletos/entidad/ContratoCorporativo.java
+++ b/src/com/rjconsultores/ventaboletos/entidad/ContratoCorporativo.java
@@ -3,18 +3,24 @@ package com.rjconsultores.ventaboletos.entidad;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
+import java.util.List;
import javax.persistence.Basic;
+import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
+import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
+import org.hibernate.annotations.Where;
+
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@@ -108,6 +114,10 @@ public class ContratoCorporativo implements Serializable {
@Temporal(TemporalType.TIMESTAMP)
private Date fecModif;
+ @OneToMany(mappedBy = "contratoId", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+ @Where(clause = "ACTIVO=1")
+ private List descontosContrato;
+
private transient String nomeClienteCorp;
private transient String nomeGrupoContrato;
@@ -129,5 +139,31 @@ public class ContratoCorporativo implements Serializable {
this.clienteCorporativoId = clienteCorporativoId;
this.fecModif = fecModif;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null ) {
+ return false;
+ }
+
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+
+ final ContratoCorporativo other = (ContratoCorporativo) obj;
+
+ if (other.getContratoId() == null ) {
+ return false;
+ }
+
+ return this.getContratoId().equals(other.getContratoId());
+ }
+
+ @Override
+ public int hashCode() {
+ int hash = 7;
+ hash = 59 * hash + (this.getContratoId() != null ? this.getContratoId().hashCode() : 0);
+ return hash;
+ }
}
\ No newline at end of file
diff --git a/src/com/rjconsultores/ventaboletos/entidad/DescontoContrato.java b/src/com/rjconsultores/ventaboletos/entidad/DescontoContrato.java
new file mode 100644
index 000000000..965f4d2f2
--- /dev/null
+++ b/src/com/rjconsultores/ventaboletos/entidad/DescontoContrato.java
@@ -0,0 +1,68 @@
+package com.rjconsultores.ventaboletos.entidad;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+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;
+
+import com.rjconsultores.ventaboletos.anotacao.Renderizado;
+import com.rjconsultores.ventaboletos.enums.EnumDesconto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@Entity
+@SequenceGenerator(name = "DESCONTO_CONTRATO_SEQ", sequenceName = "DESCONTO_CONTRATO_SEQ", allocationSize = 1)
+@Table(name = "DESCONTO_CONTRATO")
+public class DescontoContrato implements Serializable {
+
+ private static final long serialVersionUID = -3684489881654368314L;
+
+ @Id
+ @Basic(optional = false)
+ @GeneratedValue(strategy = GenerationType.AUTO, generator = "DESCONTO_CONTRATO_SEQ")
+ @Column(name = "DESCONTOCONTRATO_ID")
+ private Long descontoContratoId;
+
+ @Column(name = "CONTRATO_ID")
+ private Long contratoId;
+
+ @Renderizado
+ @Column(name = "DATA_INICIAL")
+ private Date dataInicial;
+
+ @Renderizado
+ @Column(name = "DATA_FINAL")
+ private Date dataFinal;
+
+ @Renderizado
+ @Column(name = "PORCENTAGEM")
+ private BigDecimal porcentagem;
+
+ @Renderizado( conversor = EnumDesconto.class)
+ @Column(name = "INDDESCONTO")
+ private boolean indDesconto;
+
+ @Column(name = "ACTIVO")
+ private Boolean activo;
+
+ @Column(name = "FECMODIF")
+ @Temporal(TemporalType.TIMESTAMP)
+ private Date fecModif;
+
+ @Column(name = "USUARIO_ID")
+ private Integer usuarioId;
+
+}
diff --git a/src/com/rjconsultores/ventaboletos/enums/EnumDesconto.java b/src/com/rjconsultores/ventaboletos/enums/EnumDesconto.java
new file mode 100644
index 000000000..cda092cbe
--- /dev/null
+++ b/src/com/rjconsultores/ventaboletos/enums/EnumDesconto.java
@@ -0,0 +1,34 @@
+package com.rjconsultores.ventaboletos.enums;
+
+public enum EnumDesconto {
+
+ INATIVO("false", "Acrescimo"),
+ ATIVO("true", "Desconto");
+
+ private String valor;
+ private String descricao;
+
+ private EnumDesconto(String valor, String descricao) {
+ this.valor = valor;
+ this.descricao = descricao;
+ }
+
+ public String getValor() {
+ return valor;
+ }
+
+ @Override
+ public String toString() {
+ return this.descricao;
+ }
+
+ public static EnumDesconto buscarPeloValor(String tValor) {
+ for (EnumDesconto valor : EnumDesconto.values()) {
+ if (valor.getValor().equalsIgnoreCase(tValor)) {
+ return valor;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/src/com/rjconsultores/ventaboletos/service/ContratoService.java b/src/com/rjconsultores/ventaboletos/service/ContratoService.java
index 9cb785c10..7d9cf84af 100644
--- a/src/com/rjconsultores/ventaboletos/service/ContratoService.java
+++ b/src/com/rjconsultores/ventaboletos/service/ContratoService.java
@@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.service;
import java.util.List;
import com.rjconsultores.ventaboletos.entidad.ContratoCorporativo;
+import com.rjconsultores.ventaboletos.entidad.DescontoContrato;
import com.rjconsultores.ventaboletos.exception.BusinessException;
public interface ContratoService{
@@ -18,4 +19,6 @@ public interface ContratoService{
public List buscaLike(String numContrato);
public boolean existe(ContratoCorporativo contrato);
+
+ public void gravarDescontosContrato(List lsDesconto);
}
diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ContratoServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ContratoServiceImpl.java
index 07bd0f950..ae0817757 100644
--- a/src/com/rjconsultores/ventaboletos/service/impl/ContratoServiceImpl.java
+++ b/src/com/rjconsultores/ventaboletos/service/impl/ContratoServiceImpl.java
@@ -8,7 +8,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.rjconsultores.ventaboletos.dao.ContratoDAO;
+import com.rjconsultores.ventaboletos.dao.DescontoContratoDAO;
import com.rjconsultores.ventaboletos.entidad.ContratoCorporativo;
+import com.rjconsultores.ventaboletos.entidad.DescontoContrato;
import com.rjconsultores.ventaboletos.service.ContratoService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
@@ -17,6 +19,9 @@ public class ContratoServiceImpl implements ContratoService {
@Autowired
private ContratoDAO contratoDAO;
+
+ @Autowired
+ private DescontoContratoDAO descontoContratoDAO;
public List obtenerTodos() {
return contratoDAO.obtenerTodos();
@@ -58,4 +63,10 @@ public class ContratoServiceImpl implements ContratoService {
public boolean existe(ContratoCorporativo contrato) {
return contratoDAO.existe(contrato);
}
+
+ @Override
+ @Transactional
+ public void gravarDescontosContrato(List lsDescontoBanco) {
+ descontoContratoDAO.gravarDescontosContrato(lsDescontoBanco);
+ }
}