fixes bug #AL-3494

master
valdevir 2024-02-28 18:14:17 -03:00
parent f8b40576f4
commit 7f86ef4b5a
3 changed files with 51 additions and 33 deletions

View File

@ -4,11 +4,11 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId> <groupId>br.com.rjconsultores</groupId>
<artifactId>ventaboletosadm</artifactId> <artifactId>ventaboletosadm</artifactId>
<version>1.54.3</version> <version>1.54.4</version>
<packaging>war</packaging> <packaging>war</packaging>
<properties> <properties>
<modelWeb.version>1.40.5</modelWeb.version> <modelWeb.version>1.40.6</modelWeb.version>
<flyway.version>1.30.0</flyway.version> <flyway.version>1.30.0</flyway.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

View File

@ -23,13 +23,11 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.zkoss.util.resource.Labels; import org.zkoss.util.resource.Labels;
import org.zkoss.zhtml.Messagebox; import org.zkoss.zhtml.Messagebox;
import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.SuspendNotAllowedException;
import org.zkoss.zk.ui.WrongValueException; import org.zkoss.zk.ui.WrongValueException;
import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.EventListener;
@ -1021,6 +1019,7 @@ public class EditarCorridaController extends MyGenericForwardComposer {
List<ParadaEsquema> lsParadaEsquemaRemovidas = new ArrayList<ParadaEsquema>(); List<ParadaEsquema> lsParadaEsquemaRemovidas = new ArrayList<ParadaEsquema>();
List<ParadaEsquema> lsParadaEsquemaEditadas =new ArrayList<ParadaEsquema>(); List<ParadaEsquema> lsParadaEsquemaEditadas =new ArrayList<ParadaEsquema>();
Corrida corrida = corridaService.buscarCorridaAtivaPorId(new Corrida.Id(esquemaCorrida.getNumCorrida(),dataIter ));
preencheParadaEsquemaRemovidaEEditada(lsParadaEsquemaRemovidas, lsParadaEsquemaEditadas); preencheParadaEsquemaRemovidaEEditada(lsParadaEsquemaRemovidas, lsParadaEsquemaEditadas);
List<ParadaEsquema> lsParadaEsquemaAdicionadasRemovidasOuEditadas = new ArrayList<ParadaEsquema>() ; List<ParadaEsquema> lsParadaEsquemaAdicionadasRemovidasOuEditadas = new ArrayList<ParadaEsquema>() ;
@ -1048,11 +1047,7 @@ public class EditarCorridaController extends MyGenericForwardComposer {
List<CorridaTramo> corridaTramoList = null; List<CorridaTramo> corridaTramoList = null;
//Se nenhuma localidade editada tem venda, recria todos os corridas tramos da corrida //Se nenhuma localidade editada tem venda, recria todos os corridas tramos da corrida
if(localidadeComVenda==null || localidadeComVenda.isEmpty()) { if(localidadeComVenda==null || localidadeComVenda.isEmpty()) {
corridaTramoList = corridaTramoService.recriaCorridaTramo(esquemaCorrida, dataIter, lsEsquemaTramo ); corridaTramoList = corridaTramoService.recriaCorridaTramo(esquemaCorrida, dataIter, lsEsquemaTramo, corrida );
String msgSucesso = "Corrida para a data " + DateUtil.getStringDate(dataIter) + " gerada com sucesso";
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgSucesso, "OK", "OK" );
tarefaSucesso.add(tarefa);
}else { }else {
List<EsquemaTramo> lsEsquemaTramoIter = new ArrayList<EsquemaTramo>(); List<EsquemaTramo> lsEsquemaTramoIter = new ArrayList<EsquemaTramo>();
List<ParadaEsquema> localidadeComVendaIter = new ArrayList<ParadaEsquema>(); List<ParadaEsquema> localidadeComVendaIter = new ArrayList<ParadaEsquema>();
@ -1062,7 +1057,7 @@ public class EditarCorridaController extends MyGenericForwardComposer {
lsEsquemaTramoIter = adicionarParadaEsquemaTramo(localidadeComVendaIter,paradaEsquemaComVenda.getParada() , esquemaCorrida, (Ruta) cmbRuta.getSelectedItem().getValue(), paradaEsquemaComVenda.getPlataforma(), paradaEsquemaComVenda.getTipoPassagem(), listParadaEsquemaComNovaParada); lsEsquemaTramoIter = adicionarParadaEsquemaTramo(localidadeComVendaIter,paradaEsquemaComVenda.getParada() , esquemaCorrida, (Ruta) cmbRuta.getSelectedItem().getValue(), paradaEsquemaComVenda.getPlataforma(), paradaEsquemaComVenda.getTipoPassagem(), listParadaEsquemaComNovaParada);
localidadeComVendaIter = listParadaEsquemaComNovaParada; localidadeComVendaIter = listParadaEsquemaComNovaParada;
} }
corridaTramoList = corridaTramoService.recriaCorridaTramo(esquemaCorrida, dataIter, lsEsquemaTramoIter ); corridaTramoList = corridaTramoService.recriaCorridaTramo(esquemaCorrida, dataIter, lsEsquemaTramoIter, corrida );
} }
//Valida e apaga corrida caso exista //Valida e apaga corrida caso exista
@ -1083,7 +1078,11 @@ public class EditarCorridaController extends MyGenericForwardComposer {
// Gerar corrida novamente. // Gerar corrida novamente.
List<EsquemaCorrida> esquemaCorridaList = new ArrayList<EsquemaCorrida>(); List<EsquemaCorrida> esquemaCorridaList = new ArrayList<EsquemaCorrida>();
esquemaCorridaList.add(esquemaCorrida); esquemaCorridaList.add(esquemaCorrida);
corridaService.generarCorrida(dataIter, esquemaCorridaList, false, corridaTramoList, true); boolean isAtualizaCorrida = corrida!=null;
corridaService.generarCorrida(dataIter, esquemaCorridaList, false, corridaTramoList, isAtualizaCorrida);
String msgSucesso = "Corrida para a data " + DateUtil.getStringDate(dataIter) + " gerada com sucesso";
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgSucesso, "OK", "OK" );
tarefaSucesso.add(tarefa);
@ -1184,20 +1183,21 @@ public class EditarCorridaController extends MyGenericForwardComposer {
Corrida.Id id = new Corrida.Id(corridaId, dataIter); Corrida.Id id = new Corrida.Id(corridaId, dataIter);
//3 - Gerar nova corrida somente se a corrida estiver ativa //3 - Gerar nova corrida somente se a corrida estiver ativa
Corrida corrida = corridaService.buscarCorridaAtivaPorId(id); Corrida corrida = corridaService.buscarCorridaAtivaPorId(id);
//
// if(corrida==null) {
// String msgErro = "Não econtrado corrida ativa e habilitada:" + esquemaCorrida.getNumCorrida() + " para a data:" + DateUtil.getStringDate(dataIter);
// log.error("Geração de corrida via Conf. " + msgErro);
// return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
// }
if(corrida!=null) {
try {
inativaCorridaETabelasRelacionadas(corrida);
}catch (Exception e) {
String msgErro = "Erro ao inativar corrida e tabelas relacionadas. Favor verificar ";
log.error("Geração de corrida via Conf. " + msgErro, e);
return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
if(corrida==null) { }
String msgErro = "Não econtrado corrida ativa e habilitada:" + esquemaCorrida.getNumCorrida() + " para a data:" + DateUtil.getStringDate(dataIter);
log.error("Geração de corrida via Conf. " + msgErro);
return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
}
try {
inativaCorridaETabelasRelacionadas(corrida);
}catch (Exception e) {
String msgErro = "Erro ao inativar corrida e tabelas relacionadas. Favor verificar ";
log.error("Geração de corrida via Conf. " + msgErro, e);
return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
} }
return null; return null;
} }
@ -1563,6 +1563,22 @@ public class EditarCorridaController extends MyGenericForwardComposer {
cmbTramo.setModel(listModelTramo); cmbTramo.setModel(listModelTramo);
cmbParadaOrigem.setModel(new BindingListModelList( lstPardasRuta, true)); cmbParadaOrigem.setModel(new BindingListModelList( lstPardasRuta, true));
cmbParadaDestino.setModel(new BindingListModelList( lstPardasRuta, true)); cmbParadaDestino.setModel(new BindingListModelList( lstPardasRuta, true));
preencheParadaEsquemaOriginal();
}
private void preencheParadaEsquemaOriginal() {
List<EsquemaTramo> lsEsquemaTramoIter = new ArrayList<EsquemaTramo>();
List<ParadaEsquema> localidadeComVendaIter = new ArrayList<ParadaEsquema>();
localidadeComVendaIter.addAll(lsParadaEsquema);
for (Parada parada : lsTramos) {
List<ParadaEsquema> listParadaEsquemaComNovaParada = new ArrayList<ParadaEsquema>();
lsEsquemaTramoIter = adicionarParadaEsquemaTramo(localidadeComVendaIter,parada , esquemaCorrida, esquemaCorrida.getRuta(), null, null, listParadaEsquemaComNovaParada);
localidadeComVendaIter = listParadaEsquemaComNovaParada;
}
lsEsquemaTramoOriginal = new ArrayList<EsquemaTramo>();
lsEsquemaTramoOriginal.addAll(lsEsquemaTramoIter);
lsParadaEsquemaOrignal = new ArrayList<ParadaEsquema>();
lsParadaEsquemaOrignal.addAll(localidadeComVendaIter);
} }
private void selecionarRuta() { private void selecionarRuta() {
@ -1752,8 +1768,6 @@ public class EditarCorridaController extends MyGenericForwardComposer {
lsRutaSecuencia = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta); lsRutaSecuencia = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta);
Short secuencia = 0; Short secuencia = 0;
boolean nuevoAgregado = false; boolean nuevoAgregado = false;
boolean noExisteTramoAsociado = listParadaEsquema.isEmpty();// es la boolean noExisteTramoAsociado = listParadaEsquema.isEmpty();// es la
@ -1770,7 +1784,9 @@ public class EditarCorridaController extends MyGenericForwardComposer {
paradaEsquema.setParada(novaParada); paradaEsquema.setParada(novaParada);
paradaEsquema.setPlataforma(plataforma); paradaEsquema.setPlataforma(plataforma);
paradaEsquema.setTipoPassagem(tipoPassagem); paradaEsquema.setTipoPassagem(tipoPassagem);
listParadaEsquemaComNovaParada.add(paradaEsquema); listParadaEsquemaComNovaParada.add(paradaEsquema);
nuevoAgregado = true; nuevoAgregado = true;
indiceSecuencia = i; indiceSecuencia = i;
} else { } else {
@ -1778,7 +1794,9 @@ public class EditarCorridaController extends MyGenericForwardComposer {
if (rutaSecuencia.getTramo().getOrigem().equals(listParadaEsquema.get(0).getParada())) { if (rutaSecuencia.getTramo().getOrigem().equals(listParadaEsquema.get(0).getParada())) {
secuencia++; secuencia++;
listParadaEsquema.get(0).setNumsecuencia(secuencia); listParadaEsquema.get(0).setNumsecuencia(secuencia);
listParadaEsquemaComNovaParada.add(listParadaEsquema.get(0)); listParadaEsquemaComNovaParada.add(listParadaEsquema.get(0));
listParadaEsquema.remove(0); listParadaEsquema.remove(0);
} }
@ -1822,10 +1840,10 @@ public class EditarCorridaController extends MyGenericForwardComposer {
Parada paradaOrigen = listParadaEsquemaComNovaParada.get(i).getParada(); Parada paradaOrigen = listParadaEsquemaComNovaParada.get(i).getParada();
Parada paradaDestino = listParadaEsquemaComNovaParada.get(i + 1).getParada(); Parada paradaDestino = listParadaEsquemaComNovaParada.get(i + 1).getParada();
Tramo t = rutaCombinacionService.busqueda((Ruta) cmbRuta.getSelectedItem().getValue(), paradaOrigen, paradaDestino); Tramo t = rutaCombinacionService.busqueda((Ruta) ruta, paradaOrigen, paradaDestino);
if(t==null) { if(t==null) {
List<RutaSecuencia> lsr = rutaSecuenciaService.buscarSecuenciaOrdenado((Ruta) cmbRuta.getSelectedItem().getValue()); List<RutaSecuencia> lsr = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta);
for(RutaSecuencia s : lsr) { for(RutaSecuencia s : lsr) {
if(s.tieneOrigen(paradaOrigen.getParadaId()) && s.tieneDestino(paradaDestino.getParadaId())) { if(s.tieneOrigen(paradaOrigen.getParadaId()) && s.tieneDestino(paradaDestino.getParadaId())) {
t = s.getTramo(); t = s.getTramo();

View File

@ -3135,7 +3135,7 @@ busquedaCatalogoDeRutaController.lhDesc.label = Linha
busquedaCatalogoDeRutaController.lhClase.label = Classe busquedaCatalogoDeRutaController.lhClase.label = Classe
busquedaCatalogoDeRutaController.lbClase.value = Tipo de Classe busquedaCatalogoDeRutaController.lbClase.value = Tipo de Classe
busquedaCatalogoDeRutaController.chkRutaCancelada=Linhas Inativas busquedaCatalogoDeRutaController.chkRutaCancelada=Linhas Inativas
busquedaCatalogoDeRutaController.msg.validactionRemocionParada=Não é possível quitar a localidade "{0}" da linha pues já existe(n) serviço(s) que a ocupa. Quite a localidade "{0}" de as seguintes serviços : ({1}) para depois quitar na linha. busquedaCatalogoDeRutaController.msg.validactionRemocionParada=Não é possível remover a localidade "{0}" da linha pois já existe(n) serviço(s) que contém esta localidade. Remova a localidade "{0}" nos seguintes serviços : ({1}) para depois remover na linha.
# Pantalla Editar Linha # Pantalla Editar Linha
editarCatalogoDeRutaController.btnRetomarCancelar.tooltipCancelar=Desativar editarCatalogoDeRutaController.btnRetomarCancelar.tooltipCancelar=Desativar