diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaAsientoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaAsientoController.java index 6b27c8a96..4d10abe58 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaAsientoController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaAsientoController.java @@ -19,7 +19,10 @@ import com.rjconsultores.ventaboletos.service.ParadaService; import com.rjconsultores.ventaboletos.service.RutaSecuenciaService; import com.rjconsultores.ventaboletos.service.RutaService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyTextbox; + import java.util.ArrayList; import java.util.Calendar; import java.util.List; @@ -37,6 +40,7 @@ import org.zkoss.zkplus.databind.BindingListModel; import org.zkoss.zkplus.databind.BindingListModelList; import org.zkoss.zul.Button; import org.zkoss.zul.Combobox; +import org.zkoss.zul.Radio; import org.zkoss.zul.Textbox; /** @@ -61,6 +65,7 @@ public class EditarCorridaAsientoController extends MyGenericForwardComposer { private RutaSecuenciaService rutaSecuenciaService; private EsquemaCorrida esquemaCorrida; private List lsOrigen; + private List lsDestino; private List lsAsientos; private DiagramaAutobus diagramaAutobus; private Textbox txtAsiento; @@ -119,16 +124,22 @@ public class EditarCorridaAsientoController extends MyGenericForwardComposer { private Button btn_7_11; private Button btn_7_12; private Button btn_7_13; + private Radio poltronaExclusiva; + private Radio poltronaOcupada; + private MyComboboxEstandar cmbDestino; + private Textbox txtMotivo; private static Logger log = Logger.getLogger(EditarCorridaAsientoController.class); @Override public void doAfterCompose(Component comp) throws Exception { esquemaCorrida = (EsquemaCorrida) Executions.getCurrent().getArg().get("esquemaCorrida"); - + lsOrigen = new ArrayList(); + lsDestino = new ArrayList(); Ruta ruta = esquemaCorrida.getRuta(); //ruta = rutaService.obtenerID(ruta.getRutaId()); if (ruta != null) { + List lsRutaSecuencia = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta); for (RutaSecuencia rc : lsRutaSecuencia) { Tramo tramo = rc.getTramo(); @@ -139,14 +150,19 @@ public class EditarCorridaAsientoController extends MyGenericForwardComposer { } Parada destino = tramo.getDestino(); - if (!lsOrigen.contains(destino)) { - lsOrigen.add(destino); + if (!lsDestino.contains(destino)) { + lsDestino.add(destino); } } } - if (lsOrigen.size() > 1) { - lsOrigen.remove(lsOrigen.size() - 1);//O destino final de uma ruta não pode ter asento cedido + + if (!lsRutaSecuencia.isEmpty()) { + lsOrigen.add(lsRutaSecuencia.get(lsRutaSecuencia.size() - 1).getTramo().getDestino()); } + +// if (lsOrigen.size() > 1) { +// lsOrigen.remove(lsOrigen.size() - 1);//O destino final de uma ruta não pode ter asento cedido +// } } super.doAfterCompose(comp); @@ -170,6 +186,11 @@ public class EditarCorridaAsientoController extends MyGenericForwardComposer { } } } + + if(poltronaExclusiva.isChecked()){ + cmbDestino.setDisabled(true); + txtMotivo.setDisabled(true); + } } public void colorirAsientos(Event ev) throws InterruptedException { @@ -189,19 +210,41 @@ public class EditarCorridaAsientoController extends MyGenericForwardComposer { for (EsquemaAsiento as : lsAsientos) { if (as.getNumasiento().equals(dd.getAsiento())) { - button.setSclass("myBlue"); - button.setLabel(as.getParada().getCveparada()); - break; + if(as.getIndvendible()){ + button.setSclass("myBlue"); + button.setLabel(as.getParada().getCveparada()); + break; + }else{ + button.setSclass("myGray"); + button.setLabel(as.getParada().getCveparada()); + break; + } } + + } } } } - - public void onClick$btnCeder(Event ev) throws InterruptedException { - try { + + public void onClick$poltronaExclusiva(){ + cmbDestino.setDisabled(true); + txtMotivo.setDisabled(true); + } + + public void onClick$poltronaOcupada(){ + cmbDestino.setConstraint("no empty"); + cmbDestino.setDisabled(false); + txtMotivo.setDisabled(false); + } + + + + public void enviarPeticionAsientos(String tipoPeticion) throws InterruptedException{ + try { + cmbOrigen.getValue(); - + cmbDestino.getValue(); boolean salvo = true; txtAsiento.setText((txtAsiento.getValue().endsWith(",")) ? txtAsiento.getValue() : txtAsiento.getValue().concat(",")); @@ -255,17 +298,44 @@ public class EditarCorridaAsientoController extends MyGenericForwardComposer { es.setFecmodif(Calendar.getInstance().getTime()); es.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); es.setNumasiento(asiento); - es.setIndvendible(Boolean.TRUE); + if(tipoPeticion.equals("ceder")){ + es.setIndvendible(Boolean.TRUE); + es.setParada((Parada) cmbOrigen.getSelectedItem().getValue()); + }else if (tipoPeticion.equals("bloqueo")){ + if(txtMotivo.getText().trim().equals("")){ + Messagebox.show(Labels.getLabel("editarConfiguracionCorridaAsientoController.MSG.motivo"), + Labels.getLabel("editarConfiguracionCorridaAsientoController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + txtMotivo.setFocus(true); + return; + } + if(cmbOrigen.getSelectedIndex()>=cmbDestino.getSelectedIndex()){ + Messagebox.show(Labels.getLabel("editarConfiguracionCorridaAsientoController.MSG.tramo"), + Labels.getLabel("editarConfiguracionCorridaAsientoController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + + cmbOrigen.setFocus(true); + return; + } + + es.setIndvendible(Boolean.FALSE); + es.setParada((Parada) cmbOrigen.getSelectedItem().getValue()); + es.setDestinoId((Parada)cmbDestino.getSelectedItem().getValue()); + es.setMotivobloqueo(txtMotivo.getText()); + } + es.setEsquemaCorrida(esquemaCorrida); - es.setParada((Parada) cmbOrigen.getSelectedItem().getValue()); + EsquemaAsiento esquemaAsientoBusqueda = esquemaAsientoService.obtenerPorCorridaeAsiento(esquemaCorrida, asiento); if (esquemaAsientoBusqueda.getEsquemaasientoId() == null) { esquemaAsientoService.suscribir(es); lsAsientos.add(es); } else { + salvo = false; Messagebox.show("Asiento " + asiento + " existe en el Registro.", Labels.getLabel("editarConfiguracionCorridaAsientoController.window.title"), Messagebox.OK, Messagebox.INFORMATION); + } } else { @@ -285,7 +355,10 @@ public class EditarCorridaAsientoController extends MyGenericForwardComposer { } colorirAsientos(null); txtAsiento.setValue(""); + txtMotivo.setText(""); + //closeWindow(); + } catch (Exception ex) { log.error("Erro asiento:" + ex); txtAsiento.setValue(""); @@ -294,6 +367,20 @@ public class EditarCorridaAsientoController extends MyGenericForwardComposer { Messagebox.OK, Messagebox.ERROR); } + + } + + + public void onClick$btnCeder(Event ev) throws InterruptedException { + + if(poltronaOcupada.isSelected()){ + + enviarPeticionAsientos("bloqueo"); + + } + if(poltronaExclusiva.isSelected()){ + enviarPeticionAsientos("ceder"); + } } public void onClick$btnLiberar(Event ev) throws InterruptedException { @@ -339,6 +426,8 @@ public class EditarCorridaAsientoController extends MyGenericForwardComposer { txtAsiento.setValue(""); + txtMotivo.setText(""); + colorirAsientos(null); //closeWindow(); } catch (Exception ex) { @@ -1439,6 +1528,16 @@ public class EditarCorridaAsientoController extends MyGenericForwardComposer { public void setLsOrigen(List lsOrigen) { this.lsOrigen = lsOrigen; } + + public List getLsDestino() { + return lsDestino; + } + + public void setLsDestino(List lsDestino) { + this.lsDestino = lsDestino; + } + + public ParadaService getParadaService() { return paradaService; @@ -1911,4 +2010,23 @@ public class EditarCorridaAsientoController extends MyGenericForwardComposer { public void setCmbOrigen(Combobox cmbOrigen) { this.cmbOrigen = cmbOrigen; } + + public Textbox getTxtMotivo() { + return txtMotivo; + } + + public void setTxtMotivo(Textbox txtMotivo) { + this.txtMotivo = txtMotivo; + } + + public MyComboboxEstandar getCmbDestino() { + return cmbDestino; + } + + public void setCmbDestino(MyComboboxEstandar cmbDestino) { + this.cmbDestino = cmbDestino; + } + + + } diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 50581dce0..f8f0bd322 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -1280,12 +1280,19 @@ editarConfiguracionCorridaAsientoController.btnCeder.value = Asignar editarConfiguracionCorridaController.lbAsiento.value = Poltrona: editarConfiguracionCorridaController.lbOrigem.value = Origem: editarConfiguracionCorridaAsientoController.lbAsiento.value = Poltrona: -editarConfiguracionCorridaAsientoController.lbOrigem.value = Localidade: +editarConfiguracionCorridaAsientoController.lbOrigem.value = Origem: +editarConfiguracionCorridaAsientoController.lbDestino.value = Destino: +editarConfiguracionCorridaAsientoController.lbMotivo.value = Motivo da Ocupação: +editarConfiguracionCorridaAsientoController.lbMotivoOcupacao.value = Tipo de Ocupação: +editarConfiguracionCorridaAsientoController.rdPoltronaExclusiva.value = Poltronas Exclusivas +editarConfiguracionCorridaAsientoController.rdPoltronaOcupada.value = Poltronas Ocupadas editarConfiguracionCorridaAsientoController.MSG.salvo = Planejamento de poltronas Registrado com Sucesso. editarConfiguracionCorridaAsientoController.MSG.existe = Já existe um registro com estes dados. editarConfiguracionCorridaAsientoController.MSG.liberar = Poltrona(s) liberada(s). editarConfiguracionCorridaAsientoController.MSG.help = (Ej: 1,2,3,4 o 1-4) editarConfiguracionCorridaAsientoController.MSG.invalido = Poltrona inválida +editarConfiguracionCorridaAsientoController.MSG.motivo = Necessário informar o motivo +editarConfiguracionCorridaAsientoController.MSG.tramo = Não é permitido bloqueo neste trecho # Buesqueda de Tarifas Mínimas busquedaTarifasMinimasController.window.title = Tarifas Mínimas diff --git a/web/gui/esquema_operacional/editarCorridaAsiento.zul b/web/gui/esquema_operacional/editarCorridaAsiento.zul index 4c4a4659f..a5ebc3df5 100644 --- a/web/gui/esquema_operacional/editarCorridaAsiento.zul +++ b/web/gui/esquema_operacional/editarCorridaAsiento.zul @@ -8,7 +8,7 @@ @@ -25,6 +25,12 @@ #color: white; #font-size:8px; } + + .myGray .z-button-cm { + background-image : url(${c:encodeURL('/gui/img/grey.png')}); + #color: white; + #font-size:8px; + } .btndiv .z-button-cm { background : no-repeat 0 0 ; } @@ -193,7 +199,28 @@ + + + + + + -