From e667f575ef04b30d2eda6022c006b5bfb4f92998 Mon Sep 17 00:00:00 2001 From: julio Date: Tue, 21 Mar 2017 18:59:42 +0000 Subject: [PATCH] fixes bug #7930 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@67106 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/service/RutaService.java | 8 ++- .../service/impl/RutaServiceImpl.java | 56 +++++++++++++------ 2 files changed, 43 insertions(+), 21 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/service/RutaService.java b/src/com/rjconsultores/ventaboletos/service/RutaService.java index 64e925881..93c3ffc9a 100644 --- a/src/com/rjconsultores/ventaboletos/service/RutaService.java +++ b/src/com/rjconsultores/ventaboletos/service/RutaService.java @@ -103,9 +103,11 @@ public interface RutaService { * @return Retorna a coleção de sequencias que precisam ser geradas */ public List verificarSeqRutaNaoGerada(Ruta ruta, List lsParadasSequencia); - + public List buscarRutasPorEmpresaOrgaoConcedente(Empresa empresa, OrgaoConcedente orgao); - - public boolean cambiarParadaRuta(Ruta ruta, Parada parada, String descripcionParada) throws Exception ; + + public boolean cambiarParadaRuta(Ruta ruta, Parada paradaAntiga, Parada nuevaParada, String descripcionParada) throws Exception; + + public Parada validaParada(String descripcionParada, Parada paradaAntiga) throws Exception; } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/RutaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/RutaServiceImpl.java index b98a06896..0ab78853a 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/RutaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/RutaServiceImpl.java @@ -72,39 +72,59 @@ public class RutaServiceImpl implements RutaService { @Override @Transactional(rollbackFor = BusinessException.class) - public boolean cambiarParadaRuta(Ruta ruta, Parada parada, String descripcionParada) throws Exception { + public Parada validaParada(String descripcionParada, Parada paradaAntiga) throws Exception { - String cve = null; - String descparada = null; - try { - String arraySplit[] = new String[2]; - arraySplit = descripcionParada.split(" - "); - cve = arraySplit[0]; - descparada = arraySplit[1]; - } catch (Exception e) { - throw new BusinessException("editarCatalogoDeRutaController.actionCanbiarParada.businessException"); - } + String cve = extrairCodigoOuLocalidade(descripcionParada, true, false); + String descparada = extrairCodigoOuLocalidade(descripcionParada, false, true); if (cve == null || descparada == null) throw new BusinessException("editarCatalogoDeRutaController.actionCanbiarParada.businessException"); - try { - Parada nuevaParada = null; List paradas = paradaService.buscarCVE(cve); paradas.addAll(paradaService.buscar(descparada)); if (!paradas.isEmpty()) { - nuevaParada = paradas.iterator().next(); + return paradas.iterator().next(); } else { - nuevaParada = crearNuevaParada(parada, cve, descparada); + return null; + } + } catch (Exception e) { + throw e; + } + } + + private String extrairCodigoOuLocalidade(String descripcionParada, boolean isCodigo, boolean isLocalidade) throws Exception { + try { + String arraySplit[] = new String[2]; + arraySplit = descripcionParada.split(" - "); + if (isCodigo) + return arraySplit[0]; + if (isLocalidade) + return arraySplit[1]; + } catch (Exception e) { + throw new BusinessException("editarCatalogoDeRutaController.actionCanbiarParada.businessException"); + } + return null; + } + + @Override + @Transactional(rollbackFor = BusinessException.class) + public boolean cambiarParadaRuta(Ruta ruta, Parada paradaAntiga, Parada nuevaParada, String descripcionParada) throws Exception { + + try { + String cve = extrairCodigoOuLocalidade(descripcionParada, true, false); + String descparada = extrairCodigoOuLocalidade(descripcionParada, false, true); + + if (nuevaParada == null) { + nuevaParada = crearNuevaParada(paradaAntiga, cve, descparada); paradaService.suscribirActualizar(nuevaParada); } - + List tramos = validaTramosRuta(ruta); List cambios = new ArrayList(); for (Tramo tramo : tramos) { - Tramo nTramo = crearNuevoTramo(tramo, parada, nuevaParada); + Tramo nTramo = crearNuevoTramo(tramo, paradaAntiga, nuevaParada); if (nTramo != null) { - cambios.add(new CambioRutaTramo(tramo, nTramo, parada, nuevaParada)); + cambios.add(new CambioRutaTramo(tramo, nTramo, paradaAntiga, nuevaParada)); tramoService.suscribirActualizar(nTramo); } }