diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java index 0ebec0678..7d985d881 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java @@ -179,7 +179,7 @@ public class EditarCorridaController extends MyGenericForwardComposer { private Checkbox vie; private Checkbox sab; private Checkbox dom; - + @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); @@ -260,9 +260,9 @@ public class EditarCorridaController extends MyGenericForwardComposer { // Llena los valores de los combos llenarRutasPorClase(); - llenarMarcaPorClaseServicio(); - - esquemaTramoList.setItemRenderer(new RenderConfiguracionCorridaTramo()); + llenarMarcaPorClaseServicio(); + + esquemaTramoList.setItemRenderer(new RenderConfiguracionCorridaTramo(esquemaCorrida.getHorasalida())); esquemaTramoList.addEventListener("onDoubleClick", new EventListener() { @Override @@ -534,6 +534,7 @@ public class EditarCorridaController extends MyGenericForwardComposer { esquemaCorrida.setInfoCorrida(txtInfoCorrida.getValue()); esquemaCorrida.setIndCorridaExtra(chkCorridaExtra.isChecked()); + esquemaCorrida.setNumCorrida(txtNumCorrida.getValue()); esquemaCorrida.setActivo(Boolean.TRUE); esquemaCorrida.setFecmodif(Calendar.getInstance().getTime()); @@ -744,6 +745,7 @@ public class EditarCorridaController extends MyGenericForwardComposer { public void onClick$btnApagar(Event ev) { try { + int resp = Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.borrarPergunta"), Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); @@ -753,9 +755,7 @@ public class EditarCorridaController extends MyGenericForwardComposer { Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.borrarOK"), Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.OK, Messagebox.INFORMATION); - esquemaCorridaList.removeItem(esquemaCorrida); - closeWindow(); } } catch (Exception ex) { @@ -888,7 +888,7 @@ public class EditarCorridaController extends MyGenericForwardComposer { openWindow("/gui/esquema_operacional/tiempoEstanciaTramo.zul", Labels.getLabel("editarCatalogoDeRutaController.lhTiempoEstancia"), args, MODAL); - } + } public void onChange$cmbRuta(Event ev) { selecionarRuta(); @@ -915,7 +915,6 @@ public class EditarCorridaController extends MyGenericForwardComposer { lsParadaEsquema.remove(paradaEsquema); log.debug("Esquema Tramo Removida: " + lsParadaEsquema.get(i).getNumsecuencia() + " - " + lsParadaEsquema.get(i).getParada().getCveparada()); - esquemaTramoList.setData(lsParadaEsquema); podeExcluir = true; @@ -1127,11 +1126,29 @@ public class EditarCorridaController extends MyGenericForwardComposer { if (esquemaCorrida.getClaseServicio() == null) { return; } - lsMarca = marcaClaseServicioService.buscar(esquemaCorrida.getClaseServicio()); + lsMarca = marcaClaseServicioService.buscarPorEmpresasPermitidas(esquemaCorrida.getClaseServicio(), UsuarioLogado.getUsuarioLogado()); BindingListModelList l = new BindingListModelList(lsMarca, true); cmbMarca.setModel(l); } + public void onChange$cmbMarca(InputEvent ev){ + + if (ev.isChangingBySelectBack()) { + return; + } + llenarRutasPorClaseMarca(); + } + + public void llenarRutasPorClaseMarca(){ + if (esquemaCorrida.getClaseServicio() == null + || esquemaCorrida.getMarca() == null) { + return; + } + lsRuta = rutaService.buscarPorClaseServicioEmpresa(esquemaCorrida.getClaseServicio(), esquemaCorrida.getMarca().getEmpresa()); + BindingListModelList l = new BindingListModelList(lsRuta, true); + cmbRuta.setModel(l); + } + public void onClick$porBloq(Event ev) { horasalida.setVisible(false); horasalidaLabel.setVisible(false); @@ -1638,4 +1655,11 @@ public class EditarCorridaController extends MyGenericForwardComposer { Labels.getLabel("busquedaConfiguracionCorridaController.window.title"), argss, MODAL); } + + public void onChange$horasalida(Event e){ + ((RenderConfiguracionCorridaTramo)esquemaTramoList.getItemRenderer()).alterarDataPartida(horasalida.getValue()); + esquemaCorrida.setEsquemaTramoList(lsEsquemaTramo); + carregarParadaSecuencia(lsEsquemaTramo); + selecionarRutaSequenciaForaEsqCorrida(); + } } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/TiempoEstanciaEsquemaTramoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/TiempoEstanciaEsquemaTramoController.java index c4015ac8e..b7bb192b7 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/TiempoEstanciaEsquemaTramoController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/TiempoEstanciaEsquemaTramoController.java @@ -165,9 +165,13 @@ public class TiempoEstanciaEsquemaTramoController extends MyGenericForwardCompos esquemaTramo.setPlataforma(plataforma); paradaEsquema.setPlataforma(plataforma); } - + esquemaTramoList.updateItem(paradaEsquema); + for(Object o : esquemaTramoList.getData()){ + esquemaTramoList.updateItem(o); + } + closeWindow(); } } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfiguracionCorrida.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfiguracionCorrida.java index 082a14ca8..7564cff86 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfiguracionCorrida.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfiguracionCorrida.java @@ -5,7 +5,10 @@ package com.rjconsultores.ventaboletos.web.utilerias.render; import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; + import java.text.SimpleDateFormat; + +import org.zkoss.util.resource.Labels; import org.zkoss.zul.Listcell; import org.zkoss.zul.Listitem; import org.zkoss.zul.ListitemRenderer; @@ -43,7 +46,13 @@ public class RenderConfiguracionCorrida implements ListitemRenderer { // Ruta lc = new Listcell(corrida.getRuta().getDescruta() == null ? "-" : corrida.getRuta().getDescruta()); lc.setParent(lstm); - + + lc = new Listcell(corrida.getRuta().getNumRuta() == null ? "-" : corrida.getRuta().getNumRuta()); + lc.setParent(lstm); + + lc = new Listcell(corrida.getRuta().getIndSentidoIda() == true ? Labels.getLabel("editarCatalogoDeRutaController.radIda.value") : Labels.getLabel("editarCatalogoDeRutaController.radVolta.value")); + lc.setParent(lstm); + // Marca lc = new Listcell(corrida.getMarca().getDescmarca() == null ? "-" : corrida.getMarca().getDescmarca()); lc.setParent(lstm); diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfiguracionCorridaTramo.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfiguracionCorridaTramo.java index 46c160c14..ded1271e7 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfiguracionCorridaTramo.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfiguracionCorridaTramo.java @@ -6,9 +6,12 @@ package com.rjconsultores.ventaboletos.web.utilerias.render; import com.rjconsultores.ventaboletos.entidad.ParadaEsquema; import com.rjconsultores.ventaboletos.utilerias.DateUtil; + import java.util.Calendar; import java.util.Date; +import java.util.List; +import org.zkoss.zul.Listbox; import org.zkoss.zul.Listcell; import org.zkoss.zul.Listitem; import org.zkoss.zul.ListitemRenderer; @@ -18,13 +21,35 @@ import org.zkoss.zul.ListitemRenderer; * @author Rafius */ public class RenderConfiguracionCorridaTramo implements ListitemRenderer { - + private Date dataHorInicioSistema = DateUtil.getFecInicio().getTime(); + + private long minutosPartida = 0l; + private int horaPartida = 0; + + public RenderConfiguracionCorridaTramo(){ + super(); + } + + public RenderConfiguracionCorridaTramo(Date tempoPartida){ + alterarDataPartida(tempoPartida); + } + + public void alterarDataPartida(Date tempoPartida) { + if (tempoPartida != null) { + Calendar c = Calendar.getInstance(); + c.setTime(tempoPartida); + + horaPartida = c.get(Calendar.HOUR_OF_DAY); + minutosPartida = c.get(Calendar.MINUTE); + } + } public void render(Listitem lstm, Object o) throws Exception { ParadaEsquema pe = (ParadaEsquema) o; Listcell lc = new Listcell(pe.getNumsecuencia().toString()); + lc.setParent(lstm); lc = new Listcell(pe.getParada().getDescparada()); @@ -58,8 +83,55 @@ public class RenderConfiguracionCorridaTramo implements ListitemRenderer { String sMinutos = String.valueOf(minutos); lc = new Listcell(horas + ":" + ((sMinutos.length() < 2) ? "0" + sMinutos : sMinutos)); } - lc.setParent(lstm); + lc.setParent(lstm); + + List itens = ((Listbox)lstm.getParent()).getItems(); + Long tempoLocalidade = 0l; + + if (pe.getNumsecuencia() != 1) { + for (Listitem item : itens) { + ParadaEsquema parada = (ParadaEsquema) item.getAttributes().get("data"); + if (parada == null) { + break; + } + if (parada != null + && (parada.getNumsecuencia().intValue() < pe.getNumsecuencia().intValue())) { + Long tempoPadrao = 0l; + Long tempoParada = 0l; + + if (parada.getExcepcionRecorrido() != null) { + tempoPadrao = getMinutos(parada.getExcepcionRecorrido()); + } else { + if (parada.getPadraoRecorrido() != null) { + tempoPadrao = getMinutos(parada.getPadraoRecorrido()); + } + } + if (parada.getTiempoEstancia() != null) { + tempoParada = getMinutos(parada.getTiempoEstancia()); + } + tempoLocalidade += (tempoPadrao + tempoParada); + } + } + } + int horasLocalidade = (tempoLocalidade.intValue() / 60) + horaPartida; + long minutosLocalidade = (tempoLocalidade % 60) + minutosPartida; + + while(minutosLocalidade >= 60){ + horasLocalidade +=1; + minutosLocalidade -= 60; + } + while(horasLocalidade >= 24){ + horasLocalidade -= 24; + } + if(horasLocalidade == 0 && minutosLocalidade == 0l){ + lc = new Listcell(""); + }else{ + String sMinutos = String.valueOf(minutosLocalidade); + lc = new Listcell(horasLocalidade + ":" + ((sMinutos.length() < 2) ? "0" + sMinutos : sMinutos)); + } + lc.setParent(lstm); + if (pe.getExcepcionRecorrido() == null) { lc = new Listcell(""); } else if (DateUtil.compareDate(pe.getExcepcionRecorrido(), dataHorInicioSistema) == 0) { @@ -81,4 +153,10 @@ public class RenderConfiguracionCorridaTramo implements ListitemRenderer { lstm.setAttribute("data", pe); } + + private Long getMinutos(Date data){ + Calendar c = Calendar.getInstance(); + c.setTime(data); + return DateUtil.getElapsedMinutos(DateUtil.getFecInicio().getTime(), c.getTime()); + } } diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 533605bb8..11e4c4ec6 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -1615,6 +1615,7 @@ busquedaCatalogoDeRutaController.msg.validactionRemocionParada=No es posible qui # Pantalla Editar linea editarCatalogoDeRutaController.excepcionRecorrido = Excepción de tiempo editarCatalogoDeRutaController.padraoRecorrido = Tiempo estandar +editarCatalogoDeRutaController.tempoLocalidade = Tempo Localidade editarCatalogoDeRutaController.msg.validacionCambionEnCombinaciones = Al incluir o eliminar una parada las combinaciones serán rehechas. Es necesário revisar las combinaciones en el caso de que haya alguna configuración específica para una(s) de elas(s). Confirmar cambio? editarCatalogoDeRutaController.msg.cambioSecuencia = No es posible cambiar la origen inicial o destino final para una linea ya existente editarCatalogoDeRutaController.msg.validacion.paradas = Debe de informar las secuencias de la linea @@ -1839,6 +1840,8 @@ busquedaConfiguracionCorridaController.lbNumCorrida.label = Número de servicio busquedaConfiguracionCorridaController.lhDesc.label = Servicio busquedaConfiguracionCorridaController.lhHora.label = Horário busquedaConfiguracionCorridaController.lhRuta.label = Linea +busquedaConfiguracionCorridaController.numRuta.label = Número da Linha +busquedaConfiguracionCorridaController.sentidoRuta.label = Sentido da Linha busquedaConfiguracionCorridaController.lhMarca.label = Marca busquedaConfiguracionCorridaController.lhDe.label = Desde busquedaConfiguracionCorridaController.lhHasta.label = Hasta diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index a280dc2f4..ee9f1e0c3 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -1662,6 +1662,7 @@ busquedaCatalogoDeRutaController.msg.validactionRemocionParada=Não é possível # Pantalla Editar Linha editarCatalogoDeRutaController.excepcionRecorrido = Exceção de tempo editarCatalogoDeRutaController.padraoRecorrido = Tempo Padrão +editarCatalogoDeRutaController.tempoLocalidade = Tempo Localidade 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 @@ -1886,6 +1887,8 @@ busquedaConfiguracionCorridaController.lbNumCorrida.label = Número de Serviço busquedaConfiguracionCorridaController.lhDesc.label = Serviço busquedaConfiguracionCorridaController.lhHora.label = Horário busquedaConfiguracionCorridaController.lhRuta.label = Linha +busquedaConfiguracionCorridaController.numRuta.label = Número da Linha +busquedaConfiguracionCorridaController.sentidoRuta.label = Sentido da Linha busquedaConfiguracionCorridaController.lhMarca.label = Marca busquedaConfiguracionCorridaController.lhDe.label = De busquedaConfiguracionCorridaController.lhHasta.label = Até diff --git a/web/gui/esquema_operacional/busquedaCorrida.zul b/web/gui/esquema_operacional/busquedaCorrida.zul index 1f7c26bf8..42f794f35 100644 --- a/web/gui/esquema_operacional/busquedaCorrida.zul +++ b/web/gui/esquema_operacional/busquedaCorrida.zul @@ -132,6 +132,12 @@ + + diff --git a/web/gui/esquema_operacional/editarCorrida.zul b/web/gui/esquema_operacional/editarCorrida.zul index e96fba73b..04abd9f00 100644 --- a/web/gui/esquema_operacional/editarCorrida.zul +++ b/web/gui/esquema_operacional/editarCorrida.zul @@ -402,24 +402,20 @@ + label="${c:l('editarCatalogoDeRutaController.lbSecuencia.value')}"/> + label="${c:l('editarCatalogoDeRutaController.lbTramo.value')}"/> + label="${c:l('editarCatalogoDeRutaController.lhTiempoEstancia')}"/> + label="${c:l('editarCatalogoDeRutaController.padraoRecorrido')}"/> + + label="${c:l('editarCatalogoDeRutaController.excepcionRecorrido')}"/> + label="${c:l('editarCatalogoDeRutaController.lhPlataforma')}"/>