gleimar 2012-08-16 20:39:58 +00:00
parent 52d8766c68
commit 07337ca187
7 changed files with 486 additions and 4 deletions

View File

@ -0,0 +1,13 @@
package com.rjconsultores.ventaboletos.dao;
import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.service.TarifaOficialService;
public interface TarifaOficialDAO {
/**
* See {@link TarifaOficialService#gerarTarifaANTT(Ruta)}
* @param ruta
*/
public void gerarTarifaANTT(Ruta ruta);
}

View File

@ -146,8 +146,7 @@ public class TarifaHibernateDAO extends GenericHibernateDAO<Tarifa, Integer>
return c.list(); return c.list();
} }
public Tarifa buscar(Tramo tramo, Marca marca, ClaseServicio claseServicio, public Tarifa buscar(Tramo tramo, Marca marca, ClaseServicio claseServicio,VigenciaTarifa vigenciaTarifa, Moneda moneda) {
VigenciaTarifa vigenciaTarifa, Moneda moneda) {
Criteria c = getSession().createCriteria(getPersistentClass()); Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("marca", marca)); c.add(Restrictions.eq("marca", marca));

View File

@ -0,0 +1,81 @@
package com.rjconsultores.ventaboletos.dao.hibernate;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.TarifaOficialDAO;
import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.entidad.TarifaOficial;
@Repository("tarifaOficialDAO")
public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial, Integer> implements TarifaOficialDAO {
@Autowired
public TarifaOficialHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
@Override
public void gerarTarifaANTT(Ruta ruta) {
StringBuilder sb = new StringBuilder("");
sb.append("INSERT INTO TarifaOficial ( ");
sb.append(" tarifaOficialId, ");
sb.append(" precio, ");
sb.append(" precioredabierto, ");
sb.append(" tramoId, ");
sb.append(" marcaId, ");
sb.append(" claseservicio_id, ");
sb.append(" PRECIOORIGINAL, ");
sb.append(" MONEDA_ID, ");
sb.append(" VIGENCIATARIFA_ID, ");
sb.append(" STATUSTARIFA, ");
sb.append(" IMPORTETAXAEMBARQUE, ");
sb.append(" IMPORTEPEDAGIO, ");
sb.append(" IMPORTEOUTROS, ");
sb.append(" IMPORTESEGURO, ");
sb.append(" ORGAOCONCEDENTE_ID, ");
sb.append(" RUTA_ID, ");
sb.append(" ACTIVO, ");
sb.append(" FECMODIF, ");
sb.append(" USUARIO_ID, ");
sb.append(" ORIGEN_ID, ");
sb.append(" DESTINO_ID ");
sb.append(" ) ");
/*
* select
*
* TARIFA_OFICIAL_SEQ.NEXTVAL, ROUND( coalesce(ct1.coeficiente,0) *
* coalesce(tc.kmcoeficiente1,0) + coalesce(ct2.coeficiente,0) *
* coalesce(tc.kmcoeficiente2,0) + coalesce(ct3.coeficiente,0) *
* coalesce(tc.kmcoeficiente3,0),2), null, t.tramo_id, mc.marca_id,
* r.CLASESERVICIO_ID, null, m.moneda_id, null, 'A', null, null, null,
* null, oc.orgaoconcedente_id, r.ruta_id, 1, sysdate, 999,
* po.parada_id, pd.parada_id
*
* from ruta_combinacion rc inner join ruta r on r.ruta_id = rc.ruta_id
* inner join orgao_tramo tc on tc.tramo_id = rc.tramo_id inner join
* orgao_concedente oc on oc.orgaoconcedente_id = tc.orgaoconcedente_id
* and oc.orgaoconcedente_id =r.orgaoconcedente_id inner join
* coeficiente_tarifa ct1 on ct1.coeficientetarifa_id =
* tc.coeficientetarifa1_id left join coeficiente_tarifa ct2 on
* ct2.coeficientetarifa_id = tc.coeficientetarifa2_id left join
* coeficiente_tarifa ct3 on ct3.coeficientetarifa_id =
* tc.coeficientetarifa3_id inner join tramo t on t.tramo_id =
* rc.tramo_id inner join parada po on po.parada_id = t.origen_id inner
* join parada pd on pd.parada_id = t.destino_id inner join
* MARCA_CLASESERVICIO mc on mc.CLASESERVICIO_ID = r.CLASESERVICIO_ID,
* moneda m
*
* where rc.activo = 1 and r.activo = 1 and m.moneda_id = 1 and
* oc.orgaoconcedente_id = 3 and (t.tramo_id, mc.marca_id,
* r.CLASESERVICIO_ID, m.moneda_id, oc.orgaoconcedente_id, r.ruta_id)
* not in (select
* tao.tramo_id,tao.marca_id,tao.CLASESERVICIO_ID,tao.moneda_id
* ,tao.orgaoconcedente_id, tao.ruta_id from tarifa_oficial tao where
* tao.activo = 1)
*/
}
}

View File

@ -75,10 +75,37 @@ public class Tarifa implements Serializable {
@OneToMany(cascade = CascadeType.ALL) @OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "TARIFA_ID", referencedColumnName = "TARIFA_ID") @JoinColumn(name = "TARIFA_ID", referencedColumnName = "TARIFA_ID")
private List<TarifaCategoria> lsTarifaCategoria; private List<TarifaCategoria> lsTarifaCategoria;
@OneToOne
@JoinColumn(name = "ORIGEN_ID")
private Parada origen;
@OneToOne
@JoinColumn(name = "DESTINO_ID")
private Parada destino;
@OneToOne
@JoinColumn(name = "RUTA_ID")
private Ruta ruta;
@OneToOne
@JoinColumn(name = "ORGAOCONCEDENTE_ID")
private OrgaoConcedente orgaoConcedente;
public Tarifa() { public Tarifa() {
} }
public OrgaoConcedente getOrgaoConcedente() {
return orgaoConcedente;
}
public void setOrgaoConcedente(OrgaoConcedente orgaoConcedente) {
this.orgaoConcedente = orgaoConcedente;
}
public Ruta getRuta() {
return ruta;
}
public void setRuta(Ruta ruta) {
this.ruta = ruta;
}
public Tarifa(Integer tarifaId) { public Tarifa(Integer tarifaId) {
this.tarifaId = tarifaId; this.tarifaId = tarifaId;
} }
@ -224,8 +251,25 @@ public class Tarifa implements Serializable {
public void setLsTarifaTipoptovta(List<TarifaTipoptovta> lsTarifaTipoptovta) { public void setLsTarifaTipoptovta(List<TarifaTipoptovta> lsTarifaTipoptovta) {
this.lsTarifaTipoptovta = lsTarifaTipoptovta; this.lsTarifaTipoptovta = lsTarifaTipoptovta;
} }
@Override public Parada getOrigen() {
return origen;
}
public void setOrigen(Parada origen) {
this.origen = origen;
}
public Parada getDestino() {
return destino;
}
public void setDestino(Parada destino) {
this.destino = destino;
}
@Override
public int hashCode() { public int hashCode() {
int hash = 0; int hash = 0;
hash += (tarifaId != null ? tarifaId.hashCode() : 0); hash += (tarifaId != null ? tarifaId.hashCode() : 0);

View File

@ -0,0 +1,293 @@
package com.rjconsultores.ventaboletos.entidad;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
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.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@SequenceGenerator(name = "TARIFA_OFICIAL_SEQ", sequenceName = "TARIFA_OFICIAL_SEQ", allocationSize = 1)
@Table(name = "TARIFA_OFICIAL")
public class TarifaOficial implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "TARIFA_OFICIAL_SEQ")
@Column(name = "TARIFAOFICIAL_ID")
private Integer tarifaOficialId;
@Column(name = "PRECIO")
private BigDecimal precio;
@Column(name = "PRECIOORIGINAL")
private BigDecimal preciooriginal;
@Column(name = "STATUSTARIFA")
private String statustarifa;
@Column(name = "ACTIVO")
private Boolean activo;
@Column(name = "FECMODIF")
@Temporal(TemporalType.TIMESTAMP)
private Date fecmodif;
@Column(name = "USUARIO_ID")
private Integer usuarioId;
@OneToOne
@JoinColumn(name = "TRAMO_ID")
private Tramo tramo;
@OneToOne
@JoinColumn(name = "MARCA_ID")
private Marca marca;
@OneToOne
@JoinColumn(name = "CLASESERVICIO_ID")
private ClaseServicio claseServicio;
@OneToOne
@JoinColumn(name = "MONEDA_ID")
private Moneda moneda;
@OneToOne
@JoinColumn(name = "VIGENCIATARIFA_ID")
private VigenciaTarifa vigenciaTarifa;
@Column(name = "PRECIOREDABIERTO")
private BigDecimal precioredabierto;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "TARIFA_ID", referencedColumnName = "TARIFA_ID")
private List<TarifaTipoptovta> lsTarifaTipoptovta;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "TARIFA_ID", referencedColumnName = "TARIFA_ID")
private List<TarifaCategoria> lsTarifaCategoria;
@OneToOne
@JoinColumn(name = "ORIGEN_ID")
private Parada origen;
@OneToOne
@JoinColumn(name = "DESTINO_ID")
private Parada destino;
@OneToOne
@JoinColumn(name = "RUTA_ID")
private Ruta ruta;
@OneToOne
@JoinColumn(name = "ORGAOCONCEDENTE_ID")
private OrgaoConcedente orgaoConcedente;
public TarifaOficial() {
}
public OrgaoConcedente getOrgaoConcedente() {
return orgaoConcedente;
}
public void setOrgaoConcedente(OrgaoConcedente orgaoConcedente) {
this.orgaoConcedente = orgaoConcedente;
}
public Ruta getRuta() {
return ruta;
}
public void setRuta(Ruta ruta) {
this.ruta = ruta;
}
public Integer getTarifaOficialId() {
return tarifaOficialId;
}
public void setTarifaOficialId(Integer tarifaOficialId) {
this.tarifaOficialId = tarifaOficialId;
}
public BigDecimal getPrecio() {
return precio;
}
public void setPrecio(BigDecimal precio) {
this.precio = precio;
}
public BigDecimal getPreciooriginal() {
return preciooriginal;
}
public void setPreciooriginal(BigDecimal preciooriginal) {
this.preciooriginal = preciooriginal;
}
public String getStatustarifa() {
return statustarifa;
}
public void setStatustarifa(String statustarifa) {
this.statustarifa = statustarifa;
}
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 ClaseServicio getClaseServicio() {
return claseServicio;
}
public void setClaseServicio(ClaseServicio claseServicio) {
this.claseServicio = claseServicio;
}
public Marca getMarca() {
return marca;
}
public void setMarca(Marca marca) {
this.marca = marca;
}
public Moneda getMoneda() {
return moneda;
}
public void setMoneda(Moneda moneda) {
this.moneda = moneda;
}
public Tramo getTramo() {
return tramo;
}
public void setTramo(Tramo tramo) {
this.tramo = tramo;
}
public VigenciaTarifa getVigenciaTarifa() {
return vigenciaTarifa;
}
public void setVigenciaTarifa(VigenciaTarifa vigenciaTarifa) {
this.vigenciaTarifa = vigenciaTarifa;
}
public BigDecimal getPrecioredabierto() {
return precioredabierto;
}
public void setPrecioredabierto(BigDecimal precioredabierto) {
this.precioredabierto = precioredabierto;
}
public List<TarifaCategoria> getLsTarifaCategoria() {
List<TarifaCategoria> tmp = new ArrayList<TarifaCategoria>();
if (lsTarifaCategoria != null) {
for (TarifaCategoria ddab : this.lsTarifaCategoria) {
if (ddab.getActivo()) {
tmp.add(ddab);
}
}
}
this.lsTarifaCategoria = tmp;
return tmp;
}
public void setLsTarifaCategoria(List<TarifaCategoria> lsTarifaCategoria) {
this.lsTarifaCategoria = lsTarifaCategoria;
}
public List<TarifaTipoptovta> getLsTarifaTipoptovta() {
List<TarifaTipoptovta> tmp = new ArrayList<TarifaTipoptovta>();
if (lsTarifaTipoptovta != null) {
for (TarifaTipoptovta ddab : this.lsTarifaTipoptovta) {
if (ddab.getActivo()) {
tmp.add(ddab);
}
}
}
this.lsTarifaTipoptovta = tmp;
return tmp;
}
public void setLsTarifaTipoptovta(List<TarifaTipoptovta> lsTarifaTipoptovta) {
this.lsTarifaTipoptovta = lsTarifaTipoptovta;
}
public Parada getOrigen() {
return origen;
}
public void setOrigen(Parada origen) {
this.origen = origen;
}
public Parada getDestino() {
return destino;
}
public void setDestino(Parada destino) {
this.destino = destino;
}
@Override
public int hashCode() {
int hash = 0;
hash += (tarifaOficialId != null ? tarifaOficialId.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof TarifaOficial)) {
return false;
}
TarifaOficial other = (TarifaOficial) object;
if ((this.tarifaOficialId == null && other.tarifaOficialId != null) || (this.tarifaOficialId != null && !this.tarifaOficialId.equals(other.tarifaOficialId))) {
return false;
}
return true;
}
@Override
public String toString() {
return "com.rjconsultores.ventaboletos.entidad.TarifaOficial[tarifaOficialId=" + tarifaOficialId + "]";
}
}

View File

@ -0,0 +1,29 @@
package com.rjconsultores.ventaboletos.service;
import com.rjconsultores.ventaboletos.entidad.Ruta;
public interface TarifaOficialService {
/**
* Gera as tarifas de acordo o cálculo da ANTT.<br/>
*
* Se o parametro ruta não for informado, será gerado tarifas para todas as rutas da ANTT.<br/>
*
* Obs.: Essa operção apenas gera tarifas que ainda não estão geradas<br/>
*
* @param ruta
*/
public void gerarTarifaANTT(Ruta ruta);
/**
* Atualiza as tarifas de acordo o cálculo da ANTT<br/>
*
* Se o parametro ruta não for informado, será atualizado as tarifas para todas as rutas da ANTT.<br/>
*
* @param ruta
*/
public void atualizarTarifaANTT(Ruta ruta);
}

View File

@ -0,0 +1,23 @@
package com.rjconsultores.ventaboletos.service.impl;
import org.springframework.stereotype.Service;
import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.service.TarifaOficialService;
@Service("tarifaOficialService")
public class TarifaOficialServiceImpl implements TarifaOficialService {
@Override
public void gerarTarifaANTT(Ruta ruta) {
// TODO Auto-generated method stub
}
@Override
public void atualizarTarifaANTT(Ruta ruta) {
// TODO Auto-generated method stub
}
}