From ab52a8e458b45cdf80de1e167ff2c7694e44027b Mon Sep 17 00:00:00 2001 From: valdir Date: Mon, 19 Oct 2020 23:56:43 +0000 Subject: [PATCH] 0020706: GLPI 30010 - ESPEC MULTIPORTAIS - Bloqueio de trecho por canais de venda bug#20706 dev: qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@103858 d1611594-4594-4d17-8e1d-87c2c4800839 --- ...itarConfRestricaoCanalVentaController.java | 57 +++++++++++++++---- .../utilerias/render/RenderConfRestRuta.java | 4 +- 2 files changed, 47 insertions(+), 14 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConfRestricaoCanalVentaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConfRestricaoCanalVentaController.java index c3d239b04..2c9b87944 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConfRestricaoCanalVentaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConfRestricaoCanalVentaController.java @@ -775,6 +775,12 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom } } + Ruta rutaTodos = rutaService.obtenerID(-1); + + if(!rutasAux.isEmpty() && !rutasAux.contains(rutaTodos)) { + rutasAux.add(rutaTodos); + } + lsRutasOrgaoConcedente = new ArrayList(); lsRutasOrgaoConcedente.addAll(rutasAux); @@ -790,20 +796,20 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom List tramosAux = new ArrayList(); if(confRestricaoCanalVenta.getLsConfRestricaoRutas() != null) { - for(ConfRestricaoRutas confOrgao : confRestricaoCanalVenta.getLsConfRestricaoRutas()) { + + //Se estiver escolhido todas as linhas busca todos os trechos dos Orgaos concedentes + if(existeRutaTodos(confRestricaoCanalVenta.getLsConfRestricaoRutas())) { - List rutasSequencia = rutaSecuenciaService.buscarSecuenciaOrdenado(confOrgao.getRuta()); - - for(RutaSecuencia rt : rutasSequencia ) { - if(!tramosAux.contains(rt.getTramo().getOrigem())) { - tramosAux.add(rt.getTramo().getOrigem()); - } - - if(!tramosAux.contains(rt.getTramo().getDestino())) { - tramosAux.add(rt.getTramo().getDestino()); - } + for(Ruta ruta : lsRutasOrgaoConcedente) { + buscarTrechos(tramosAux, ruta); } + + } else { + for(ConfRestricaoRutas confOrgao : confRestricaoCanalVenta.getLsConfRestricaoRutas()) { + buscarTrechos(tramosAux, confOrgao.getRuta()); + } } + } lsParadaOC = new ArrayList(); @@ -818,6 +824,35 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom log.error("Erro ao buscar trechos por linha: ", e); } } + + private boolean existeRutaTodos(List lsConfRestricaoRutas) { + try { + Ruta rutaTodos = rutaService.obtenerID(-1); + + for(ConfRestricaoRutas conf : lsConfRestricaoRutas) { + if(rutaTodos.equals(conf.getRuta())) { + return true; + } + } + } catch (Exception e) { + log.error("Erro ao buscar ruta todos", e); + } + return false; + } + + private void buscarTrechos(List tramosAux, Ruta ruta) { + List rutasSequencia = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta); + + for(RutaSecuencia rt : rutasSequencia ) { + if(!tramosAux.contains(rt.getTramo().getOrigem())) { + tramosAux.add(rt.getTramo().getOrigem()); + } + + if(!tramosAux.contains(rt.getTramo().getDestino())) { + tramosAux.add(rt.getTramo().getDestino()); + } + } + } public void onClick$btnAddRuta(Event ev) throws InterruptedException { diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestRuta.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestRuta.java index 53fc5da82..615ed128f 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestRuta.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestRuta.java @@ -11,9 +11,7 @@ public class RenderConfRestRuta implements ListitemRenderer { public void render(Listitem lstm, Object o) throws Exception { ConfRestricaoRutas confOrgao = (ConfRestricaoRutas) o; - Listcell lc = new Listcell(confOrgao.getRuta() == null ?" - " : confOrgao.getRuta().getDescruta()); - lc.setParent(lstm); - + Listcell lc = new Listcell(confOrgao.getRuta() == null ?" - " : confOrgao.getRuta().toString()); lc.setParent(lstm); lstm.setAttribute("data", confOrgao);