Cadastro de desconto por contrato feat bug#AL-4342' (!227) from AL-4342 into master

Reviewed-on: adm/ModelWeb#227
Reviewed-by: Valdir Cordeiro <valdir.cordeiro@totvs.com.br>
master
fabio 2024-07-16 23:04:35 +00:00
commit 998629d197
8 changed files with 209 additions and 1 deletions

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId>
<artifactId>ModelWeb</artifactId>
<version>1.81.0</version>
<version>1.82.0</version>
<distributionManagement>
<repository>

View File

@ -0,0 +1,11 @@
package com.rjconsultores.ventaboletos.dao;
import java.util.List;
import com.rjconsultores.ventaboletos.entidad.DescontoContrato;
public interface DescontoContratoDAO extends GenericDAO<DescontoContrato, Long>{
public boolean gravarDescontosContrato(List<DescontoContrato> descontos);
}

View File

@ -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<DescontoContrato, Long> implements DescontoContratoDAO {
@Autowired
public DescontoContratoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
@Override
public List<DescontoContrato> obtenerTodos() {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
return c.list();
}
@Override
public boolean gravarDescontosContrato(List<DescontoContrato> descontos) {
for (DescontoContrato desconto : descontos) {
if(desconto.getDescontoContratoId() == null) {
suscribir(desconto);
}else {
actualizacion(desconto);
}
}
return true;
}
}

View File

@ -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<DescontoContrato> 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;
}
}

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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<ContratoCorporativo> buscaLike(String numContrato);
public boolean existe(ContratoCorporativo contrato);
public void gravarDescontosContrato(List<DescontoContrato> lsDesconto);
}

View File

@ -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<ContratoCorporativo> 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<DescontoContrato> lsDescontoBanco) {
descontoContratoDAO.gravarDescontosContrato(lsDescontoBanco);
}
}