From b14396082af35171fa2102336d6709e1426fec3f Mon Sep 17 00:00:00 2001 From: valdevir Date: Thu, 21 Oct 2021 18:27:32 +0000 Subject: [PATCH] fixes bug#23106 qua: dev:Valdir git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@109257 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../BusquedaEsquemaAgrupacionController.java | 15 +- .../EditarCorridaAsientoController.java | 3 - .../sendaAmigo/EditarClienteController.java | 235 +++++++++++++++++- .../render/RenderReservaEspecialCliente.java | 116 +++++++++ 4 files changed, 350 insertions(+), 19 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderReservaEspecialCliente.java diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/BusquedaEsquemaAgrupacionController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/BusquedaEsquemaAgrupacionController.java index 835541204..a764d2f7d 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/BusquedaEsquemaAgrupacionController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/BusquedaEsquemaAgrupacionController.java @@ -4,11 +4,9 @@ */ package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional; -import java.util.ArrayList; import java.util.HashMap; import java.util.Map; -import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; @@ -23,11 +21,6 @@ import org.zkoss.zul.Paging; import org.zkoss.zul.api.Textbox; import com.rjconsultores.ventaboletos.entidad.EsquemaAgrupacion; -import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento; -import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; -import com.rjconsultores.ventaboletos.entidad.EsquemaTramo; -import com.rjconsultores.ventaboletos.service.EsquemaAgrupacionService; -import com.rjconsultores.ventaboletos.service.EsquemaCorridaService; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject; @@ -42,17 +35,10 @@ import com.rjconsultores.ventaboletos.web.utilerias.render.RenderEsquemaAgrupaci @Scope("prototype") public class BusquedaEsquemaAgrupacionController extends MyGenericForwardComposer { - private static Logger log = Logger.getLogger(BusquedaEsquemaAgrupacionController.class); - private static final long serialVersionUID = 1L; @Autowired private transient PagedListWrapper plwEsquemaAgrupacion; - @Autowired - private EsquemaAgrupacionService esquemaAgrupacionService; - - @Autowired - private EsquemaCorridaService esquemaCorridaService; private MyListbox esquemaAgrupacionList; private Paging pagingEsquemaAgrupacion; @@ -79,6 +65,7 @@ public class BusquedaEsquemaAgrupacionController extends MyGenericForwardCompose refreshLista(); } + @SuppressWarnings({ "unchecked", "rawtypes" }) private void verPeriodo(EsquemaAgrupacion ea) { if (ea == null) { return; 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 f5da2b415..9aa981b1a 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 @@ -285,7 +285,6 @@ public class EditarCorridaAsientoController extends MyGenericForwardComposer { } if (poltronaExclusiva.isChecked()) { -// cmbDestino.setDisabled(true); txtMotivo.setDisabled(true); } @@ -350,12 +349,10 @@ public class EditarCorridaAsientoController extends MyGenericForwardComposer { } public void onClick$poltronaExclusiva() { -// cmbDestino.setDisabled(true); txtMotivo.setDisabled(true); } public void onClick$poltronaOcupada() { -// cmbDestino.setDisabled(false); txtMotivo.setDisabled(false); } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java index 564f4ffd3..d08242858 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java @@ -33,6 +33,7 @@ import org.zkoss.zul.Intbox; import org.zkoss.zul.Messagebox; import org.zkoss.zul.Radio; import org.zkoss.zul.Radiogroup; +import org.zkoss.zul.Spinner; import org.zkoss.zul.Tab; import org.zkoss.zul.Textbox; @@ -44,10 +45,15 @@ import com.rjconsultores.ventaboletos.entidad.ClienteDireccion; import com.rjconsultores.ventaboletos.entidad.ClienteFidelidad; import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.entidad.Curso; +import com.rjconsultores.ventaboletos.entidad.DetDiagramaAutobus; +import com.rjconsultores.ventaboletos.entidad.DiagramaAutobus; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Escola; +import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento; +import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; import com.rjconsultores.ventaboletos.entidad.MotivoViaje; import com.rjconsultores.ventaboletos.entidad.Parada; +import com.rjconsultores.ventaboletos.entidad.ReservaEspecialCliente; import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.entidad.TarjetaFidelidad; import com.rjconsultores.ventaboletos.entidad.TipoDomicilio; @@ -56,9 +62,13 @@ import com.rjconsultores.ventaboletos.entidad.TipoOcupacion; import com.rjconsultores.ventaboletos.service.ClienteCursoService; import com.rjconsultores.ventaboletos.service.ClienteService; import com.rjconsultores.ventaboletos.service.ConstanteService; +import com.rjconsultores.ventaboletos.service.DiagramaAutobusService; import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.EscolaService; +import com.rjconsultores.ventaboletos.service.EsquemaAsientoService; +import com.rjconsultores.ventaboletos.service.EsquemaCorridaService; import com.rjconsultores.ventaboletos.service.MotivoViajeService; +import com.rjconsultores.ventaboletos.service.ReservaEspecialClienteService; import com.rjconsultores.ventaboletos.service.RutaService; import com.rjconsultores.ventaboletos.service.TipoDomicilioService; import com.rjconsultores.ventaboletos.service.TipoIdentificacionService; @@ -76,6 +86,7 @@ import com.rjconsultores.ventaboletos.web.utilerias.MyTextbox; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderClienteDescuento; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderClienteFidelidade; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCurso; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderReservaEspecialCliente; @Controller("editarClienteController") @Scope("prototype") @@ -201,6 +212,41 @@ public class EditarClienteController extends MyGenericForwardComposer { private String clienteEnderecoObrigatorio = "no empty"; private Datebox fecbloqueiopcd; + + + /*Reserva Especial*/ + //Componentes Tela + private MyListbox reservaEspecialMyListBox; + private Intbox servicoIdIntBox; + private MyComboboxParada cmbParadaOrigemReserva; + private MyComboboxParadaCve cmbParadaOrigemCveReserva; + private MyComboboxParada cmbParadaDestinoReserva; + private MyComboboxParadaCve cmbParadaDestinoCveReserva; + private Intbox numAssentoReservaEspecial; + private Datebox dataFinalFinalReserva; + private Datebox dataInicioReserva; + private Spinner spTempoConfirmacaoHora; + private Spinner spTempoConfirmacaoMinuto; + private Checkbox indSegundaChk; + private Checkbox indTercaChk; + private Checkbox indQuartaChk; + private Checkbox indQuintaChk; + private Checkbox indSextaChk; + private Checkbox indSabadoChk; + private Checkbox indDomingoChk; + //Atributos + private Integer servicoId; + private List reservaEspecialClienteList; + @Autowired + private ReservaEspecialClienteService reservaEspecialClientService; + @Autowired + private EsquemaCorridaService esquemaCorridaService; + @Autowired + EsquemaAsientoService esquemaAsientoService; + @Autowired + private DiagramaAutobusService diagramaAutoBusService; + + private Integer numAssentoIntReservaEspecial; public void aplicarMascara() { Clients.evalJavaScript( @@ -272,6 +318,7 @@ public class EditarClienteController extends MyGenericForwardComposer { } }); + cmbParadaDestinoCve.setItemRenderer(new ComboitemRenderer() { @Override public void render(Comboitem cmbtm, Object o) throws Exception { @@ -282,6 +329,26 @@ public class EditarClienteController extends MyGenericForwardComposer { } }); + cmbParadaDestinoCveReserva.setItemRenderer(new ComboitemRenderer() { + @Override + public void render(Comboitem cmbtm, Object o) throws Exception { + Parada parada = (Parada) o; + + cmbtm.setLabel(parada.getCveparada()); + cmbtm.setValue(parada); + } + }); + + cmbParadaOrigemCveReserva.setItemRenderer(new ComboitemRenderer() { + @Override + public void render(Comboitem cmbtm, Object o) throws Exception { + Parada parada = (Parada) o; + + cmbtm.setLabel(parada.getCveparada()); + cmbtm.setValue(parada); + } + }); + aplicarMascara(); lsTipoOcupacion = tipoOcupacionService.obtenerTodos(); lsMotivoViaje = motivoViajeService.obtenerTodos(); @@ -328,6 +395,16 @@ public class EditarClienteController extends MyGenericForwardComposer { } } }); + + //Reserva Especial + servicoId = null; + reservaEspecialMyListBox.setItemRenderer(new RenderReservaEspecialCliente()); + reservaEspecialMyListBox.addEventListener("onDoubleClick", new EventListener() { + + @Override + public void onEvent(Event arg0) throws Exception { + } + }); } else { cliente = clienteService.obtenerID(cliente.getClienteId()); @@ -453,7 +530,14 @@ public class EditarClienteController extends MyGenericForwardComposer { lsClienteFidelidad = cliente.getListClienteFidelidadActivos(); clienteFidelidadeMyListBox.setData(lsClienteFidelidad); } - + + //Reserva Especial + reservaEspecialMyListBox.setItemRenderer(new RenderReservaEspecialCliente()); + reservaEspecialClienteList = reservaEspecialClientService.bucarReservaEspecialByClienteId(cliente.getClienteId().longValue()); + if(reservaEspecialClienteList!=null && !reservaEspecialClienteList.isEmpty()) { + reservaEspecialMyListBox.setData(reservaEspecialClienteList); + } + } //Aplica na constraint do campo @@ -1140,6 +1224,27 @@ public class EditarClienteController extends MyGenericForwardComposer { .setComboItemByParada((Parada) cmbParadaDestino.getSelectedItem().getValue()); } } + + + public void onSelect$cmbParadaOrigemReserva(Event ev) { + if (cmbParadaOrigemReserva.getSelectedItem() != null) + cmbParadaOrigemCveReserva + .setComboItemByParada((Parada) cmbParadaOrigemReserva.getSelectedItem().getValue()); + } + + public void onSelect$cmbParadaDestinoCveReserva(Event ev) { + if (cmbParadaDestinoCveReserva.getSelectedItem() != null) { + cmbParadaDestinoReserva.setComboItemByParada( + (Parada) cmbParadaDestinoCveReserva.getSelectedItem().getValue()); + } + } + + public void onSelect$cmbParadaDestinoReserva(Event ev) { + if (cmbParadaDestinoReserva.getSelectedItem() != null) { + cmbParadaDestinoCveReserva + .setComboItemByParada((Parada) cmbParadaDestinoReserva.getSelectedItem().getValue()); + } + } public void onClick$btnApagar(Event ev) { try { @@ -1623,6 +1728,80 @@ public class EditarClienteController extends MyGenericForwardComposer { return false; } + public void onClick$btnAdicionarReservaEspecial(Event ev) throws InterruptedException { + EsquemaCorrida esquemaCorrida = buscaServico(servicoIdIntBox.getValue().intValue()); + if(esquemaCorrida == null) { + Messagebox.show(Labels.getLabel("editarClienteController.msg.noServicoValido"), + Labels.getLabel("editarClienteController.window.title"), Messagebox.OK, + Messagebox.ERROR); + return; + } + + if(!validaPoltrona(numAssentoReservaEspecial.getValue().toString(), esquemaCorrida)) { + Messagebox.show(Labels.getLabel("editarClienteController.msg.noPoltronaValido"), + Labels.getLabel("editarClienteController.window.title"), Messagebox.OK, + Messagebox.ERROR); + return; + } + ReservaEspecialCliente reservaEspecialCliente = new ReservaEspecialCliente(); + reservaEspecialCliente.setActivo(Boolean.TRUE); + reservaEspecialCliente.setClienteId(cliente.getClienteId().longValue()); + reservaEspecialCliente.setCorridaId(servicoIdIntBox.getValue().longValue()); + reservaEspecialCliente.setOrigem((Parada) cmbParadaOrigemCveReserva.getSelectedItem().getValue()); + reservaEspecialCliente.setDestino((Parada) cmbParadaDestinoCveReserva.getSelectedItem().getValue()); + reservaEspecialCliente.setFecinicio(dataInicioReserva.getValue()); + reservaEspecialCliente.setFecfinal(dataFinalFinalReserva.getValue()); + reservaEspecialCliente.setFecmodif(new Date()); + reservaEspecialCliente.setNumAsentoCorrida(numAssentoReservaEspecial.getValue().shortValue()); + reservaEspecialCliente.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + reservaEspecialCliente.setTempoConfirmacao(spTempoConfirmacaoHora.getValue(), spTempoConfirmacaoMinuto.getValue()); + reservaEspecialCliente.setIndDomingo(indDomingoChk.isChecked()); + reservaEspecialCliente.setIndSegunda(indSegundaChk.isChecked()); + reservaEspecialCliente.setIndTerca(indTercaChk.isChecked()); + reservaEspecialCliente.setIndQuarta(indQuartaChk.isChecked()); + reservaEspecialCliente.setIndQuinta(indQuintaChk.isChecked()); + reservaEspecialCliente.setIndSexta(indSextaChk.isChecked()); + reservaEspecialCliente.setIndSabado(indSabadoChk.isChecked()); + reservaEspecialClienteList.add(reservaEspecialCliente); + cliente.setListReservaEspecialCliente(reservaEspecialClienteList); + reservaEspecialMyListBox.setData(new ArrayList(reservaEspecialClienteList)); + } + + private boolean validaPoltrona(String numPoltrona, EsquemaCorrida esquemaCorrida) { + //Valida se existe cota cadastrada para a poltrona informada, caso exista retorn false e não deixa casdastrar. + EsquemaAsiento esquemaAsiento = esquemaAsientoService.obtenerPorCorridaeAsiento(esquemaCorrida, numPoltrona); + if( esquemaAsiento !=null && esquemaAsiento.getEsquemaasientoId() != null && esquemaAsiento.getNumasiento()!=null) { + return false; + } + //Valida se no diagrama cadastrado para o serviço existe a poltrona informada, caso exista valida se é vendível, + DiagramaAutobus diagramaAutobus = diagramaAutoBusService.obtenerID(esquemaCorrida.getRolOperativo().getDiagramaAutobus().getDiagramaautobusId()); + for (DetDiagramaAutobus dd : diagramaAutobus.getDetDiagramaAutobusList()) { + if(numPoltrona.equals(dd.getAsiento())) { + if(Boolean.TRUE.equals(dd.getVendible())) { + return true; + } + } + } + return false; + } + + + private EsquemaCorrida buscaServico(Integer numCorrida) { + return esquemaCorridaService.obtenerByEsquemaCorrida(numCorrida); + } + + + public void onClick$btnRemoverReservaEspecial(Event ev) throws InterruptedException { + ReservaEspecialCliente reservaEspecialCliente = (ReservaEspecialCliente) reservaEspecialMyListBox.getSelected(); + if (reservaEspecialCliente != null) { + reservaEspecialCliente.setActivo(false); + reservaEspecialCliente.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + reservaEspecialCliente.setFecmodif(Calendar.getInstance().getTime()); + reservaEspecialClienteList.remove(reservaEspecialCliente); + reservaEspecialMyListBox.setData(new ArrayList(reservaEspecialClienteList)); + } + } + public void onClick$btnAdicionarFidelidade(Event ev) throws InterruptedException { if (validarDadosFidelidade(empresa)) { @@ -1716,6 +1895,9 @@ public class EditarClienteController extends MyGenericForwardComposer { txtNumFidelidade.setValue(null); } } + + + private void limparInput() { cmbLinha.setSelectedItem(null); @@ -1865,5 +2047,54 @@ public class EditarClienteController extends MyGenericForwardComposer { public void setCmbEmpresaCadastro(Combobox cmbEmpresaCadastro) { this.cmbEmpresaCadastro = cmbEmpresaCadastro; - } + } + + public Integer getServicoId() { + return servicoId; + } + + + public void setServicoId(Integer servicoId) { + this.servicoId = servicoId; + } + + + public Integer getNumAssentoIntReservaEspecial() { + return numAssentoIntReservaEspecial; + } + + + public void setNumAssentoIntReservaEspecial(Integer numAssentoIntReservaEspecial) { + this.numAssentoIntReservaEspecial = numAssentoIntReservaEspecial; + } + + public Intbox getNumAssentoReservaEspecial() { + return numAssentoReservaEspecial; + } + + + public void setNumAssentoReservaEspecial(Intbox numAssentoReservaEspecial) { + this.numAssentoReservaEspecial = numAssentoReservaEspecial; + } + + public MyComboboxParada getCmbParadaOrigemReserva() { + return cmbParadaOrigemReserva; + } + + + public void setCmbParadaOrigemReserva(MyComboboxParada cmbParadaOrigemReserva) { + this.cmbParadaOrigemReserva = cmbParadaOrigemReserva; + } + + + public MyComboboxParadaCve getCmbParadaOrigemCveReserva() { + return cmbParadaOrigemCveReserva; + } + + + public void setCmbParadaOrigemCveReserva(MyComboboxParadaCve cmbParadaOrigemCveReserva) { + this.cmbParadaOrigemCveReserva = cmbParadaOrigemCveReserva; + } + + } \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderReservaEspecialCliente.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderReservaEspecialCliente.java new file mode 100644 index 000000000..bdb201a8c --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderReservaEspecialCliente.java @@ -0,0 +1,116 @@ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import java.util.Calendar; +import java.util.Date; + +import org.zkoss.util.resource.Labels; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.ReservaEspecialCliente; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; + +public class RenderReservaEspecialCliente implements ListitemRenderer { + + public void render(Listitem lstm, Object o) throws Exception { + ReservaEspecialCliente reservaEspecialCliente = (ReservaEspecialCliente) o; + + //Serviço + Listcell lc = new Listcell(reservaEspecialCliente.getCorridaId().toString()); + lc.setParent(lstm); + + //Data Início + lc = new Listcell(dataComum(reservaEspecialCliente.getFecinicio())); + lc.setParent(lstm); + + //Data Final + lc = new Listcell(dataComum(reservaEspecialCliente.getFecinicio())); + lc.setParent(lstm); + + //Tempo Conferência + String[] horaMinutoTempoConfirmcao = capturarHoraMinuto(reservaEspecialCliente.getTempoConfirmacao()); + lc = new Listcell(horaMinutoTempoConfirmcao[0] + ":" + horaMinutoTempoConfirmcao[1]); + lc.setParent(lstm); + + //Origem + lc = new Listcell(reservaEspecialCliente.getOrigem().getDescparada()); + lc.setParent(lstm); + + //Destino + lc = new Listcell(reservaEspecialCliente.getDestino().getDescparada()); + lc.setParent(lstm); + + + //Número poltrona + lc = new Listcell(reservaEspecialCliente.getNumAsentoCorrida().toString()); + lc.setParent(lstm); + + //Dias semana + lc = new Listcell(getDias(reservaEspecialCliente)); + lc.setParent(lstm); + lstm.setAttribute("data", reservaEspecialCliente); + + } + + + private String dataComum(java.util.Date data){ + String retorno = ""; + Calendar calendar = Calendar.getInstance(); + calendar.setTime(data); + + retorno = retorno + String.format("%02d",calendar.get(Calendar.DAY_OF_MONTH))+"/"; + retorno = retorno + String.format("%02d",calendar.get(Calendar.MONTH)+1)+"/"; + retorno = retorno + String.format("%02d",calendar.get(Calendar.YEAR)); + + return retorno; + } + + private String getDias(ReservaEspecialCliente reservaEspecialCliente) { + String retorno = ""; + if (reservaEspecialCliente.getIndDomingo()) { + retorno = retorno + Labels.getLabel("editarClienteController.msg.domingo")+", "; + } + if (reservaEspecialCliente.getIndSegunda()) { + retorno = retorno + Labels.getLabel("editarClienteController.msg.lunes")+", "; + } + if (reservaEspecialCliente.getIndTerca()) { + retorno = retorno + Labels.getLabel("editarClienteController.msg.martes")+", "; + } + if (reservaEspecialCliente.getIndQuarta()) { + retorno = retorno + Labels.getLabel("editarClienteController.msg.miercoles")+", "; + } + if (reservaEspecialCliente.getIndQuinta()) { + retorno = retorno + Labels.getLabel("editarClienteController.msg.jueves")+", "; + } + if (reservaEspecialCliente.getIndSexta()) { + retorno = retorno + Labels.getLabel("editarClienteController.msg.viernes")+", "; + } + if (reservaEspecialCliente.getIndSabado()) { + retorno = retorno + Labels.getLabel("editarClienteController.msg.sabado")+", "; + } + if (retorno.length() > 1) { + retorno = retorno.substring(0, retorno.length() - 2); + } + return retorno; + } + +public String[] capturarHoraMinuto(Date data) { + + if(data == null) { + return new String[] { "0", "0"}; + } + + String[] horaMinuto = new String[2]; + Calendar c = Calendar.getInstance(); + c.setTime(data); + Long tempo = DateUtil.getElapsedMinutos(DateUtil.getFecInicio().getTime(), c.getTime()); + long minutos = (tempo % 60); + Integer horas = (tempo.intValue() / 60); + String sMinutos = String.valueOf(minutos); + horaMinuto[0] = horas.toString(); + horaMinuto[1] = ((sMinutos.length() < 2) ? "0" + sMinutos : sMinutos); + + return horaMinuto; + } +}