From bcbf0c63e5e4b672984c3abeae2ddf677ef656c9 Mon Sep 17 00:00:00 2001 From: "igor.rodrigo" Date: Wed, 30 Sep 2015 00:52:04 +0000 Subject: [PATCH] fixes bug 6659 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@48447 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../sendaAmigo/EditarClienteController.java | 188 ++++++++++++++---- .../web/utilerias/render/RenderCliente.java | 10 +- .../render/RenderClienteFidelidade.java | 30 +++ web/WEB-INF/i3-label_es_MX.label | 10 + web/WEB-INF/i3-label_pt_BR.label | 11 + web/gui/senda_amigo/editarCliente.zul | 60 +++++- 6 files changed, 265 insertions(+), 44 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderClienteFidelidade.java 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 d54968786..cc9d44570 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 @@ -36,6 +36,7 @@ import com.rjconsultores.ventaboletos.entidad.ClienteDescuento; import com.rjconsultores.ventaboletos.entidad.ClienteDireccion; import com.rjconsultores.ventaboletos.entidad.ClienteFidelidad; import com.rjconsultores.ventaboletos.entidad.Curso; +import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Escola; import com.rjconsultores.ventaboletos.entidad.MotivoViaje; import com.rjconsultores.ventaboletos.entidad.Parada; @@ -46,11 +47,14 @@ import com.rjconsultores.ventaboletos.entidad.TipoOcupacion; import com.rjconsultores.ventaboletos.service.ClienteCursoService; import com.rjconsultores.ventaboletos.service.ClienteDescuentoService; import com.rjconsultores.ventaboletos.service.ClienteService; +import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.EscolaService; import com.rjconsultores.ventaboletos.service.MotivoViajeService; import com.rjconsultores.ventaboletos.service.RutaService; +import com.rjconsultores.ventaboletos.service.TarjetaFidelidadService; import com.rjconsultores.ventaboletos.service.TipoDomicilioService; import com.rjconsultores.ventaboletos.service.TipoOcupacionService; +import com.rjconsultores.ventaboletos.utilerias.ApplicationProperties; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada; @@ -59,6 +63,7 @@ import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; 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; @Controller("editarClienteController") @@ -81,6 +86,10 @@ public class EditarClienteController extends MyGenericForwardComposer { private ClienteDescuentoService clienteDescuentoService; @Autowired private ClienteCursoService clienteCursoService; + @Autowired + private EmpresaService empresaService; + @Autowired + private TarjetaFidelidadService tarjetaFidelidadService; private Cliente cliente; private MyListbox clienteList; @@ -113,6 +122,7 @@ public class EditarClienteController extends MyGenericForwardComposer { private Combobox cmbOcupacion; private Combobox cmbMotivacionViaje; private Combobox cmbEscola; + private Combobox cmbEmpresa; private List lsMotivoViaje; private List lsTipoOcupacion; @@ -120,10 +130,12 @@ public class EditarClienteController extends MyGenericForwardComposer { private List lsTipoDomicilio; private List lsEscola; private List lsLinhas; + private List lsEmpresas; private Checkbox chkBloqueo; private MyComboboxEstandar cmbLinha; private Ruta linha; + private Empresa empresa; private MyComboboxParada cmbParadaOrigem; private MyComboboxParadaCve cmbParadaOrigemCve; private Parada origem; @@ -153,10 +165,12 @@ public class EditarClienteController extends MyGenericForwardComposer { private MyListbox clienteDescuentoMyListBox; private List lsClienteDescuento; - + private MyListbox cursoList; private Tab tabCurso; - + private List lsClienteFidelidad; + private MyListbox clienteFidelidadeMyListBox; + public void aplicarMascara() { Clients.evalJavaScript("jQuery('#" + txtNumFax.getUuid() + "').mask('(999)9999-9999?9');jQuery('#" + numtelefonodos.getUuid() @@ -194,37 +208,11 @@ public class EditarClienteController extends MyGenericForwardComposer { cmbEscola.setDisabled(desabilitar); } - private Boolean isClienteImportacao() { - - TipoOcupacion ocupacion = cliente.getTipoocupacionId(); - if (ocupacion != null) { - if (ocupacion.getTipoocupacionId().equals(TIPO_OCUPACION_ESTUDANTE)) - return Boolean.FALSE; - } - - List ls = cliente.getListClienteFidelidad(); - TarjetaFidelidad tarjetaFidelidad = null; - if ((ls != null) && (!ls.isEmpty())) { - tarjetaFidelidad = ls.get(0).getTarjetaFidelidad(); - } - if (tarjetaFidelidad != null) { - Integer numFidelidad = tarjetaFidelidad.getNumTarjeta(); - - if (numFidelidad != null) { - txtNumFidelidade.setValue(numFidelidad); - return Boolean.TRUE; - } else { - return Boolean.FALSE; - } - } else { - return Boolean.FALSE; - } - } - @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); lsLinhas = rutaService.obtenerTodos(); + lsEmpresas = empresaService.obtenerTodos(); cmbParadaOrigemCve.setItemRenderer(new ComboitemRenderer() { @Override @@ -260,6 +248,7 @@ public class EditarClienteController extends MyGenericForwardComposer { if (cliente.getClienteId() == null) { btnApagar.setVisible(Boolean.FALSE); tabCurso.setVisible(Boolean.FALSE); + lsClienteFidelidad = new ArrayList(); clienteDescuentoMyListBox.setItemRenderer(new RenderClienteDescuento()); clienteDescuentoMyListBox.addEventListener("onDoubleClick", new EventListener() { @@ -270,11 +259,23 @@ public class EditarClienteController extends MyGenericForwardComposer { exibeClienteDescuento(cd); lsClienteDescuento.remove(cd); clienteDescuentoMyListBox.setData(lsClienteDescuento); - } }); + + clienteFidelidadeMyListBox.setItemRenderer(new RenderClienteFidelidade()); + clienteFidelidadeMyListBox.addEventListener("onDoubleClick", new EventListener() { + @Override + public void onEvent(Event arg0) throws Exception { + ClienteFidelidad clienteFidelidad = (ClienteFidelidad) clienteFidelidadeMyListBox.getSelected(); + exibeClienteFidelidade(clienteFidelidad); + lsClienteFidelidad.remove(clienteFidelidad); + clienteFidelidadeMyListBox.setData(lsClienteFidelidad); + } + }); + } else { cliente = clienteService.obtenerID(cliente.getClienteId()); + lsClienteFidelidad = cliente.getListClienteFidelidad(); if (cliente.getMotivoviajeId() != null) { cmbMotivacionViaje.setText(cliente.getMotivoviajeId().getDescMotivoViaje()); @@ -361,6 +362,22 @@ public class EditarClienteController extends MyGenericForwardComposer { estudanteComDesconto = true; chkEstudanteComDesconto.setChecked(true); } + + clienteFidelidadeMyListBox.setItemRenderer(new RenderClienteFidelidade()); + clienteFidelidadeMyListBox.addEventListener("onDoubleClick", new EventListener() { + @Override + public void onEvent(Event arg0) throws Exception { + ClienteFidelidad clienteFidelidad = (ClienteFidelidad) clienteFidelidadeMyListBox.getSelected(); + exibeClienteFidelidade(clienteFidelidad); + lsClienteFidelidad.remove(clienteFidelidad); + clienteFidelidadeMyListBox.setData(lsClienteFidelidad); + } + }); + + if ((cliente.getListClienteFidelidad() != null) && (!cliente.getListClienteFidelidad().isEmpty())) { + lsClienteFidelidad = cliente.getListClienteFidelidad(); + clienteFidelidadeMyListBox.setData(lsClienteFidelidad); + } // if ((cliente.getLsClienteDescuento() != null) && (!cliente.getLsClienteDescuento().isEmpty())) { // if (null != cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size() - 1) && @@ -419,11 +436,10 @@ public class EditarClienteController extends MyGenericForwardComposer { lsClienteDireccion = cliente.getLsClienteDireccion(); txtNombCliente.focus(); txtDireccionCalle.focus(); - - if (isClienteImportacao()) { + + if (!ApplicationProperties.getInstance().podeEditarClienteFidelidade()) { desabilitarComponentes(Boolean.TRUE); - - Messagebox.show(Labels.getLabel("editarClienteController.msg.clienteimportacao"), + Messagebox.show(Labels.getLabel("editarClienteController.msg.edicao.nao.permitida"), Labels.getLabel("editarClienteController.window.title"), Messagebox.OK, Messagebox.INFORMATION); } @@ -1201,6 +1217,77 @@ public class EditarClienteController extends MyGenericForwardComposer { limparInput(); } + + public void onClick$btnAdicionarFidelidade(Event ev) throws InterruptedException { + if (validarDadosFidelidade(empresa)){ + ClienteFidelidad clienteFidelidad = new ClienteFidelidad(); + TarjetaFidelidad tarjetaFidelidad = new TarjetaFidelidad(); + + tarjetaFidelidad.setNumTarjeta(txtNumFidelidade.getValue()); + tarjetaFidelidad.setActivo(true); + tarjetaFidelidad.setFecmodif(Calendar.getInstance().getTime()); + tarjetaFidelidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + + clienteFidelidad.setEmpresa(empresa); + clienteFidelidad.setActivo(true); + clienteFidelidad.setFecmodif(Calendar.getInstance().getTime()); + clienteFidelidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + clienteFidelidad.setTarjetaFidelidad(tarjetaFidelidad); + + lsClienteFidelidad.add(clienteFidelidad); + cliente.setListClienteFidelidad(lsClienteFidelidad); + clienteFidelidadeMyListBox.setData(new ArrayList(lsClienteFidelidad)); + limparInputAbaFidelidade(); + } + } + + private Boolean validarDadosFidelidade(Empresa empresa) throws InterruptedException { + + if(txtNumFidelidade.getValue() == null && empresa == null ){ + return false; + } + + if(txtNumFidelidade.getValue() != null && empresa == null ){ + Messagebox.show(Labels.getLabel("editarClienteController.msg.noEmpresa"), + Labels.getLabel("editarClienteController.window.title"), + Messagebox.OK, Messagebox.ERROR); + return false; + } + + if(empresa != null && txtNumFidelidade.getValue() == null){ + Messagebox.show(Labels.getLabel("editarClienteController.msg.noFidelidade"), + Labels.getLabel("editarClienteController.window.title"), + Messagebox.OK, Messagebox.ERROR); + return false; + } + + for(ClienteFidelidad clienteF : lsClienteFidelidad){ + if(empresa != null && clienteF.getEmpresa().equals(empresa)){ + Messagebox.show(Labels.getLabel("editarClienteController.msg.empresa.cadastrada"), + Labels.getLabel("editarClienteController.window.title"), + Messagebox.OK, Messagebox.ERROR); + return false; + } + } + return true; + } + + public void onClick$btnRemoverFidelidade(Event ev) { + ClienteFidelidad c = (ClienteFidelidad) clienteFidelidadeMyListBox.getSelected(); + if (c != null) { + c.setActivo(false); + c.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + c.setFecmodif(Calendar.getInstance().getTime()); + lsClienteFidelidad.remove(c); + clienteFidelidadeMyListBox.setData(new ArrayList(lsClienteFidelidad)); + } + } + + + private void limparInputAbaFidelidade() { + cmbEmpresa.setSelectedItem(null); + txtNumFidelidade.setValue(null); + } private void limparInput() { cmbLinha.setSelectedItem(null); @@ -1259,4 +1346,37 @@ public class EditarClienteController extends MyGenericForwardComposer { boolINDSABADO = cd.getINDSABADO(); boolINDDOMINGO = cd.getINDDOMINGO(); } + + private void exibeClienteFidelidade(ClienteFidelidad cliente){ + cmbEmpresa.setText(cliente.getEmpresa().getNombempresa()); + empresa = cliente.getEmpresa(); + cmbEmpresa.setSelectedItem(cmbEmpresa.getItemAtIndex(lsEmpresas.indexOf(cliente.getEmpresa()))); + txtNumFidelidade.setText(cliente.getTarjetaFidelidad().getNumTarjeta().toString()); + } + + public List getLsEmpresas() { + return lsEmpresas; + } + + public void setLsEmpresas(List lsEmpresas) { + this.lsEmpresas = lsEmpresas; + } + + public Empresa getEmpresa() { + return empresa; + } + + public void setEmpresa(Empresa empresa) { + this.empresa = empresa; + } + + public Combobox getCmbEmpresa() { + return cmbEmpresa; + } + + public void setCmbEmpresa(Combobox cmbEmpresa) { + this.cmbEmpresa = cmbEmpresa; + } + + } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderCliente.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderCliente.java index 5a9ea0678..ccd62fa2a 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderCliente.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderCliente.java @@ -23,6 +23,7 @@ public class RenderCliente implements ListitemRenderer { lc = new Listcell(); StringBuilder emp = new StringBuilder(); + StringBuilder tarjetasFidelidad = new StringBuilder(); TarjetaFidelidad tarjetaFidelidad = null; if (null != ls && ls.size()!=0) { @@ -33,19 +34,22 @@ public class RenderCliente implements ListitemRenderer { Empresa empresa = null; tarjetaFidelidad = cf.getTarjetaFidelidad(); empresa = cf.getEmpresa(); - emp.append(empresa.getNombempresa().toString()).append("\n\n"); + emp.append(empresa.getNombempresa().toString()).append(" - "); + tarjetasFidelidad.append(tarjetaFidelidad.getNumTarjeta().toString()).append(" - "); } } if (!emp.toString().isEmpty()) { + emp.replace(emp.length()-2, emp.length(), ""); lc = new Listcell(emp.toString()); } else { lc = new Listcell(""); } lc.setParent(lstm); - if (tarjetaFidelidad != null) { - lc = new Listcell(tarjetaFidelidad.getNumTarjeta().toString()); + if (!tarjetasFidelidad.toString().isEmpty()) { + tarjetasFidelidad.replace(tarjetasFidelidad.length()-2, tarjetasFidelidad.length(), ""); + lc = new Listcell(tarjetasFidelidad.toString()); } else { lc = new Listcell(""); } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderClienteFidelidade.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderClienteFidelidade.java new file mode 100644 index 000000000..3077d9fa7 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderClienteFidelidade.java @@ -0,0 +1,30 @@ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.ClienteFidelidad; + +public class RenderClienteFidelidade implements ListitemRenderer { + + public void render(Listitem lstm, Object o) throws Exception { + ClienteFidelidad clienteFidelidad = (ClienteFidelidad) o; + + Listcell lc = new Listcell(clienteFidelidad.getClienteFidelidadId() == null ? "-" : clienteFidelidad.getClienteFidelidadId().toString()); + lc.setParent(lstm); + + if(clienteFidelidad.getTarjetaFidelidad() != null){ + lc = new Listcell(clienteFidelidad.getTarjetaFidelidad().getNumTarjeta().toString()); + }else{ + lc = new Listcell("-"); + } + lc.setParent(lstm); + + lc = new Listcell(clienteFidelidad.getEmpresa().getNombempresa()); + lc.setParent(lstm); + + lstm.setAttribute("data", clienteFidelidad); + + } +} diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 2bca8fd7d..37392c275 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -5024,6 +5024,7 @@ editarClienteController.lbCP.value = CEP editarClienteController.msg.clienteimportacao = Cliente agregado por importación del archivo solamente podrá ser visualizado editarClienteController.lbLinhas.value = Ruta editarClienteController.tab.label.estudante = Estudante +editarClienteController.tab.label.fidelidade = Fidelidade editarClienteController.lbCidadeOrigem.value = Localidade Origem editarClienteController.lbCidadeDestino.value = Localidade Destino editarClienteController.lbDias.value = Dias de la Semana @@ -5062,6 +5063,15 @@ editarClienteController.msg.viernes=VI editarClienteController.msg.sabado=SA editarClienteController.tab.label.curso = Curso +editarClienteController.lbNumFidelidade.value= Número de Fidelidade +editarClienteController.empresa.value = Empresa +editarClienteController.btnAddNumFidelidade.tooltiptext = Adicionar +editarClienteController.btnRemoveNumFidelidade.tooltiptext = Remover +editarClienteController.msg.noEmpresa = Favor selecionar uma empresa +editarClienteController.msg.noFidelidade = Favor digitar o número de fidelidade +editarClienteController.msg.empresa.cadastrada = Empresa já cadastrada +editarClienteController.msg.edicao.nao.permitida = Edição não é permitida + # EditarEmpleado editarEmpleadoController.window.title = Empleado editarEmpleadoController.btnApagar.tooltiptext = Eliminar diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index ed49f4c50..db486a95e 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -1666,6 +1666,7 @@ editarCatalogoDeRutaController.lblCantAsientosZeroInvalido.value = Quantidade de editarCatalogoDeRutaController.lblCantEixosZeroInvalido.value = Quantidade de Eixos não pode ser igual à zero + # A través da pantalla de Pesquisa busquedaViaController.window.title = Via busquedaViaController.btnRefresh.tooltiptext = Atualizar @@ -5084,6 +5085,7 @@ editarClienteController.lbCP.value = CEP editarClienteController.msg.clienteimportacao = Cliente inserido por importação de arquivo poderá somente ser visualizado. editarClienteController.lbLinhas.value = Linha editarClienteController.tab.label.estudante = Estudante +editarClienteController.tab.label.fidelidade = Fidelidade editarClienteController.lbCidadeOrigem.value = Localidade Origem editarClienteController.lbCidadeDestino.value = Localidade Destino editarClienteController.lbDias.value = Dias da Semana @@ -5122,6 +5124,15 @@ editarClienteController.msg.viernes=6ª editarClienteController.msg.sabado=SAB editarClienteController.tab.label.curso = Curso +editarClienteController.lbNumFidelidade.value= Número de Fidelidade +editarClienteController.empresa.value = Empresa +editarClienteController.btnAddNumFidelidade.tooltiptext = Adicionar +editarClienteController.btnRemoveNumFidelidade.tooltiptext = Remover +editarClienteController.msg.noEmpresa = Favor selecionar uma empresa +editarClienteController.msg.noFidelidade = Favor digitar o número de fidelidade +editarClienteController.msg.empresa.cadastrada = Empresa já cadastrada +editarClienteController.msg.edicao.nao.permitida = Edição não é permitida + # EditarEmpleado editarEmpleadoController.window.title = Empregado editarEmpleadoController.btnApagar.tooltiptext = Eliminar diff --git a/web/gui/senda_amigo/editarCliente.zul b/web/gui/senda_amigo/editarCliente.zul index 95dd55715..b872841c3 100644 --- a/web/gui/senda_amigo/editarCliente.zul +++ b/web/gui/senda_amigo/editarCliente.zul @@ -34,6 +34,9 @@ label="${c:l('editarClienteController.tab.label.endereco')}" /> + + @@ -43,13 +46,7 @@ - - - +