From 7f86ef4b5ae256e28a942f3066fb2d11d490ab94 Mon Sep 17 00:00:00 2001 From: valdevir Date: Wed, 28 Feb 2024 18:14:17 -0300 Subject: [PATCH] fixes bug #AL-3494 --- pom.xml | 4 +- .../EditarCorridaController.java | 78 ++++++++++++------- web/WEB-INF/i3-label_pt_BR.label | 2 +- 3 files changed, 51 insertions(+), 33 deletions(-) diff --git a/pom.xml b/pom.xml index 4e3dc6ec2..513b1abd0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,11 +4,11 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.54.3 + 1.54.4 war - 1.40.5 + 1.40.6 1.30.0 UTF-8 UTF-8 diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java index 7b0e4382a..543412426 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java @@ -23,13 +23,11 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; -import org.springframework.dao.DataIntegrityViolationException; import org.springframework.stereotype.Controller; import org.zkoss.util.resource.Labels; import org.zkoss.zhtml.Messagebox; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; -import org.zkoss.zk.ui.SuspendNotAllowedException; import org.zkoss.zk.ui.WrongValueException; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; @@ -1021,6 +1019,7 @@ public class EditarCorridaController extends MyGenericForwardComposer { List lsParadaEsquemaRemovidas = new ArrayList(); List lsParadaEsquemaEditadas =new ArrayList(); + Corrida corrida = corridaService.buscarCorridaAtivaPorId(new Corrida.Id(esquemaCorrida.getNumCorrida(),dataIter )); preencheParadaEsquemaRemovidaEEditada(lsParadaEsquemaRemovidas, lsParadaEsquemaEditadas); List lsParadaEsquemaAdicionadasRemovidasOuEditadas = new ArrayList() ; @@ -1048,11 +1047,7 @@ public class EditarCorridaController extends MyGenericForwardComposer { List corridaTramoList = null; //Se nenhuma localidade editada tem venda, recria todos os corridas tramos da corrida if(localidadeComVenda==null || localidadeComVenda.isEmpty()) { - corridaTramoList = corridaTramoService.recriaCorridaTramo(esquemaCorrida, dataIter, lsEsquemaTramo ); - String msgSucesso = "Corrida para a data " + DateUtil.getStringDate(dataIter) + " gerada com sucesso"; - TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgSucesso, "OK", "OK" ); - tarefaSucesso.add(tarefa); - + corridaTramoList = corridaTramoService.recriaCorridaTramo(esquemaCorrida, dataIter, lsEsquemaTramo, corrida ); }else { List lsEsquemaTramoIter = new ArrayList(); List localidadeComVendaIter = new ArrayList(); @@ -1062,7 +1057,7 @@ public class EditarCorridaController extends MyGenericForwardComposer { lsEsquemaTramoIter = adicionarParadaEsquemaTramo(localidadeComVendaIter,paradaEsquemaComVenda.getParada() , esquemaCorrida, (Ruta) cmbRuta.getSelectedItem().getValue(), paradaEsquemaComVenda.getPlataforma(), paradaEsquemaComVenda.getTipoPassagem(), listParadaEsquemaComNovaParada); localidadeComVendaIter = listParadaEsquemaComNovaParada; } - corridaTramoList = corridaTramoService.recriaCorridaTramo(esquemaCorrida, dataIter, lsEsquemaTramoIter ); + corridaTramoList = corridaTramoService.recriaCorridaTramo(esquemaCorrida, dataIter, lsEsquemaTramoIter, corrida ); } //Valida e apaga corrida caso exista @@ -1083,8 +1078,12 @@ public class EditarCorridaController extends MyGenericForwardComposer { // Gerar corrida novamente. List esquemaCorridaList = new ArrayList(); 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); + }catch (Exception e) { @@ -1184,20 +1183,21 @@ public class EditarCorridaController extends MyGenericForwardComposer { Corrida.Id id = new Corrida.Id(corridaId, dataIter); //3 - Gerar nova corrida somente se a corrida estiver ativa 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"); - } - - 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"); +// } + 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"); + + } } return null; } @@ -1563,6 +1563,22 @@ public class EditarCorridaController extends MyGenericForwardComposer { cmbTramo.setModel(listModelTramo); cmbParadaOrigem.setModel(new BindingListModelList( lstPardasRuta, true)); cmbParadaDestino.setModel(new BindingListModelList( lstPardasRuta, true)); + preencheParadaEsquemaOriginal(); + } + + private void preencheParadaEsquemaOriginal() { + List lsEsquemaTramoIter = new ArrayList(); + List localidadeComVendaIter = new ArrayList(); + localidadeComVendaIter.addAll(lsParadaEsquema); + for (Parada parada : lsTramos) { + List listParadaEsquemaComNovaParada = new ArrayList(); + lsEsquemaTramoIter = adicionarParadaEsquemaTramo(localidadeComVendaIter,parada , esquemaCorrida, esquemaCorrida.getRuta(), null, null, listParadaEsquemaComNovaParada); + localidadeComVendaIter = listParadaEsquemaComNovaParada; + } + lsEsquemaTramoOriginal = new ArrayList(); + lsEsquemaTramoOriginal.addAll(lsEsquemaTramoIter); + lsParadaEsquemaOrignal = new ArrayList(); + lsParadaEsquemaOrignal.addAll(localidadeComVendaIter); } private void selecionarRuta() { @@ -1752,8 +1768,6 @@ public class EditarCorridaController extends MyGenericForwardComposer { lsRutaSecuencia = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta); - - Short secuencia = 0; boolean nuevoAgregado = false; boolean noExisteTramoAsociado = listParadaEsquema.isEmpty();// es la @@ -1770,7 +1784,9 @@ public class EditarCorridaController extends MyGenericForwardComposer { paradaEsquema.setParada(novaParada); paradaEsquema.setPlataforma(plataforma); paradaEsquema.setTipoPassagem(tipoPassagem); - listParadaEsquemaComNovaParada.add(paradaEsquema); + + listParadaEsquemaComNovaParada.add(paradaEsquema); + nuevoAgregado = true; indiceSecuencia = i; } else { @@ -1778,7 +1794,9 @@ public class EditarCorridaController extends MyGenericForwardComposer { if (rutaSecuencia.getTramo().getOrigem().equals(listParadaEsquema.get(0).getParada())) { secuencia++; listParadaEsquema.get(0).setNumsecuencia(secuencia); - listParadaEsquemaComNovaParada.add(listParadaEsquema.get(0)); + + listParadaEsquemaComNovaParada.add(listParadaEsquema.get(0)); + listParadaEsquema.remove(0); } @@ -1822,10 +1840,10 @@ public class EditarCorridaController extends MyGenericForwardComposer { Parada paradaOrigen = listParadaEsquemaComNovaParada.get(i).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) { - List lsr = rutaSecuenciaService.buscarSecuenciaOrdenado((Ruta) cmbRuta.getSelectedItem().getValue()); + List lsr = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta); for(RutaSecuencia s : lsr) { if(s.tieneOrigen(paradaOrigen.getParadaId()) && s.tieneDestino(paradaDestino.getParadaId())) { t = s.getTramo(); diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index d22f0ebcb..4e7fc71fc 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -3135,7 +3135,7 @@ busquedaCatalogoDeRutaController.lhDesc.label = Linha busquedaCatalogoDeRutaController.lhClase.label = Classe busquedaCatalogoDeRutaController.lbClase.value = Tipo de Classe 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 editarCatalogoDeRutaController.btnRetomarCancelar.tooltipCancelar=Desativar