diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarSecuenciaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarSecuenciaController.java index 9aa26f7df..4362ec77f 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarSecuenciaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarSecuenciaController.java @@ -42,6 +42,8 @@ public class EditarSecuenciaController extends MyGenericForwardComposer{ private String localidadeDestino; private MyListbox casetaPeajeList; private List lsCasetaPeaje; + private List lsSequenciasRemovidas; + private List lsSequenciasIncluidas; private List lsRutaSecuencia; @@ -75,6 +77,8 @@ public class EditarSecuenciaController extends MyGenericForwardComposer{ // lsCasetaPeaje = new ArrayList(); lsTodasCasetasPeaje = casetaPeajeService.buscarTodosOrdenadoPorDescricao(); + lsSequenciasRemovidas = new ArrayList(); + lsSequenciasIncluidas = new ArrayList(); } @@ -163,39 +167,47 @@ public class EditarSecuenciaController extends MyGenericForwardComposer{ @SuppressWarnings({ "unchecked", "rawtypes" }) public void onClick$btnAdicionarCasetaPeaje(Event ev) throws InterruptedException { CasetaPeaje cas = (CasetaPeaje) cmbTodasCasetasPeaje.getSelectedItem().getValue(); - lsCasetaPeaje.add(cas); + + lsSequenciasIncluidas.add(cas); // CasetaPeaje caseta = new CasetaPeaje(); // caseta.setCasetaPeajeId(1); // caseta.setDesccaseta("descricao"); // caseta.setImporteIda(BigDecimal.valueOf(10)); // caseta.setImporteVuelta(BigDecimal.valueOf(11)); // lsCasetaPeaje.add(caseta); - casetaPeajeList.setData(lsCasetaPeaje); + casetaPeajeList.setData(lsSequenciasIncluidas); } @SuppressWarnings({ "unchecked", "rawtypes" }) public void onClick$btnRemoverCasetaPeaje(Event ev) throws InterruptedException { CasetaPeaje cas = (CasetaPeaje)casetaPeajeList.getSelected(); - lsCasetaPeaje.remove(cas); - casetaPeajeList.setData(lsCasetaPeaje); + lsSequenciasRemovidas.add(cas); + lsSequenciasIncluidas.remove(cas); + + casetaPeajeList.removeSelectedItem(); } public void onClick$btnSalvar(Event ev) throws InterruptedException { List lsrc = new ArrayList() ; - for(int i = 0 ; i < lsCasetaPeaje.size() ; i ++){ + for(int i = 0 ; i < lsSequenciasIncluidas.size() ; i ++){ RutaCaseta rc = new RutaCaseta(); RutaSecuencia rutaSecue = lsRutaSecuencia.get(paradaSeqOrigen.getSecuencia()-1); rc.setRutaSecuencia(rutaSecue); - rc.setCasetaPeaje(lsCasetaPeaje.get(i)); + rc.setCasetaPeaje(lsSequenciasIncluidas.get(i)); lsrc.add(rc); } - try { - rutaCasetaService.deletarRutaCasetasFromRutaSecuenciaId(lsRutaSecuencia.get(paradaSeqOrigen.getSecuencia()-1).getRutasecuenciaId()); - } catch (BusinessException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); + + for (CasetaPeaje casetaPeaje: lsSequenciasRemovidas){ + try { + RutaSecuencia rutaSecuencia = casetaPeaje.getLsRutaSecuencia().get(paradaSeqOrigen.getSecuencia()-1); + rutaCasetaService.deletarRutaCasetasFromRutaSecuenciaId(rutaSecuencia.getRutasecuenciaId()); + } catch (BusinessException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + return; + } } RutaSecuencia rutaSecue = lsRutaSecuencia.get(paradaSeqOrigen.getSecuencia()-1); @@ -223,11 +235,17 @@ public class EditarSecuenciaController extends MyGenericForwardComposer{ for (int i = 0; i < lsRutaSecuencia.size(); i++) { RutaSecuencia rs = lsRutaSecuencia.get(i); Tramo tramo = rs.getTramo(); - Via via = tramo.getVia(); + List lcas = rs.getLsRutaCase(); Short numsecuencia = ++numSecuencia; + + Via via = tramo.getVia(); Parada paradaOrigem = tramo.getOrigem(); - addTramoPardaSecuencia(paradaOrigem, via, numsecuencia, lsrc, getTempo(tramo.getTramoServicioList(), rs.getRuta()),tramo.getKmReal().toPlainString()); + if (paradaSeqOrigen.getSecuencia() == numsecuencia && !lsSequenciasRemovidas.isEmpty()){ + removerRutaCaseta(lcas); + } + + addTramoPardaSecuencia(paradaOrigem, via, numsecuencia, lcas, getTempo(tramo.getTramoServicioList(), rs.getRuta()),tramo.getKmReal().toPlainString()); if (i == lsRutaSecuencia.size() - 1) { @@ -291,18 +309,16 @@ public class EditarSecuenciaController extends MyGenericForwardComposer{ } private void addTramoPardaSecuencia(Parada parada, Via via, Short numsecuencia, List lCas, String tempo, String km) { - if(!lCas.isEmpty()) { ParadaSecuencia paradaSecuencia = new ParadaSecuencia(); paradaSecuencia.setParada(parada); paradaSecuencia.setSecuencia(numsecuencia); paradaSecuencia.setVia(via); - paradaSecuencia.setCasetas(lCas); + if (!lCas.isEmpty()){ + paradaSecuencia.setCasetas(lCas); + } paradaSecuencia.setKmReal(km); paradaSecuencia.setTempoReal(tempo); lsParadasSequencia.add(paradaSecuencia); - } else { - addTramoPardaSecuencia(parada, via, numsecuencia); - } } private String getTempo(List lsTramoServicio, Ruta rutaTempo) { @@ -324,4 +340,19 @@ public class EditarSecuenciaController extends MyGenericForwardComposer{ return ""; } + + private void removerRutaCaseta(List lsRutaCaseta){ + List rutaCasetasRemovidas = new ArrayList(); + + for (CasetaPeaje casetaPaje: lsSequenciasRemovidas){ + for (RutaCaseta rutaCaseta: lsRutaCaseta){ + if (rutaCaseta.getCasetaPeaje().getCasetaPeajeId() == casetaPaje.getCasetaPeajeId()){ + rutaCasetasRemovidas.add(rutaCaseta); + break; + } + } + } + + lsRutaCaseta.removeAll(rutaCasetasRemovidas); + } }