From 3ced466a365ee7bc2a0b1ccede52c6e6d95a66cc Mon Sep 17 00:00:00 2001 From: wilian Date: Fri, 13 May 2016 12:32:11 +0000 Subject: [PATCH] fixes bug #7466 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@55942 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../EditarConvenioController.java | 113 +++++++++++++++++- web/WEB-INF/i3-label_es_MX.label | 2 + web/WEB-INF/i3-label_pt_BR.label | 2 + 3 files changed, 116 insertions(+), 1 deletion(-) diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/EditarConvenioController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/EditarConvenioController.java index f589c87bc..c0137c045 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/EditarConvenioController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/EditarConvenioController.java @@ -44,6 +44,8 @@ import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.entidad.RutaEmpresa; +import com.rjconsultores.ventaboletos.entidad.RutaSecuencia; import com.rjconsultores.ventaboletos.entidad.Usuario; import com.rjconsultores.ventaboletos.service.ConvenioDetService; import com.rjconsultores.ventaboletos.service.ConvenioService; @@ -528,6 +530,10 @@ public class EditarConvenioController extends MyGenericForwardComposer { } else if (!isDescontoNaoNormalValido(Boolean.TRUE)) { return; } + + if(!validarCampos()) { + return; + } convenio.setActivo(true); convenio.setFecmodif(Calendar.getInstance().getTime()); @@ -595,7 +601,112 @@ public class EditarConvenioController extends MyGenericForwardComposer { } } - private Integer getTipoDesconto() { + private boolean validarCampos() throws InterruptedException { + if(!verificarTrechosPertenceLinhas()) { + Messagebox.show( + Labels.getLabel("editarConvenioController.MSG.erro.trechosPertenceLinhas"), + Labels.getLabel("editarConvenioController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return false; + } + + if(!verificarLinhasPertenceEmpresas()) { + Messagebox.show( + Labels.getLabel("editarConvenioController.MSG.erro.linhasPertenceEmpresa"), + Labels.getLabel("editarConvenioController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return false; + } + return true; + } + + private boolean verificarTrechosPertenceLinhas() { + if(convenio.getConvenioTramoList() == null || convenio.getConvenioTramoList().isEmpty() || + convenio.getConvenioRutaList() == null || convenio.getConvenioRutaList().isEmpty()) { + return true; + } + + for (ConvenioTramo convenioTramo: convenio.getConvenioTramoList()) { + boolean origemEncontrado = false; + boolean destinoEncontrado = false; + + Parada origem = convenioTramo.getParadaOrigem(); + Parada destino = convenioTramo.getParadaDestino(); + + if(origem.getParadaId() == -1 && destino.getParadaId() == -1) { + continue; + } + + verificandoRutaTrecho: + for (ConvenioRuta convenioRuta: convenio.getConvenioRutaList()) { + Ruta ruta = rutaService.obtenerID(convenioRuta.getRuta().getRutaId()); + + if(ruta.getRutaId() == -1) { + origemEncontrado = true; + destinoEncontrado = true; + continue; + } + + for (RutaSecuencia rutaSecuencia: ruta.getRutaSecuenciaList()) { + Parada origemRuta = rutaSecuencia.getTramo().getOrigem(); + Parada destinoRuta = rutaSecuencia.getTramo().getDestino(); + + if(origem.getParadaId() == -1 || origem.equals(origemRuta)) { + origemEncontrado = true; + } + + if(destino.getParadaId() == -1 || destino.equals(destinoRuta)) { + destinoEncontrado = true; + } + + if(origemEncontrado && destinoEncontrado) { + break verificandoRutaTrecho; + } + } + } + + if(!(origemEncontrado && destinoEncontrado)) { + return origemEncontrado && destinoEncontrado; + } + } + + return true; + } + + private boolean verificarLinhasPertenceEmpresas() { + if(convenio.getConvenioEmpresaList() == null || convenio.getConvenioEmpresaList().isEmpty() || + convenio.getConvenioRutaList() == null || convenio.getConvenioRutaList().isEmpty()) { + return true; + } + + boolean conteem = false; + for (ConvenioEmpresa convenioEmpresa : convenio.getConvenioEmpresaList()) { + + Empresa empresa = convenioEmpresa.getEmpresa(); + + verificandoRutaEmpresa: + for (ConvenioRuta convenioRuta: convenio.getConvenioRutaList()) { + Ruta ruta = rutaService.obtenerID(convenioRuta.getRuta().getRutaId()); + + if(ruta.getRutaId() == -1) { + conteem = true; + break verificandoRutaEmpresa; + } + + for (RutaEmpresa rutaEmpresa: ruta.getLsRutaEmpresa()) { + + if(empresa.getEmpresaId() == -1 || empresa.equals(rutaEmpresa.getEmpresa())) { + conteem = true; + break verificandoRutaEmpresa; + } + } + } + + } + return conteem; + } + + private Integer getTipoDesconto() { if(rdNaoInformar.isChecked()) { return ConstantesTipoDesconto.TIPO_DESCONTO_NAO_INFORMADO; diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 54773e463..6220ab6c9 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -3791,6 +3791,8 @@ editarConvenioController.tabPuntoVenta.puntoVenta.descricao.value = Descripción editarConvenioController.lbTipoDesconto.value = Tipo de Descuento editarConvenioController.MSG.erroDescontoNaoNormal = Descuento no normal puede contener solamente un descuento en el listado editarConvenioController.MSG.infoQuantidade = Informe la cantidad +editarConvenioController.MSG.erro.trechosPertenceLinhas = Trechos informados não pertence as linhas +editarConvenioController.MSG.erro.linhasPertenceEmpresa = Linhas informadas não pertence as empresas editarConvenioController.PorNumDocumento.value = Poner numero de descuento editarConvenioController.PorQuantidade.value = Por Cantidad diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 3a18dcdf3..e58f8da2a 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -3855,6 +3855,8 @@ editarConvenioController.tabPuntoVenta.puntoVenta.descricao.value = Descrição editarConvenioController.lbTipoDesconto.value = Tipo de Desconto editarConvenioController.MSG.erroDescontoNaoNormal = Desconto não normal pode conter apenas um documento na lista editarConvenioController.MSG.infoQuantidade = Informe a Quantidade +editarConvenioController.MSG.erro.trechosPertenceLinhas = Trechos informados não pertence as linhas +editarConvenioController.MSG.erro.linhasPertenceEmpresa = Linhas informadas não pertence as empresas editarConvenioController.PorNumDocumento.value = Por Número do Documento editarConvenioController.PorQuantidade.value = Por Quantidade