fixes bug#23969
qua: dev:Valdevir git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@110942 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
3a69c869a6
commit
c9d153aaba
|
@ -156,15 +156,27 @@ public class Ruta implements Serializable, Comparable<Ruta>, Auditavel<Ruta> {
|
|||
@Transient
|
||||
private Boolean isClone;
|
||||
|
||||
@Transient
|
||||
@NaoAuditar
|
||||
private Boolean isCadastro;
|
||||
|
||||
@Column(name = "indnumfidelidadobligatorio")
|
||||
private Boolean indNumFidelidadObligatorio;
|
||||
|
||||
@Transient
|
||||
@NaoAuditar
|
||||
private List<RutaCombinacion> rutaCombinacionTemporariaList;
|
||||
|
||||
@Transient
|
||||
@NaoAuditar
|
||||
private Ruta rutaClone;
|
||||
|
||||
@Column(name = "STATUS_AUTORIZADORA")
|
||||
private Integer statusAutorizadora;
|
||||
|
||||
@Transient
|
||||
@NaoAuditar
|
||||
private ClaseServicio claseServicioRutaOrigem;
|
||||
|
||||
public Ruta() {
|
||||
super();
|
||||
|
@ -253,6 +265,7 @@ public class Ruta implements Serializable, Comparable<Ruta>, Auditavel<Ruta> {
|
|||
|
||||
ruta.usuarioId = other.usuarioId;
|
||||
ruta.ventaOffLine = other.ventaOffLine;
|
||||
ruta.claseServicioRutaOrigem=other.claseServicioRutaOrigem;
|
||||
return ruta;
|
||||
}
|
||||
|
||||
|
@ -565,7 +578,7 @@ public class Ruta implements Serializable, Comparable<Ruta>, Auditavel<Ruta> {
|
|||
}
|
||||
|
||||
public Boolean getIsClone() {
|
||||
return isClone;
|
||||
return isClone == null ? false: isClone;
|
||||
}
|
||||
|
||||
public void setIsClone(Boolean isClone) {
|
||||
|
@ -663,4 +676,34 @@ public class Ruta implements Serializable, Comparable<Ruta>, Auditavel<Ruta> {
|
|||
public void setStatusAutorizadora(Integer statusAutorizadora) {
|
||||
this.statusAutorizadora = statusAutorizadora;
|
||||
}
|
||||
|
||||
public List<RutaCombinacion> getRutaCombinacionTemporariaList() {
|
||||
return rutaCombinacionTemporariaList;
|
||||
}
|
||||
|
||||
public void setRutaCombinacionTemporariaList(List<RutaCombinacion> rutaCombinacionTemporariaList) {
|
||||
this.rutaCombinacionTemporariaList = rutaCombinacionTemporariaList;
|
||||
}
|
||||
|
||||
public Boolean getIsCadastro() {
|
||||
return isCadastro==null?false:isCadastro;
|
||||
}
|
||||
|
||||
public void setIsCadastro(Boolean isCadastro) {
|
||||
this.isCadastro = isCadastro;
|
||||
}
|
||||
|
||||
public ClaseServicio getClaseServicioRutaOrigem() {
|
||||
return claseServicioRutaOrigem;
|
||||
}
|
||||
|
||||
public void setClaseServicioRutaOrigem(ClaseServicio claseServicioRutaOrigem) {
|
||||
this.claseServicioRutaOrigem = claseServicioRutaOrigem;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -6,6 +6,7 @@ package com.rjconsultores.ventaboletos.service.impl;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -234,6 +235,7 @@ public class RutaServiceImpl implements RutaService {
|
|||
}
|
||||
|
||||
Boolean isClone = entidad.getIsClone() != null ? entidad.getIsClone() : Boolean.FALSE;
|
||||
Boolean isCadastro = entidad.getIsCadastro();
|
||||
|
||||
if (entidad.getRutaId() == null) {
|
||||
entidad = rutaDAO.suscribir(entidad);
|
||||
|
@ -241,7 +243,7 @@ public class RutaServiceImpl implements RutaService {
|
|||
entidad = rutaDAO.actualizacion(entidad);
|
||||
}
|
||||
if (lsParadasSequencia != null) {
|
||||
if (!isClone) {
|
||||
if (!isClone && !isCadastro) {
|
||||
generarSecuencias(entidad, lsParadasSequencia);
|
||||
}
|
||||
generarCombinacion(entidad);
|
||||
|
@ -283,9 +285,10 @@ public class RutaServiceImpl implements RutaService {
|
|||
ClaseServicio claseServicio = ruta.getClaseServicio();
|
||||
|
||||
Tramo tramo = tramoService.obtenerTramoUnicoRuta(ori, des, via, claseServicio);
|
||||
|
||||
if (tramo != null) {
|
||||
|
||||
if (tramo == null && isCopiaComAlteracaoDeClasse(ruta)) {
|
||||
tramo = tramoService.obtenerTramoUnicoRuta(ori, des, via, ruta.getClaseServicioRutaOrigem());
|
||||
}
|
||||
if (tramo != null ) {
|
||||
RutaSecuencia rutaSecuencia = new RutaSecuencia();
|
||||
rutaSecuencia.setRuta(ruta);
|
||||
rutaSecuencia.setTramo(tramo);
|
||||
|
@ -295,10 +298,30 @@ public class RutaServiceImpl implements RutaService {
|
|||
rutaSecuencia.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
rutaSecuencia.setKmOriginal(tramo.getKmReal());
|
||||
rutaSecuencia = rutaSecuenciaService.suscribir(rutaSecuencia);
|
||||
|
||||
List<RutaCaseta> lsRutaCaseta = rutaSecuenciaBackup.get(tramo.getTramoId());
|
||||
if( lsRutaCaseta != null && !lsRutaCaseta.isEmpty() ) {
|
||||
rutaSecuencia.setLsRutaCase(lsRutaCaseta);
|
||||
|
||||
List<RutaCaseta> lsRutaCaseta;
|
||||
if (ruta.getIsClone()) {
|
||||
lsRutaCaseta = lsParadasSequencia.get(i).getCasetas();
|
||||
if (lsRutaCaseta != null && !lsRutaCaseta.isEmpty()) {
|
||||
List<RutaCaseta> rutasCaseta = new ArrayList<RutaCaseta>();
|
||||
|
||||
for (RutaCaseta rc : lsRutaCaseta) {
|
||||
RutaCaseta rutaCaseta = new RutaCaseta();
|
||||
rutaCaseta.setRutaSecuencia(rutaSecuencia);
|
||||
rutaCaseta.setCasetaPeaje(rc.getCasetaPeaje());
|
||||
rutaCaseta.setActivo(Boolean.TRUE);
|
||||
rutaCaseta.setFecmodif(new Date());
|
||||
rutaCaseta.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
rutasCaseta.add(rutaCaseta);
|
||||
}
|
||||
|
||||
rutaSecuencia.setLsRutaCase(rutasCaseta);
|
||||
}
|
||||
} else {
|
||||
lsRutaCaseta = rutaSecuenciaBackup.get(tramo.getTramoId());
|
||||
if (lsRutaCaseta != null && !lsRutaCaseta.isEmpty()) {
|
||||
rutaSecuencia.setLsRutaCase(lsRutaCaseta);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -312,6 +335,10 @@ public class RutaServiceImpl implements RutaService {
|
|||
}
|
||||
}
|
||||
|
||||
private boolean isCopiaComAlteracaoDeClasse(Ruta ruta) {
|
||||
return ruta.getIsClone() && ruta.getClaseServicioRutaOrigem() != null && (ruta.getClaseServicioRutaOrigem().getClaseservicioId() != ruta.getClaseServicio().getClaseservicioId());
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = BusinessException.class)
|
||||
public Ruta actualizacion(Ruta ruta, List<ParadaSecuencia> lsParadasSequencia) throws BusinessException {
|
||||
if (lsParadasSequencia != null) {
|
||||
|
@ -434,9 +461,17 @@ public class RutaServiceImpl implements RutaService {
|
|||
}
|
||||
|
||||
private boolean indVenta(Ruta ruta, Tramo trBuscaOrigemDestino) {
|
||||
for (RutaCombinacion rc : ruta.getRutaCombinacionList()) {
|
||||
if (rc.getTramo().equals(trBuscaOrigemDestino)) {
|
||||
return rc.getIndventa();
|
||||
if (!ruta.getIsClone()) {
|
||||
for (RutaCombinacion rc : ruta.getRutaCombinacionList()) {
|
||||
if (rc.getTramo().equals(trBuscaOrigemDestino)) {
|
||||
return rc.getIndventa();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (RutaCombinacion rcTemporaria : ruta.getRutaCombinacionTemporariaList()) {
|
||||
if (rcTemporaria.getTramo().equals(trBuscaOrigemDestino)) {
|
||||
return rcTemporaria.getIndventa();
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -397,6 +397,15 @@ public class TramoRutaServiceImpl implements TramoRutaService {
|
|||
nuevaSecuencia.setCoeficienteTarifa3(orgaoTramo.getCoeficienteTarifa3());
|
||||
nuevaSecuencia.setKmCoeficiente3(orgaoTramo.getKmCoeficiente3());
|
||||
nuevaSecuencia.setOrgaoTramoId(orgaoTramo.getOrgaoTramoId());
|
||||
} else if (IsClasseAlterada(rutaTramoVO)) {
|
||||
orgaoTramo = orgaoTramoDAO.buscar(origen.getParadaId(), destino.getParadaId(), via.getViaId(), rutaTramoVO.getOrgaoConcedente().getOrgaoConcedenteId(), rutaTramoVO.getClaseServicioRutaOrigem().getClaseservicioId());
|
||||
if (orgaoTramo != null) {
|
||||
nuevaSecuencia.setKmCoeficiente1(orgaoTramo.getKmCoeficiente1());
|
||||
nuevaSecuencia.setKmCoeficiente2(orgaoTramo.getKmCoeficiente2());
|
||||
nuevaSecuencia.setKmCoeficiente3(orgaoTramo.getKmCoeficiente3());
|
||||
nuevaSecuencia.setOrgaoTramoId(orgaoTramo.getOrgaoTramoId());
|
||||
nuevaSecuencia.setClaseServicioRutaOrigemUtilizadaNaPesquisa(true);
|
||||
}
|
||||
}
|
||||
incluirCoeficiente(nuevaSecuencia, rutaTramoVO);
|
||||
}
|
||||
|
@ -408,9 +417,21 @@ public class TramoRutaServiceImpl implements TramoRutaService {
|
|||
nuevaSecuencia.setTiempoRecorrido(new HoraSistema(tramoServicio.getTiemporecorrido()));
|
||||
nuevaSecuencia.setTramoId(tramoServicio.getTramo().getTramoId());
|
||||
nuevaSecuencia.setTramoServicioId(tramoServicio.getTramoservicioId());
|
||||
} else if (IsClasseAlterada(rutaTramoVO)) {
|
||||
tramoServicio = tramoServicioService.buscar(origen, destino, via, rutaTramoVO.getClaseServicioRutaOrigem());
|
||||
if (tramoServicio != null) {
|
||||
nuevaSecuencia.setKmReal(tramoServicio.getTramo().getKmReal());
|
||||
nuevaSecuencia.setTiempoRecorrido(new HoraSistema(tramoServicio.getTiemporecorrido()));
|
||||
nuevaSecuencia.setTramoId(tramoServicio.getTramo().getTramoId());
|
||||
nuevaSecuencia.setTramoServicioId(tramoServicio.getTramoservicioId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean IsClasseAlterada(RutaTramoVO rutaTramoVO) {
|
||||
return rutaTramoVO.getClaseServicioRutaOrigem() != null && rutaTramoVO.getClaseServicio().getClaseservicioId()!=rutaTramoVO.getClaseServicioRutaOrigem().getClaseservicioId();
|
||||
}
|
||||
|
||||
private void incluirCoeficiente(SecuenciaRutaTramoCoeficienteVO nuevaSecuencia, RutaTramoVO rutaTramoVO) {
|
||||
if (nuevaSecuencia.getKmCoeficiente1() == null && rutaTramoVO.getCoeficienteDefault1() != null) {
|
||||
nuevaSecuencia.setKmCoeficiente1(nuevaSecuencia.getKmReal());
|
||||
|
@ -532,7 +553,7 @@ public class TramoRutaServiceImpl implements TramoRutaService {
|
|||
}
|
||||
}
|
||||
|
||||
if (secuencia.getOrgaoTramoId() == null
|
||||
if ((secuencia.getClaseServicioRutaOrigemUtilizadaNaPesquisa() || secuencia.getOrgaoTramoId() == null )
|
||||
&& secuencia.getCoeficienteTarifa1() != null) {
|
||||
OrgaoTramo orgaoTramo = new OrgaoTramo();
|
||||
orgaoTramo.setClaseServicio(claseServicio);
|
||||
|
@ -594,6 +615,16 @@ public class TramoRutaServiceImpl implements TramoRutaService {
|
|||
for (SecuenciaRutaTramoCoeficienteVO s : rutaTramoVO.getLsCombinacionRutaTramoVO()) {
|
||||
RutaCombinacion rutaCombinacion = new RutaCombinacion();
|
||||
rutaCombinacion.setIndventa(s.getPermiteVenda() == null ? true : s.getPermiteVenda());
|
||||
if (ruta.getIsClone() ) {
|
||||
Tramo tramoAtual = tramoService.obtenerTramotPorOrigemDestinoVia(s.getOrigen(), s.getDestino(), s.getVia());
|
||||
for (RutaCombinacion rcRuta : ruta.getRutaCombinacionList()) {
|
||||
if (rcRuta.getTramo() != null && tramoAtual != null && rcRuta.getTramo().getTramoId() == tramoAtual.getTramoId()) {
|
||||
rutaCombinacion.setIndventa(rcRuta.getIndventa() == null ? true : rcRuta.getIndventa());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
rutaCombinacion.setRuta(ruta);
|
||||
rutaCombinacion.setTramo(tramoService.obtenerTramotPorOrigemDestinoVia(s.getOrigen(), s.getDestino(), s.getVia()));
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ public class RutaTramoVO {
|
|||
private Boolean ventaHandHeld;
|
||||
private Boolean solicitaNombrePasajero;
|
||||
private ClaseServicio claseServicio;
|
||||
private ClaseServicio claseServicioRutaOrigem;
|
||||
private OrgaoConcedente orgaoConcedente;
|
||||
private List<SecuenciaRutaTramoVO> lsSecuenciaRutaTramoVO;
|
||||
private List<SecuenciaRutaTramoCoeficienteVO> lsCombinacionRutaTramoVO;
|
||||
|
@ -169,6 +170,16 @@ public class RutaTramoVO {
|
|||
this.lsParadaSecuenciaCombinacaoLinhas = lsParadaSecuenciaCombinacaoLinhas;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public ClaseServicio getClaseServicioRutaOrigem() {
|
||||
return claseServicioRutaOrigem;
|
||||
}
|
||||
|
||||
public void setClaseServicioRutaOrigem(ClaseServicio claseServicioRutaOrigem) {
|
||||
this.claseServicioRutaOrigem = claseServicioRutaOrigem;
|
||||
}
|
||||
|
||||
public Map<Parada, BigDecimal> getParadasComKmEntradaSaida(){
|
||||
Map<Parada, BigDecimal> kmEntradaSaida = new HashMap<Parada, BigDecimal>();
|
||||
for (SecuenciaRutaTramoVO s : getLsSecuenciaRutaTramoVO()){
|
||||
|
|
|
@ -28,6 +28,7 @@ public class SecuenciaRutaTramoCoeficienteVO {
|
|||
private CoeficienteTarifa coeficienteTarifa3;
|
||||
private BigDecimal kmCoeficiente3;
|
||||
private Boolean permiteVenda;
|
||||
private Boolean claseServicioRutaOrigemUtilizadaNaPesquisa;
|
||||
|
||||
public SecuenciaRutaTramoCoeficienteVO(Parada origen, Parada destino, Via via, Integer secuencia, BigDecimal kmReal, HoraSistema tiempoRecorrido) {
|
||||
super();
|
||||
|
@ -259,4 +260,14 @@ public class SecuenciaRutaTramoCoeficienteVO {
|
|||
this.kmEntradaDestino = kmEntradaDestino;
|
||||
}
|
||||
|
||||
public Boolean getClaseServicioRutaOrigemUtilizadaNaPesquisa() {
|
||||
return claseServicioRutaOrigemUtilizadaNaPesquisa==null?false:claseServicioRutaOrigemUtilizadaNaPesquisa;
|
||||
}
|
||||
|
||||
public void setClaseServicioRutaOrigemUtilizadaNaPesquisa(Boolean claseServicioRutaOrigemUtilizadaNaPesquisa) {
|
||||
this.claseServicioRutaOrigemUtilizadaNaPesquisa = claseServicioRutaOrigemUtilizadaNaPesquisa;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue