fixes bug #7460 - cancelar retomar ruta- merge

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@58519 d1611594-4594-4d17-8e1d-87c2c4800839
master
edgar 2016-07-29 14:07:25 +00:00
parent caa14b49d5
commit e70451dc24
10 changed files with 141 additions and 61 deletions

View File

@ -22,7 +22,6 @@ public class Constantes {
public static final Long MVO_CANCEL_TRANSFERENCIA = new Long(23);
public static final Long MVO_CANCEL_BOLETO_ENTREGADO = new Long(16);
public static final Long MVO_CANCEL_BOLETO_AGRUPAMENTO = new Long(17);
public static final Long MVO_CANCEL_VENDA_PACOTE = new Long(33);
public static Long TPV_DIRECTO_NORMAL = new Long(1);
public static Long TPV_MANUAL = new Long(3);

View File

@ -87,4 +87,6 @@ public interface CorridaDAO extends GenericDAO<Corrida, Corrida.Id> {
List<Corrida> buscarPorEstado(Estado estado, Date dataInicial, Integer corridaId);
public Corrida buscaCorrridaFutura(Ruta ruta, Date fecInicio);
}

View File

@ -23,13 +23,15 @@ import java.util.List;
public interface EsquemaCorridaDAO extends GenericDAO<EsquemaCorrida, Integer> {
public List<EsquemaCorrida> buscarPorEsquemaOperacional(EsquemaOperacional eo);
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa);
public List<EsquemaCorrida> buscar(Marca marca, RolOperativo rolOperativo, Ruta ruta, ClaseServicio claseServicio);
public boolean buscarNumCorrida(Integer numCorrida, Integer numCorridaPisoExtra);
public EsquemaCorrida buscaEsquemaPorRuta(Ruta ruta);
/**
* Indica se el esquema corrida es hijo de un esquemCorrida.
*

View File

@ -12,6 +12,7 @@ import java.util.GregorianCalendar;
import java.util.List;
import org.apache.commons.lang.math.NumberUtils;
import org.apache.xmlbeans.impl.xb.xsdschema.RestrictionDocument.Restriction;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
@ -546,20 +547,20 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
fechorsalidaUpdate,
tiempoHorHusoOrigem + tiempoHorVeranoOrigem,
tiempoHorHusoDestino + tiempoHorVeranoDestino);
if(tiempoestancia != null) {
if (tiempoestancia != null) {
Calendar aux = Calendar.getInstance();
aux.setTime(DateUtil.normalizar(husoHorVeranoLlegadaAnterior));
aux.add(Calendar.MINUTE, tiempoestancia.getMinutes());
aux.add(Calendar.HOUR_OF_DAY, tiempoestancia.getHours());
husoHorVeranoLlegadaAnterior = aux.getTime();
Calendar auxFechorsalidaUpdate = Calendar.getInstance();
auxFechorsalidaUpdate.setTime(DateUtil.normalizar(fechorsalidaUpdate));
auxFechorsalidaUpdate.add(Calendar.MINUTE, tiempoestancia.getMinutes());
auxFechorsalidaUpdate.add(Calendar.HOUR_OF_DAY, tiempoestancia.getHours());
fechorsalidaUpdate = auxFechorsalidaUpdate.getTime();
}
@ -699,4 +700,16 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
return query.list();
}
@Override
public Corrida buscaCorrridaFutura(Ruta ruta, Date fecInicio) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("ruta", ruta));
c.add(Restrictions.gt("fechorsalida", fecInicio));
List<Corrida> lsCorrida = c.list();
if (!lsCorrida.isEmpty()) {
return lsCorrida.get(0);
}
return null;
}
}

View File

@ -7,6 +7,7 @@ package com.rjconsultores.ventaboletos.dao.hibernate;
import java.util.Date;
import java.util.List;
import org.apache.commons.collections.set.CompositeSet.SetMutator;
import org.apache.commons.lang.math.NumberUtils;
import org.hibernate.Criteria;
import org.hibernate.Query;
@ -48,14 +49,14 @@ public class EsquemaCorridaHibernateDAO extends GenericHibernateDAO<EsquemaCorri
return c.list();
}
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa){
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa) {
StringBuilder sb = new StringBuilder();
sb.append("from EsquemaCorrida ec where ec.empresa.empresaId= :empresaId and activo = 1" );
sb.append("from EsquemaCorrida ec where ec.empresa.empresaId= :empresaId and activo = 1");
Query qry = getSession().createQuery(sb.toString());
qry.setInteger("empresaId", empresa.getEmpresaId());
return qry.list();
}
@ -77,7 +78,7 @@ public class EsquemaCorridaHibernateDAO extends GenericHibernateDAO<EsquemaCorri
c.add(Restrictions.eq("activo", Boolean.TRUE));
List result = c.list();
if(!result.isEmpty()){
if (!result.isEmpty()) {
return (EsquemaCorrida) result.get(NumberUtils.INTEGER_ZERO);
}
return null;
@ -170,6 +171,19 @@ public class EsquemaCorridaHibernateDAO extends GenericHibernateDAO<EsquemaCorri
return c.list();
}
public EsquemaCorrida buscaEsquemaPorRuta(Ruta ruta) {
List<EsquemaCorrida> lsEsquemaCorrida;
Criteria c = makeCriteria();
c.add(Restrictions.eq("ruta", ruta));
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.setFirstResult(0);
c.setMaxResults(1);
c.createCriteria("esquemaOperacional").add(Restrictions.ge("fecfinvigencia", new Date()));
lsEsquemaCorrida = c.list();
return lsEsquemaCorrida.isEmpty() ? null : lsEsquemaCorrida.get(0);
}
@Override
public boolean buscarNumCorrida(Integer numCorrida, Integer numCorridaPisoExtra) {
Criteria c = getSession().createCriteria(getPersistentClass());

View File

@ -37,72 +37,99 @@ import javax.persistence.Transient;
public class Ruta implements Serializable, Comparable<Ruta> {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "RUTA_SEQ")
@Column(name = "RUTA_ID")
private Integer rutaId;
@Column(name = "DESCRUTA")
private String descruta;
@Column(name = "ACTIVO")
private Boolean activo;
@Column(name = "FECMODIF")
@Temporal(TemporalType.TIMESTAMP)
private Date fecmodif;
@Column(name = "USUARIO_ID")
private Integer usuarioId;
@JoinColumn(name = "CLASESERVICIO_ID", referencedColumnName = "CLASESERVICIO_ID")
@ManyToOne
private ClaseServicio claseServicio;
@JoinColumn(name = "GRUPORUTA_ID", referencedColumnName = "GRUPORUTA_ID")
@ManyToOne
private GrupoRuta grupoRuta;
@OneToMany(mappedBy = "ruta", cascade=CascadeType.ALL)
@OneToMany(mappedBy = "ruta", cascade = CascadeType.ALL)
private List<RutaSecuencia> rutaSecuenciaList;
@OneToMany(mappedBy = "ruta")
private List<RutaCombinacion> rutaCombinacionList;
@Column(name = "indnombreobligatorio")
private Boolean indNombreObligatorio;
@OneToMany(mappedBy = "ruta", cascade = CascadeType.ALL)
private List<RutaEmpresa> lsRutaEmpresa;
@Column(name = "INDVENTAOFFLINE")
private Boolean ventaOffLine;
@Column(name = "PREFIXO")
private String prefixo;
@Column(name = "PREFIXOAUXILIAR")
private String prefixoAuxiliar;
@OneToOne
@JoinColumn(name = "ORGAOCONCEDENTE_ID")
private OrgaoConcedente orgaoConcedente;
@Column(name = "INDSENTIDOIDA")
private Boolean indSentidoIda;
@Column(name = "NUMRUTA")
private String numRuta;
@Column(name = "INDTRIBTARIFA")
private Boolean indTribTarifa;
@Column(name = "INDTRIBPEDAGIO")
private Boolean indTribPedagio;
@Column(name = "INDTRIBTAXAEMBARQUE")
private Boolean indTribTaxaEmbarque;
private Boolean indTribTaxaEmbarque;
@Column(name = "CANTEIXOS")
private Integer cantEixos;
@Column(name = "CANTASIENTOS")
private Integer cantAsientos;
@Column(name = "INDVENTARIOCARD")
private Boolean indVentaRioCard;
@Column(name = "NUMRIOCARD")
private String numRioCard;
@Column(name = "INDBLOQVTAABIERTA")
private Boolean indBloqueoVtaAbierta;
@Column(name = "INDRUTACENLADA")
private Boolean indRutaCancelada;
@Transient
private Boolean isClone;
public Ruta() {
}
public static Ruta clone(Ruta other){
public static Ruta clone(Ruta other) {
Ruta ruta = new Ruta();
ruta.setIsClone(Boolean.TRUE);
ruta.activo = other.activo;
@ -118,12 +145,12 @@ public class Ruta implements Serializable, Comparable<Ruta> {
ruta.indTribTarifa = other.indTribTarifa;
ruta.indTribTaxaEmbarque = other.indTribTaxaEmbarque;
ruta.indVentaRioCard = other.indVentaRioCard;
/******* ruta.lsRutaEmpresa *************/
if (ruta.lsRutaEmpresa == null){
if (ruta.lsRutaEmpresa == null) {
ruta.lsRutaEmpresa = new ArrayList<RutaEmpresa>();
}
for (RutaEmpresa re : other.lsRutaEmpresa){
for (RutaEmpresa re : other.lsRutaEmpresa) {
RutaEmpresa r = new RutaEmpresa();
r.setActivo(re.getActivo());
r.setEmpresa(re.getEmpresa());
@ -134,65 +161,64 @@ public class Ruta implements Serializable, Comparable<Ruta> {
ruta.lsRutaEmpresa.add(r);
}
/*****************************************/
ruta.numRioCard = other.numRioCard;
ruta.numRuta = other.numRuta;
ruta.orgaoConcedente = other.orgaoConcedente;
ruta.prefixo = other.prefixo;
ruta.prefixoAuxiliar = other.prefixoAuxiliar;
/************* ruta.rutaCombinacionList **************/
// if (ruta.rutaCombinacionList == null){
// ruta.rutaCombinacionList = new ArrayList<RutaCombinacion>();
// }
// for (RutaCombinacion rc : other.rutaCombinacionList){
// RutaCombinacion rcnew = RutaCombinacion.clone(rc);
// rcnew.setRuta(ruta);
// rcnew.setRutacombinacionId(null);
// ruta.rutaCombinacionList.add(rcnew);
// }
// if (ruta.rutaCombinacionList == null){
// ruta.rutaCombinacionList = new ArrayList<RutaCombinacion>();
// }
// for (RutaCombinacion rc : other.rutaCombinacionList){
// RutaCombinacion rcnew = RutaCombinacion.clone(rc);
// rcnew.setRuta(ruta);
// rcnew.setRutacombinacionId(null);
// ruta.rutaCombinacionList.add(rcnew);
// }
/*******************************************************/
ruta.rutaId = other.rutaId;
/************ ruta.rutaSecuenciaList ************/
if (ruta.rutaSecuenciaList == null){
if (ruta.rutaSecuenciaList == null) {
ruta.rutaSecuenciaList = new ArrayList<RutaSecuencia>();
}
for (RutaSecuencia rs : other.rutaSecuenciaList){
for (RutaSecuencia rs : other.rutaSecuenciaList) {
RutaSecuencia rsnew = RutaSecuencia.clone(rs);
rsnew.setRuta(ruta);
rsnew.setRutasecuenciaId(null);
ruta.rutaSecuenciaList.add(rsnew);
}
/************************************************/
ruta.usuarioId = other.usuarioId;
ruta.ventaOffLine = other.ventaOffLine;
return ruta;
}
public Integer numSecuenciaOrigen(Integer origenId){
public Integer numSecuenciaOrigen(Integer origenId) {
Integer numSecuencia = -1;
for (RutaSecuencia rs : rutaSecuenciaList){
if (rs.tieneOrigen(origenId)){
for (RutaSecuencia rs : rutaSecuenciaList) {
if (rs.tieneOrigen(origenId)) {
numSecuencia = rs.getNumsecuencia().intValue();
}
}
return numSecuencia;
}
public Integer numSecuenciaDestino(Integer destinoId){
public Integer numSecuenciaDestino(Integer destinoId) {
Integer numSecuencia = -1;
for (RutaSecuencia rs : rutaSecuenciaList){
if (rs.tieneDestino(destinoId)){
for (RutaSecuencia rs : rutaSecuenciaList) {
if (rs.tieneDestino(destinoId)) {
numSecuencia = rs.getNumsecuencia().intValue();
}
}
return numSecuencia;
}
public Ruta(Integer rutaId) {
this.rutaId = rutaId;
}
@ -381,7 +407,7 @@ public class Ruta implements Serializable, Comparable<Ruta> {
public void setIndNombreObligatorio(Boolean indNombreObligatorio) {
this.indNombreObligatorio = indNombreObligatorio;
}
public Integer getCantEixos() {
return cantEixos;
}
@ -397,14 +423,14 @@ public class Ruta implements Serializable, Comparable<Ruta> {
public void setCantAsientos(Integer cantAsientos) {
this.cantAsientos = cantAsientos;
}
public Boolean getIndVentaRioCard() {
return indVentaRioCard;
}
public void setIndVentaRioCard(Boolean indVentaRioCard) {
this.indVentaRioCard = indVentaRioCard;
}
}
public String getNumRioCard() {
return numRioCard;
@ -413,7 +439,7 @@ public class Ruta implements Serializable, Comparable<Ruta> {
public void setNumRioCard(String numRioCard) {
this.numRioCard = numRioCard;
}
public Boolean getIndBloqueoVtaAbierta() {
return indBloqueoVtaAbierta;
}
@ -422,13 +448,21 @@ public class Ruta implements Serializable, Comparable<Ruta> {
this.indBloqueoVtaAbierta = indBloqueoVtaAbierta;
}
public Boolean getIndRutaCancelada() {
return indRutaCancelada;
}
public void setIndRutaCancelada(Boolean isRutaCancelada) {
this.indRutaCancelada = isRutaCancelada;
}
@Override
public int hashCode() {
int hash = 0;
hash += (getRutaId() != null ? getRutaId().hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
if (!(object instanceof Ruta)) {
@ -445,9 +479,10 @@ public class Ruta implements Serializable, Comparable<Ruta> {
public String toString() {
return this.getDescruta() + " - " + this.getRutaId();
}
@Override
public int compareTo(Ruta ruta) {
return this.getRutaId().intValue() - ruta.getRutaId().intValue();
public int compareTo(Ruta ruta) {
return this.getRutaId().intValue() - ruta.getRutaId().intValue();
}
public Boolean getIsClone() {
@ -456,5 +491,5 @@ public class Ruta implements Serializable, Comparable<Ruta> {
public void setIsClone(Boolean isClone) {
this.isClone = isClone;
}
}
}

View File

@ -15,6 +15,7 @@ import com.rjconsultores.ventaboletos.entidad.DiagramaAutobus;
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
import com.rjconsultores.ventaboletos.entidad.Estado;
import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.exception.BusinessException;
/**
@ -74,4 +75,6 @@ public interface CorridaService extends GenericService<Corrida, Corrida.Id> {
public List<Corrida> buscarCorridaRelatorio(Connection conexao, Parada origem, Parada destino, Date feccorrida, Integer corridaId);
public Corrida buscaCorrridaFutura(Ruta ruta, Date fecInicio);
}

View File

@ -25,10 +25,10 @@ import com.rjconsultores.ventaboletos.entidad.Tramo;
public interface EsquemaCorridaService extends GenericService<EsquemaCorrida, Integer> {
public List<EsquemaCorrida> buscarPorEsquemaOperacional(EsquemaOperacional eo);
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa);
public List<EsquemaCorrida> buscar(Marca marca, RolOperativo rolOperativo,Ruta ruta, ClaseServicio claseServicio);
public List<EsquemaCorrida> buscar(Marca marca, RolOperativo rolOperativo, Ruta ruta, ClaseServicio claseServicio);
public boolean buscarNumCorrida(Integer numCorrida, Integer numCorridaPisoExtra);
@ -38,6 +38,8 @@ public interface EsquemaCorridaService extends GenericService<EsquemaCorrida, In
public boolean buscarEsquemaCorridaExisteTramo(Tramo tramo);
public EsquemaCorrida buscaEsquemaPorRuta(Ruta ruta);
/**
* See {@link EsquemaCorridaDAO#existe(Ruta, Integer)}
*
@ -50,6 +52,6 @@ public interface EsquemaCorridaService extends GenericService<EsquemaCorrida, In
public List<EsquemaCorrida> buscaDentroVigenciaQtdeDiasNull(Date dataGeracao);
public List<EsquemaCorrida> buscaDentroVigenciaQtdeDiasNotNull(Date dataDe);
public EsquemaCorrida obtenerByEsquemaCorrida(Integer numCorrida);
}

View File

@ -1359,4 +1359,9 @@ public class CorridaServiceImpl implements CorridaService {
}
@Override
public Corrida buscaCorrridaFutura(Ruta ruta, Date fecInicio) {
return corridaDAO.buscaCorrridaFutura(ruta, fecInicio);
}
}

View File

@ -55,10 +55,10 @@ public class EsquemaCorridaServiceImpl implements EsquemaCorridaService {
}
@Override
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa){
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa) {
return esquemaCorridaDAO.buscarPorEmpresaCorrida(empresa);
}
@Transactional
public EsquemaCorrida suscribir(EsquemaCorrida entidad) {
List<EsquemaAsiento> asientos = new ArrayList<EsquemaAsiento>();
@ -199,4 +199,9 @@ public class EsquemaCorridaServiceImpl implements EsquemaCorridaService {
public EsquemaCorrida obtenerByEsquemaCorrida(Integer id) {
return esquemaCorridaDAO.obtenerByEsquemaCorrida(id);
}
@Override
public EsquemaCorrida buscaEsquemaPorRuta(Ruta ruta) {
return esquemaCorridaDAO.buscaEsquemaPorRuta(ruta);
}
}