fix bug #0009072 - Adicionada funcionalidade de multiplas agencias no pricing

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@71823 d1611594-4594-4d17-8e1d-87c2c4800839
master
bruno.neves 2017-07-24 20:35:30 +00:00
parent 99ef0f53ad
commit b5ea32c0f7
6 changed files with 285 additions and 0 deletions

View File

@ -0,0 +1,9 @@
package com.rjconsultores.ventaboletos.dao;
import com.rjconsultores.ventaboletos.entidad.PricingEspecificoCanalVendas;
public interface PricingEspecificoCanalVendasDAO extends GenericDAO<PricingEspecificoCanalVendas, Long> {
Boolean isDuplicado(PricingEspecificoCanalVendas entidad);
}

View File

@ -0,0 +1,42 @@
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.PricingEspecificoCanalVendasDAO;
import com.rjconsultores.ventaboletos.entidad.PricingEspecificoCanalVendas;
@Repository("pricingEspecificoCanalVendasDAO")
public class PricingEspecificoCanalVendasHibernateDAO extends GenericHibernateDAO<PricingEspecificoCanalVendas, Long> implements PricingEspecificoCanalVendasDAO {
@Autowired
public PricingEspecificoCanalVendasHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
@SuppressWarnings("unchecked")
@Override
public List<PricingEspecificoCanalVendas> obtenerTodos() {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
return c.list();
}
@SuppressWarnings("unchecked")
@Override
public Boolean isDuplicado(PricingEspecificoCanalVendas entidad) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.eq("tipoPtovta.tipoptovtaId", entidad.getTipoPtovta().getTipoptovtaId()));
return c.list().isEmpty();
}
}

View File

@ -27,6 +27,9 @@ import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;
/**
*
* @author Rafius
@ -88,9 +91,15 @@ public class PricingEspecifico implements Serializable, Cloneable {
private Boolean exibeVenda;
@OneToMany(mappedBy = "pricingEspecifico", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<PricingEspecificoOcupacion> pricingEspecificoOcupacionsList;
@OneToMany(mappedBy = "pricingEspecifico", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<PricingEspecificoAgencia> pricingEspecificoAgenciasList;
@OneToMany(mappedBy = "pricingEspecifico", cascade = CascadeType.ALL)
@LazyCollection(LazyCollectionOption.FALSE)
private List<PricingEspecificoCanalVendas> pricingEspecificoCanalVendasList;
public PricingEspecifico() {
}
@ -258,6 +267,15 @@ public class PricingEspecifico implements Serializable, Cloneable {
this.pricingEspecificoAgenciasList = pricingEspecificoAgenciasList;
}
public List<PricingEspecificoCanalVendas> getPricingEspecificoCanalVendasList() {
return pricingEspecificoCanalVendasList;
}
public void setPricingEspecificoCanalVendasList(List<PricingEspecificoCanalVendas> pricingEspecificoCanalVendasList) {
this.pricingEspecificoCanalVendasList = pricingEspecificoCanalVendasList;
}
@Override
public int hashCode() {
int hash = 0;
@ -307,5 +325,17 @@ public class PricingEspecifico implements Serializable, Cloneable {
}
return peoList;
}
@Transient
public List<PricingEspecificoCanalVendas> getPricingEspecificoCanalListActivos() {
List<PricingEspecificoCanalVendas> pecList = new ArrayList<PricingEspecificoCanalVendas>();
if(getPricingEspecificoCanalVendasList() != null) {
for (PricingEspecificoCanalVendas pec : getPricingEspecificoCanalVendasList()) {
if (pec.getActivo()) {
pecList.add(pec);
}
}
}
return pecList;
}
}

View File

@ -0,0 +1,133 @@
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.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@SequenceGenerator(name = "PRICING_ESP_CANAL_SEQ", sequenceName = "PRICING_ESP_CANAL_SEQ", allocationSize = 1)
@Table(name = "PRICING_ESP_CANAL_VENTA")
public class PricingEspecificoCanalVendas implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "PRICING_ESP_CANAL_SEQ")
@Column(name = "PRICINGESPCANAL_ID")
private Integer pricingEspecificoCanalId;
@ManyToOne
@JoinColumn(name = "TIPOPTOVTA_ID", referencedColumnName = "TIPOPTOVTA_ID")
private TipoPuntoVenta tipoPtovta;
@Basic(optional = false)
@Column(name = "ACTIVO")
private Boolean activo;
@Basic(optional = false)
@Column(name = "FECMODIF")
@Temporal(TemporalType.TIMESTAMP)
private Date fecmodif;
@Basic(optional = false)
@Column(name = "USUARIO_ID")
private Integer usuarioId;
@JoinColumn(name = "PRICINGESPECIFICO_ID", referencedColumnName = "PRICINGESPECIFICO_ID")
@ManyToOne
private PricingEspecifico pricingEspecifico;
public PricingEspecificoCanalVendas() {
super();
}
public PricingEspecificoCanalVendas(TipoPuntoVenta tipoPtovta, PricingEspecifico pricingEspecifico, Integer usuarioId) {
super();
this.tipoPtovta = tipoPtovta;
this.pricingEspecifico = pricingEspecifico;
this.usuarioId = usuarioId;
this.fecmodif = new Date();
this.activo = Boolean.TRUE;
}
public Integer getPricingEspecificoCanalId() {
return pricingEspecificoCanalId;
}
public void setPricingEspecificoCanalId(Integer pricingEspecificoCanalId) {
this.pricingEspecificoCanalId = pricingEspecificoCanalId;
}
public TipoPuntoVenta getTipoPtovta() {
return tipoPtovta;
}
public void setTipoPtovta(TipoPuntoVenta tipoPtovta) {
this.tipoPtovta = tipoPtovta;
}
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;
}
public PricingEspecifico getPricingEspecifico() {
return pricingEspecifico;
}
public void setPricingEspecifico(PricingEspecifico pricingEspecifico) {
this.pricingEspecifico = pricingEspecifico;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((activo == null) ? 0 : activo.hashCode());
result = prime * result + ((pricingEspecifico == null) ? 0 : pricingEspecifico.hashCode());
result = prime * result + ((tipoPtovta == null) ? 0 : tipoPtovta.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;
PricingEspecificoCanalVendas other = (PricingEspecificoCanalVendas) obj;
if (activo == null) {
if (other.activo != null)
return false;
} else if (!activo.equals(other.activo))
return false;
if (pricingEspecifico == null) {
if (other.pricingEspecifico != null)
return false;
} else if (!pricingEspecifico.equals(other.pricingEspecifico))
return false;
if (tipoPtovta == null) {
if (other.tipoPtovta != null)
return false;
} else if (!tipoPtovta.equals(other.tipoPtovta))
return false;
return true;
}
}

View File

@ -0,0 +1,8 @@
package com.rjconsultores.ventaboletos.service;
import com.rjconsultores.ventaboletos.entidad.PricingEspecificoCanalVendas;
public interface PricingEspecificoCanalVendasService extends GenericService<PricingEspecificoCanalVendas, Long> {
Boolean existeCanalVendasPricing(PricingEspecificoCanalVendas entidad);
}

View File

@ -0,0 +1,63 @@
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.PricingEspecificoCanalVendasDAO;
import com.rjconsultores.ventaboletos.entidad.PricingEspecificoCanalVendas;
import com.rjconsultores.ventaboletos.service.PricingEspecificoCanalVendasService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
@Service("pricingEspecificoCanalVendasService")
public class PricingEspecificoCanalVendasServiceImpl implements PricingEspecificoCanalVendasService {
@Autowired
private PricingEspecificoCanalVendasDAO pricingEspecificoCanalVendasDAO;
@Override
public List<PricingEspecificoCanalVendas> obtenerTodos() {
return pricingEspecificoCanalVendasDAO.obtenerTodos();
}
@Override
public PricingEspecificoCanalVendas obtenerID(Long id) {
return pricingEspecificoCanalVendasDAO.obtenerID(id);
}
@Override
@Transactional
public PricingEspecificoCanalVendas suscribir(PricingEspecificoCanalVendas entidad) {
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
// entidad.setFecmodif(Calendar.getInstance().getTime());
entidad.setActivo(Boolean.TRUE);
return pricingEspecificoCanalVendasDAO.suscribir(entidad);
}
@Override
@Transactional
public PricingEspecificoCanalVendas actualizacion(PricingEspecificoCanalVendas entidad) {
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
entidad.setFecmodif(Calendar.getInstance().getTime());
return pricingEspecificoCanalVendasDAO.actualizacion(entidad);
}
@Override
@Transactional
public void borrar(PricingEspecificoCanalVendas entidad) {
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
entidad.setFecmodif(Calendar.getInstance().getTime());
entidad.setActivo(Boolean.FALSE);
pricingEspecificoCanalVendasDAO.actualizacion(entidad);
}
@Override
public Boolean existeCanalVendasPricing (PricingEspecificoCanalVendas entidad){
return pricingEspecificoCanalVendasDAO.isDuplicado(entidad);
}
}