From 2c3461b9052eec260627603fabc1148dadf188ac Mon Sep 17 00:00:00 2001 From: edgar Date: Mon, 20 Jun 2016 20:48:37 +0000 Subject: [PATCH] fixes bug #0007460 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@57126 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../BusquedaCorridaController.java | 6 +- .../EditarCatalogoDeRutaController.java | 199 ++++++++++-------- web/WEB-INF/i3-label_es_MX.label | 1 + web/WEB-INF/i3-label_pt_BR.label | 4 + web/gui/esquema_operacional/editarRuta.zul | 96 ++++++--- 5 files changed, 185 insertions(+), 121 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/BusquedaCorridaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/BusquedaCorridaController.java index 029e293a6..4adcaf726 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/BusquedaCorridaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/BusquedaCorridaController.java @@ -204,7 +204,6 @@ public class BusquedaCorridaController extends MyGenericForwardComposer { public void setHora(Timebox hora) { this.hora = hora; } - public void onChange$cmbMarca(InputEvent ev) { @@ -269,9 +268,8 @@ public class BusquedaCorridaController extends MyGenericForwardComposer { } public void refreshLista() { - HibernateSearchObject busquedaCorrita = - new HibernateSearchObject(EsquemaCorrida.class, - pagingEsquemaCorrida.getPageSize()); + HibernateSearchObject busquedaCorrita = new HibernateSearchObject(EsquemaCorrida.class, + pagingEsquemaCorrida.getPageSize()); busquedaCorrita.addFilterEqual("activo", Boolean.TRUE); diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCatalogoDeRutaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCatalogoDeRutaController.java index a93676eb2..c12110636 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCatalogoDeRutaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCatalogoDeRutaController.java @@ -12,6 +12,7 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.Comparator; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -51,7 +52,9 @@ import org.zkoss.zul.ext.Constrainted; import com.rjconsultores.ventaboletos.entidad.CasetaPeaje; import com.rjconsultores.ventaboletos.entidad.ClaseServicio; +import com.rjconsultores.ventaboletos.entidad.Corrida; import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; import com.rjconsultores.ventaboletos.entidad.GrupoRuta; import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; import com.rjconsultores.ventaboletos.entidad.Parada; @@ -66,6 +69,7 @@ import com.rjconsultores.ventaboletos.entidad.TramoServicio; import com.rjconsultores.ventaboletos.entidad.Via; import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.service.ClaseServicioService; +import com.rjconsultores.ventaboletos.service.CorridaService; import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.EsquemaCorridaService; import com.rjconsultores.ventaboletos.service.GrupoRutaService; @@ -103,6 +107,8 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer @Autowired private EsquemaCorridaService esquemaCorridaService; @Autowired + private CorridaService corridaService; + @Autowired private ClaseServicioService claseService; @Autowired private TramoService tramoService; @@ -163,6 +169,7 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer private Intbox txtCantAsientos; private Checkbox chkIndVentaRioCard; private MyTextbox txtNumRioCard; + private Checkbox chkCancelarRuta; public Ruta getRuta() { return ruta; @@ -270,62 +277,59 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer ruta = (Ruta) Executions.getCurrent().getArg().get("ruta"); rutaList = (MyListbox) Executions.getCurrent().getArg().get("rutaList"); - - super.doAfterCompose(comp); // Secuencia rutaSecuenciaList.setItemRenderer(new RenderCatalogoDeRutasSecuencia()); lsRutaSecuencia = new ArrayList(); - - rutaSecuenciaList.addEventListener("onDoubleClick", new EventListener() { - @Override - public void onEvent(Event event) throws Exception { - if(ruta.getRutaId() == null){ - Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.msg.salvarRutaPrimeiro"), - Labels.getLabel("editarCatalogoDeRutaController.window.title"), - Messagebox.OK, Messagebox.EXCLAMATION); - return; - } - ParadaSecuencia psOrigen = (ParadaSecuencia)rutaSecuenciaList.getSelected(); - int indexSelecto = rutaSecuenciaList.getSelectedIndex(); - ParadaSecuencia psDestino = new ParadaSecuencia(); - try{ - psDestino = (ParadaSecuencia)lsParadasSequencia.get(indexSelecto+1); - }catch(IndexOutOfBoundsException e){ - - Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.msg.finRuta"), - Labels.getLabel("editarCatalogoDeRutaController.window.title"), - Messagebox.OK, Messagebox.EXCLAMATION); - return; - } - - if (psOrigen == null) { //lsRutaSecuencia <-- esse objeto ja tem o id da ruta secuencia .... - return; - } - Map args = new HashMap(); - args.put("paradaSecuenciaOrigen", psOrigen); - args.put("paradaSecuenciaDestino", psDestino); - args.put("lsRutaSecuencia", lsRutaSecuencia); - - args.put("lsParadasSequencia", lsParadasSequencia); - args.put("rutaSecuenciaList", rutaSecuenciaList); - args.put("casetasList", getCasetasPeage(psOrigen.getCasetas())); - openWindow("/gui/esquema_operacional/editarSecuencia.zul", Labels.getLabel("editarSecuenciaController.window.title"), args, MODAL); - } - }); + rutaSecuenciaList.addEventListener("onDoubleClick", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + if (ruta.getRutaId() == null) { + Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.msg.salvarRutaPrimeiro"), + Labels.getLabel("editarCatalogoDeRutaController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return; + } + ParadaSecuencia psOrigen = (ParadaSecuencia) rutaSecuenciaList.getSelected(); + int indexSelecto = rutaSecuenciaList.getSelectedIndex(); + ParadaSecuencia psDestino = new ParadaSecuencia(); + try { + psDestino = (ParadaSecuencia) lsParadasSequencia.get(indexSelecto + 1); + } catch (IndexOutOfBoundsException e) { + + Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.msg.finRuta"), + Labels.getLabel("editarCatalogoDeRutaController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return; + } + + if (psOrigen == null) { // lsRutaSecuencia <-- esse objeto ja tem o id da ruta secuencia .... + return; + } + Map args = new HashMap(); + args.put("paradaSecuenciaOrigen", psOrigen); + args.put("paradaSecuenciaDestino", psDestino); + args.put("lsRutaSecuencia", lsRutaSecuencia); + + args.put("lsParadasSequencia", lsParadasSequencia); + args.put("rutaSecuenciaList", rutaSecuenciaList); + args.put("casetasList", getCasetasPeage(psOrigen.getCasetas())); + openWindow("/gui/esquema_operacional/editarSecuencia.zul", Labels.getLabel("editarSecuenciaController.window.title"), args, MODAL); + } + }); + + txtNumRioCard.setDisabled(ruta.getIndVentaRioCard() == null || !ruta.getIndVentaRioCard()); + chkIndVentaRioCard.addEventListener("onClick", new EventListener() { - txtNumRioCard.setDisabled(ruta.getIndVentaRioCard() == null || !ruta.getIndVentaRioCard()); - chkIndVentaRioCard.addEventListener("onClick", new EventListener() { - @Override public void onEvent(Event event) throws Exception { disableEnableNumRioCard(); } }); - // Combinacion rutaCombinacionList.setItemRenderer(this); @@ -378,20 +382,52 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer private List getCasetasPeage(List casetas) { List casetasPeage = new ArrayList(); - - if(casetas == null || casetas.isEmpty()) { + + if (casetas == null || casetas.isEmpty()) { return casetasPeage; } - + for (RutaCaseta rutaCaseta : casetas) { casetasPeage.add(rutaCaseta.getCasetaPeaje()); } - + return casetasPeage; } + public void onCheck$chkCancelarRuta(Event ev) throws Exception { + if (chkCancelarRuta.isChecked() && !existeEsquemaCorridaVigente() && !existeCorridaVenda()) { + ruta.setIsRutaCancelada(true); + } else { + chkCancelarRuta.setChecked(false); + } + } + + private boolean existeCorridaVenda() throws InterruptedException { + Corrida corrida = corridaService.buscaCorrridaFutura(ruta, new Date()); + if (corrida != null) { + Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.msg.corridaGeradaVigente") + + " " + corrida.getId().getCorridaId() + + " " + + Labels.getLabel("editarCatalogoDeRutaController.msg.corridaGeradaVigentePt2") + + " " + corrida.getId().getFeccorrida()); + return true; + } + return false; + } + + private Boolean existeEsquemaCorridaVigente() throws InterruptedException { + EsquemaCorrida esquemaCorrida = esquemaCorridaService.buscaEsquemaPorRuta(ruta); + if (esquemaCorrida != null) { + Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.msg.existeEsquemaCorridaVigente") + + " " + esquemaCorrida.getEsquemacorridaId()); + return true; + } + return false; + + } + protected void disableEnableNumRioCard() { - if(chkIndVentaRioCard.isChecked()) { + if (chkIndVentaRioCard.isChecked()) { txtNumRioCard.setDisabled(false); txtNumRioCard.setConstraint("no empty"); } else { @@ -403,15 +439,14 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer private void paginarCombinacao() { if (ruta.getRutaId() != null) { - HibernateSearchObject claseServicioBusqueda = - new HibernateSearchObject(RutaCombinacion.class, - pagingRutaCombinacion.getPageSize()); + HibernateSearchObject claseServicioBusqueda = new HibernateSearchObject(RutaCombinacion.class, + pagingRutaCombinacion.getPageSize()); claseServicioBusqueda.addFilterEqual("activo", Boolean.TRUE); claseServicioBusqueda.addFilterEqual("ruta", ruta); plwRutaCombinacion.init(claseServicioBusqueda, rutaCombinacionList, pagingRutaCombinacion); - } + } } private void addTramoPardaSecuencia(Parada parada, Via via, Short numsecuencia) { @@ -421,6 +456,7 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer paradaSecuencia.setVia(via); lsParadasSequencia.add(paradaSecuencia); } + private void addTramoPardaSecuencia(Parada parada, Via via, Short numsecuencia, List lCas, String tempo, String km) { ParadaSecuencia paradaSecuencia = new ParadaSecuencia(); paradaSecuencia.setParada(parada); @@ -445,7 +481,7 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer Parada paradaOrigem = tramo.getOrigem(); BigDecimal km = tramo.getKmReal(); - + addTramoPardaSecuencia(paradaOrigem, via, numsecuencia, lcas, getTempo(tramo.getTramoServicioList(), ruta), km != null ? km.toString() : ""); if (i == lsRutaSecuencia.size() - 1) { Parada paradaDestino = tramo.getDestino(); @@ -735,14 +771,14 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer txtPrefixo.getValue(); txtNumRioCard.getValue(); - if(null != txtCantEixos && txtCantEixos.getValue()!= null && txtCantEixos.getValue() == 0){ + if (null != txtCantEixos && txtCantEixos.getValue() != null && txtCantEixos.getValue() == 0) { Messagebox.show( Labels.getLabel("editarCatalogoDeRutaController.lblCantEixosZeroInvalido.value"), Labels.getLabel("editarCatalogoDeRutaController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION); return; } - if(null != txtCantAsientos && txtCantAsientos.getValue() != null && txtCantAsientos.getValue() == 0){ + if (null != txtCantAsientos && txtCantAsientos.getValue() != null && txtCantAsientos.getValue() == 0) { Messagebox.show( Labels.getLabel("editarCatalogoDeRutaController.lblCantAsientosZeroInvalido.value"), Labels.getLabel("editarCatalogoDeRutaController.window.title"), @@ -751,7 +787,7 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer } List lsRuta = rutaService.buscarNumRuta(txtNumRuta.getValue()); - + if (radIda.isChecked()) { ruta.setIndSentidoIda(Boolean.TRUE); } else if (radVolta.isChecked()) { @@ -793,7 +829,7 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer } try { - + if (lsParadasSequencia.size() == 1) { Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.MSG.sequencia"), Labels.getLabel("editarCatalogoDeRutaController.window.title"), @@ -819,7 +855,7 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer Messagebox.show(Labels.getLabel( "editarCatalogoDeRutaController.MSG.suscribirOK").concat(" ID: " - + ruta.getRutaId().toString()), + + ruta.getRutaId().toString()), Labels.getLabel("editarCatalogoDeRutaController.window.title"), Messagebox.OK, Messagebox.INFORMATION); @@ -840,7 +876,7 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer Messagebox.show(Labels.getLabel( "editarCatalogoDeRutaController.MSG.suscribirOK").concat(" ID: " - + ruta.getRutaId().toString()), + + ruta.getRutaId().toString()), Labels.getLabel("editarCatalogoDeRutaController.window.title"), Messagebox.OK, Messagebox.INFORMATION); @@ -901,7 +937,7 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer op.add("Não"); comboVenda.setModel(new ListModelList(op)); comboVenda.setValue(rutaCombinacion.getIndventa() == Boolean.TRUE ? "Sim" : "Não"); - if(rutaCombinacion.getRutacombinacionId() != null){ + if (rutaCombinacion.getRutacombinacionId() != null) { comboVenda.setTooltip(rutaCombinacion.getRutacombinacionId().toString()); } comboVenda.addEventListener("onChange", new EventListener() { @@ -916,11 +952,10 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer lc.appendChild(comboVenda); lc.setParent(lstm); - Tramo tramo = rutaCombinacion.getTramo(); - String descTramoDetalhado = tramo.getOrigem().getDescparada() + "|" +tramo.getDestino().getDescparada(); - - lc = new Listcell(rutaCombinacion.getTramo().getDesctramo() + "("+descTramoDetalhado+")"); + String descTramoDetalhado = tramo.getOrigem().getDescparada() + "|" + tramo.getDestino().getDescparada(); + + lc = new Listcell(rutaCombinacion.getTramo().getDesctramo() + "(" + descTramoDetalhado + ")"); lc.setParent(lstm); lc = new Listcell(); @@ -928,8 +963,8 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer final Combobox comboVia = new Combobox(); comboVia.setMold("rounded"); comboVia.setWidth("90%"); - if(rutaCombinacion.getRutacombinacionId() != null){ - comboVia.setTooltip(rutaCombinacion.getRutacombinacionId().toString()); + if (rutaCombinacion.getRutacombinacionId() != null) { + comboVia.setTooltip(rutaCombinacion.getRutacombinacionId().toString()); } List lsViaCombinacion = tramoService.obtenerViasOrigemDestino( rutaCombinacion.getTramo().getOrigem(), rutaCombinacion.getTramo().getDestino()); @@ -960,7 +995,7 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer } } - + public Intbox getTxtCantEixos() { return txtCantEixos; } @@ -1026,62 +1061,62 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer public void setTxtNumRioCard(MyTextbox txtNumRioCard) { this.txtNumRioCard = txtNumRioCard; - } - + } + private boolean clone = false; public void onClick$btnCopiar(Event ev) throws CloneNotSupportedException, InterruptedException { if (!clone) { - List rutaCombinacionsAntiga = rutaCombinacionService.obtenerPorRuta(ruta); + List rutaCombinacionsAntiga = rutaCombinacionService.obtenerPorRuta(ruta); ruta = Ruta.clone(ruta); ruta.setRutaId(null); - + List rutaCombinacions = new ArrayList(); - - for (RutaCombinacion rc : rutaCombinacionsAntiga){ + + for (RutaCombinacion rc : rutaCombinacionsAntiga) { RutaCombinacion newrc = (RutaCombinacion) rc.clone(); newrc.setRuta(ruta); newrc.setRutacombinacionId(null); rutaCombinacions.add(newrc); - } + } ruta.setRutaCombinacionList(rutaCombinacions); carregarParadaSecuencia(ruta.getRutaSecuenciaList()); - + Constraint constNumRuta = txtNumRuta.getConstraint(); txtNumRuta.setConstraint(""); ruta.setNumRuta(""); txtNumRuta.setValue(""); txtNumRuta.setConstraint(constNumRuta); - - Constraint constPrefixo = txtPrefixo.getConstraint(); + + Constraint constPrefixo = txtPrefixo.getConstraint(); txtPrefixo.setConstraint(""); ruta.setPrefixo(""); txtPrefixo.setValue(""); txtPrefixo.setConstraint(constPrefixo); - + Constraint constPrefixoAuxiliar = txtPrefixoAuxiliar.getConstraint(); txtPrefixoAuxiliar.setConstraint(""); ruta.setPrefixoAuxiliar(""); txtPrefixoAuxiliar.setValue(""); txtPrefixoAuxiliar.setConstraint(constPrefixoAuxiliar); - + Constraint constCantEixos = txtCantEixos.getConstraint(); txtCantEixos.setConstraint(""); ruta.setCantEixos(null); txtCantEixos.setValue(null); txtCantEixos.setConstraint(constCantEixos); - + Constraint constCantAsientos = txtCantAsientos.getConstraint(); txtCantAsientos.setConstraint(""); ruta.setCantAsientos(null); txtCantAsientos.setValue(null); txtCantAsientos.setConstraint(constCantAsientos); - + rutaCombinacionList.setModel(new ListModelList(ruta.getRutaCombinacionList())); lsEmpresa = UsuarioLogado.getUsuarioLogado().getEmpresa(); clone = true; - + Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.MSG.cloneOK"), Labels.getLabel("editarCatalogoDeRutaController.window.title"), Messagebox.OK, Messagebox.INFORMATION); diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 3a259a60f..b17775b79 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -1727,6 +1727,7 @@ busquedaCatalogoDeRutaController.lbClase.value = Clase de servicio busquedaCatalogoDeRutaController.msg.validactionRemocionParada=No es posible quitar la parada "{0}" de la linea pues ya existe(n) servicio(s) que la ocupa. Quite la parada "{0}" de las siguientes corridas : ({1}) para después quitar en la linea # Pantalla Editar linea +editarCatalogoDeRutaController.lbChkCancelarRuta=Cancelar Ruta editarCatalogoDeRutaController.excepcionRecorrido = Excepción de tiempo editarCatalogoDeRutaController.padraoRecorrido = Tiempo estandar editarCatalogoDeRutaController.tempoLocalidade = Tempo Localidade diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index a3e66c772..9f992a2a9 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -1780,9 +1780,13 @@ busquedaCatalogoDeRutaController.lbClase.value = Tipo de Classe 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. # Pantalla Editar Linha +editarCatalogoDeRutaController.lbChkCancelarRuta=Cancelar Linha editarCatalogoDeRutaController.excepcionRecorrido = Exceção de tempo editarCatalogoDeRutaController.padraoRecorrido = Tempo Padrão editarCatalogoDeRutaController.tempoLocalidade = Tempo Localidade +editarCatalogoDeRutaController.msg.existeEsquemaCorridaVigente=Existe um serviço vigente para esta linha com id +editarCatalogoDeRutaController.msg.corridaGeradaVigente=Existem serviços disponíveis nessa linha com id +editarCatalogoDeRutaController.msg.corridaGeradaVigentePt2= e data marcada para o dia editarCatalogoDeRutaController.msg.validacionCambionEnCombinaciones = Ao incluir ou remover uma localidade as combinações serão refeitas. É necessário revisar as combinações em caso de que exista alguna configuração específica para uma(s) de dela(s). Confirmar alteração? editarCatalogoDeRutaController.msg.cambioSecuencia = Não é possível alterar a origem Inicial ou destino Final para uma linha já existente editarCatalogoDeRutaController.msg.validacion.paradas = Deve informar as secuencias da linha diff --git a/web/gui/esquema_operacional/editarRuta.zul b/web/gui/esquema_operacional/editarRuta.zul index 7cee03a48..c2bf6b8ca 100644 --- a/web/gui/esquema_operacional/editarRuta.zul +++ b/web/gui/esquema_operacional/editarRuta.zul @@ -20,9 +20,9 @@