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-87c2c4800839
master
aristides 2022-02-18 02:32:12 +00:00
parent 3a69c869a6
commit c9d153aaba
5 changed files with 144 additions and 13 deletions

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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()));

View File

@ -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()){

View File

@ -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;
}
}