From b4badfc5dd17ccbadc53c4102bba3cb5d31f5362 Mon Sep 17 00:00:00 2001 From: gleimar Date: Tue, 28 Aug 2012 19:40:52 +0000 Subject: [PATCH] git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@20796 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/SeguroKmDAO.java | 10 +++- .../ventaboletos/dao/SeguroTarifaDAO.java | 8 ++- .../dao/hibernate/SeguroKmHibernateDAO.java | 16 +++++- .../hibernate/SeguroTarifaHibernateDAO.java | 14 +++++ .../ventaboletos/entidad/SeguroKm.java | 52 ++++++++++++++--- .../ventaboletos/entidad/SeguroTarifa.java | 57 +++++++++++++++---- .../impl/TarifaOficialServiceImpl.java | 53 ++++++++++------- 7 files changed, 164 insertions(+), 46 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/SeguroKmDAO.java b/src/com/rjconsultores/ventaboletos/dao/SeguroKmDAO.java index bdb733efa..014f74298 100644 --- a/src/com/rjconsultores/ventaboletos/dao/SeguroKmDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/SeguroKmDAO.java @@ -1,7 +1,13 @@ package com.rjconsultores.ventaboletos.dao; - - public interface SeguroKmDAO { + /** + * Indica se existe seguroKm para o orgaoConcedenteId informado + * + * @param orgaoConcedenteId + * @return + */ + public boolean existe(Integer orgaoConcedenteId); + } diff --git a/src/com/rjconsultores/ventaboletos/dao/SeguroTarifaDAO.java b/src/com/rjconsultores/ventaboletos/dao/SeguroTarifaDAO.java index acb2f5671..d6397db56 100644 --- a/src/com/rjconsultores/ventaboletos/dao/SeguroTarifaDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/SeguroTarifaDAO.java @@ -2,5 +2,11 @@ package com.rjconsultores.ventaboletos.dao; public interface SeguroTarifaDAO { - + /** + * Indica se existe seguroTarifa para o orgaoConcedenteId informado + * + * @param orgaoConcedenteId + * @return + */ + public boolean existe(Integer orgaoConcedenteId); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/SeguroKmHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/SeguroKmHibernateDAO.java index 0c9a97dd1..8cad3a4f3 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/SeguroKmHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/SeguroKmHibernateDAO.java @@ -1,13 +1,14 @@ package com.rjconsultores.ventaboletos.dao.hibernate; -import org.hibernate.SQLQuery; +import org.hibernate.Criteria; import org.hibernate.SessionFactory; +import org.hibernate.criterion.Projections; +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.SeguroKmDAO; -import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder; import com.rjconsultores.ventaboletos.entidad.SeguroKm; @Repository("seguroKmDAO") @@ -18,5 +19,16 @@ public class SeguroKmHibernateDAO extends GenericHibernateDAO setSessionFactory(factory); } + @Override + public boolean existe(Integer orgaoConcedenteId) { + Criteria c= makeCriteria(); + c.add(Restrictions.eq("orgaoconcedente.orgaoConcedenteId", orgaoConcedenteId)); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + c.setProjection(Projections.rowCount()); + + + return HibernateFix.count(c.list()) > 0; + } + } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/SeguroTarifaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/SeguroTarifaHibernateDAO.java index 258aa5132..d061af40e 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/SeguroTarifaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/SeguroTarifaHibernateDAO.java @@ -1,6 +1,9 @@ package com.rjconsultores.ventaboletos.dao.hibernate; +import org.hibernate.Criteria; import org.hibernate.SessionFactory; +import org.hibernate.criterion.Projections; +import org.hibernate.criterion.Restrictions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Repository; @@ -16,4 +19,15 @@ public class SeguroTarifaHibernateDAO extends GenericHibernateDAO 0; + } + } diff --git a/src/com/rjconsultores/ventaboletos/entidad/SeguroKm.java b/src/com/rjconsultores/ventaboletos/entidad/SeguroKm.java index 402bae738..958c6bb36 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/SeguroKm.java +++ b/src/com/rjconsultores/ventaboletos/entidad/SeguroKm.java @@ -6,6 +6,8 @@ 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; @@ -15,6 +17,8 @@ import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; import javax.xml.bind.annotation.XmlRootElement; /** @@ -31,12 +35,18 @@ public class SeguroKm implements Serializable { private Integer segurokmId; @Column(name = "KMATE") private Integer kmate; - // @Max(value=?) @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation @Column(name = "VALORTAXA") private BigDecimal valortaxa; @JoinColumn(name = "ORGAOCONCEDENTE_ID", referencedColumnName = "ORGAOCONCEDENTE_ID") @ManyToOne - private OrgaoConcedente orgaoconcedenteId; + private OrgaoConcedente orgaoconcedente; + @Column(name = "ACTIVO") + private Boolean activo; + @Column(name = "FECMODIF") + @Temporal(TemporalType.TIMESTAMP) + private Date fecmodif; + @Column(name = "USUARIO_ID") + private Integer usuarioId; public SeguroKm() { } @@ -69,13 +79,7 @@ public class SeguroKm implements Serializable { this.valortaxa = valortaxa; } - public OrgaoConcedente getOrgaoconcedenteId() { - return orgaoconcedenteId; - } - public void setOrgaoconcedenteId(OrgaoConcedente orgaoconcedenteId) { - this.orgaoconcedenteId = orgaoconcedenteId; - } @Override public int hashCode() { @@ -101,5 +105,37 @@ public class SeguroKm implements Serializable { public String toString() { return "com.rjconsultores.ventaboletos.entidad.SeguroKm[ segurokmId=" + segurokmId + " ]"; } + + public OrgaoConcedente getOrgaoconcedente() { + return orgaoconcedente; + } + + public void setOrgaoconcedente(OrgaoConcedente orgaoconcedente) { + this.orgaoconcedente = orgaoconcedente; + } + + 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/entidad/SeguroTarifa.java b/src/com/rjconsultores/ventaboletos/entidad/SeguroTarifa.java index e5c2f62f7..3853cebaa 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/SeguroTarifa.java +++ b/src/com/rjconsultores/ventaboletos/entidad/SeguroTarifa.java @@ -6,6 +6,8 @@ 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; @@ -15,6 +17,8 @@ import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; import javax.xml.bind.annotation.XmlRootElement; /** @@ -29,15 +33,21 @@ public class SeguroTarifa implements Serializable { @Basic(optional = false) @Column(name = "SEGUROTARIFA_ID") private Integer segurotarifaId; - // @Max(value=?) @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation @Column(name = "VALORTARIFA") private BigDecimal valortarifa; @Column(name = "VALORTARIFAATE") private BigDecimal valortarifaate; @JoinColumn(name = "ORGAOCONCEDENTE_ID", referencedColumnName = "ORGAOCONCEDENTE_ID") @ManyToOne - private OrgaoConcedente orgaoconcedenteId; - + private OrgaoConcedente orgaoconcedente; + @Column(name = "ACTIVO") + private Boolean activo; + @Column(name = "FECMODIF") + @Temporal(TemporalType.TIMESTAMP) + private Date fecmodif; + @Column(name = "USUARIO_ID") + private Integer usuarioId; + public SeguroTarifa() { } @@ -62,14 +72,7 @@ public class SeguroTarifa implements Serializable { } - public OrgaoConcedente getOrgaoconcedenteId() { - return orgaoconcedenteId; - } - - public void setOrgaoconcedenteId(OrgaoConcedente orgaoconcedenteId) { - this.orgaoconcedenteId = orgaoconcedenteId; - } - + @Override public int hashCode() { int hash = 0; @@ -102,5 +105,37 @@ public class SeguroTarifa implements Serializable { public void setValortarifaate(BigDecimal valortarifaate) { this.valortarifaate = valortarifaate; } + + public OrgaoConcedente getOrgaoconcedente() { + return orgaoconcedente; + } + + public void setOrgaoconcedente(OrgaoConcedente orgaoconcedente) { + this.orgaoconcedente = orgaoconcedente; + } + + 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/impl/TarifaOficialServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java index 06417db3c..3e2a59669 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java @@ -4,6 +4,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.rjconsultores.ventaboletos.dao.SeguroKmDAO; +import com.rjconsultores.ventaboletos.dao.SeguroTarifaDAO; import com.rjconsultores.ventaboletos.dao.TarifaOficialDAO; import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa; import com.rjconsultores.ventaboletos.exception.BusinessException; @@ -15,7 +17,11 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { @Autowired private TarifaOficialDAO tarifaOficialDAO; - + @Autowired + private SeguroKmDAO seguroKmDAO; + @Autowired + private SeguroTarifaDAO seguroTarifaDAO; + @Override @Transactional public Integer gerarTarifaPorCoeficiente(Integer rutaId, Integer orgaoConcedenteId) { @@ -25,7 +31,7 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { @Override @Transactional public Integer atualizarTarifaPorCoeficiente(Integer rutaId, Integer orgaoConcedenteId) { - return tarifaOficialDAO.atualizarTarifaCoeficiente(rutaId,UsuarioLogado.getUsuarioLogado().getUsuarioId(), orgaoConcedenteId); + return tarifaOficialDAO.atualizarTarifaCoeficiente(rutaId, UsuarioLogado.getUsuarioLogado().getUsuarioId(), orgaoConcedenteId); } @Override @@ -35,56 +41,59 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { } @Override - @Transactional + @Transactional(rollbackFor=BusinessException.class) public Integer gerarAtualizarTarifaPorCoeficiente(Integer rudaId, Integer orgaoConcedenteId) throws BusinessException { - - if (orgaoConcedenteId == null){ + + if (orgaoConcedenteId == null) { throw new BusinessException("TarifaOficialServiceImpl.msg.validacion.orgaoObligatorio"); } - + Integer qtd = gerarTarifaPorCoeficiente(rudaId, orgaoConcedenteId); qtd += atualizarTarifaPorCoeficiente(rudaId, orgaoConcedenteId); - + return qtd; } - + @Override @Transactional public void atualizarTaxaEmbarque(Integer rutaId, Integer orgaoConcedenteId) { tarifaOficialDAO.atualizarTaxaEmbarque(rutaId, UsuarioLogado.getUsuarioLogado().getUsuarioId(), orgaoConcedenteId); } - + @Override - @Transactional + @Transactional(rollbackFor=BusinessException.class) public void atualizarSeguroPorKm(Integer rutaId, Integer orgaoId) throws BusinessException { - - if (orgaoId == null){ + + if (orgaoId == null) { throw new BusinessException("TarifaOficialServiceImpl.msg.validacion.orgaoObligatorio"); } - + tarifaOficialDAO.atualizarSeguroPorKm(rutaId, orgaoId, UsuarioLogado.getUsuarioLogado().getUsuarioId()); - + } - + @Override - @Transactional + @Transactional(rollbackFor=BusinessException.class) public void atualizarSeguroPorTarifa(Integer rutaId, Integer orgaoId) throws BusinessException { - if (orgaoId == null){ + if (orgaoId == null) { throw new BusinessException("TarifaOficialServiceImpl.msg.validacion.orgaoObligatorio"); } - + tarifaOficialDAO.atualizarSeguroPorTarifa(rutaId, orgaoId, UsuarioLogado.getUsuarioLogado().getUsuarioId()); } @Override - @Transactional + @Transactional(rollbackFor=BusinessException.class) public void atualizarSeguro(Integer rutaId, Integer orgaoId) throws BusinessException { - if (orgaoId == null){ + if (orgaoId == null) { throw new BusinessException("TarifaOficialServiceImpl.msg.validacion.orgaoObligatorio"); } - atualizarSeguroPorKm(rutaId, orgaoId); - atualizarSeguroPorTarifa(rutaId, orgaoId); + if (seguroKmDAO.existe(orgaoId)) { + atualizarSeguroPorKm(rutaId, orgaoId); + } else if (seguroTarifaDAO.existe(orgaoId)) { + atualizarSeguroPorTarifa(rutaId, orgaoId); + } } }