From a24e53b6c5eedbece05ddf8a44d20bc96cdc47b0 Mon Sep 17 00:00:00 2001 From: leonardo Date: Wed, 17 Dec 2014 20:20:36 +0000 Subject: [PATCH] fixed bug #5928 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@40489 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../EditarOrgaoConcedenteController.java | 62 +++++++- .../web/utilerias/MyComboboxEmpresa.java | 149 ++++++++++++++++++ .../render/RenderOrgaoCancelacion.java | 30 ++++ src/java/spring-config.xml | 4 +- web/WEB-INF/i3-label_es_MX.label | 6 + web/WEB-INF/i3-label_pt_BR.label | 7 +- web/gui/catalogos/editarOrgaoConcedente.zul | 131 ++++++++++----- 7 files changed, 349 insertions(+), 40 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/MyComboboxEmpresa.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderOrgaoCancelacion.java diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarOrgaoConcedenteController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarOrgaoConcedenteController.java index f57dad109..d790e13b0 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarOrgaoConcedenteController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarOrgaoConcedenteController.java @@ -1,5 +1,9 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.catalogos; +import java.math.BigDecimal; +import java.util.Calendar; +import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; @@ -9,11 +13,18 @@ import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.event.Event; import org.zkoss.zul.Messagebox; +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.OrgaoCancelacion; import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; +import com.rjconsultores.ventaboletos.service.OrgaoCancelacionService; import com.rjconsultores.ventaboletos.service.OrgaoConcedenteService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEmpresa; 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.MyTextboxDecimal; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderOrgaoCancelacion; @Controller("editarOrgaoConcedenteController") @Scope("prototype") @@ -23,9 +34,17 @@ public class EditarOrgaoConcedenteController extends MyGenericForwardComposer { @Autowired private OrgaoConcedenteService orgaoConcedenteService; private OrgaoConcedente orgaoConcedente; + @Autowired + private OrgaoCancelacionService orgaoCancelacionService; private MyListbox orgaoConcedenteList; + private MyListbox orgaoCancelacionList; private MyTextbox txtNome; + private MyTextboxDecimal txtPorcMulta; + private MyTextboxDecimal txtPorcCambio; + private MyComboboxEmpresa cmbEmpresa; + private List lsOrgaoCancelacion; + public OrgaoConcedente getOrgaoConcedente() { return orgaoConcedente; } @@ -39,7 +58,9 @@ public class EditarOrgaoConcedenteController extends MyGenericForwardComposer { super.doAfterCompose(comp); orgaoConcedente = (OrgaoConcedente) Executions.getCurrent().getArg().get("orgaoConcedente"); orgaoConcedenteList = (MyListbox) Executions.getCurrent().getArg().get("orgaoConcedenteList"); - + orgaoCancelacionList.setItemRenderer(new RenderOrgaoCancelacion()); + lsOrgaoCancelacion = orgaoCancelacionService.buscarPorOrgao(orgaoConcedente); + orgaoCancelacionList.setData(lsOrgaoCancelacion); txtNome.focus(); } @@ -55,4 +76,43 @@ public class EditarOrgaoConcedenteController extends MyGenericForwardComposer { closeWindow(); } + + private Boolean parametroRepetido(Empresa empresa){ + for (OrgaoCancelacion o : lsOrgaoCancelacion){ + if (o.getEmpresa().equals(empresa)){ + return true; + } + } + return false; + } + + public void onClick$btnAdicionarParametros(Event ev) throws InterruptedException { + if (parametroRepetido((Empresa)cmbEmpresa.getSelectedItem().getValue())){ + Messagebox.show( + Labels.getLabel("editarOrgaoConcedenteController.MSG.parametroRepetido"), + Labels.getLabel("editarOrgaoConcedenteController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return; + } + + OrgaoCancelacion oc = new OrgaoCancelacion(); + oc.setEmpresa((Empresa)cmbEmpresa.getSelectedItem().getValue()); + oc.setOrgao(orgaoConcedente); + oc.setPorccambio(new BigDecimal(txtPorcCambio.getValue())); + oc.setPorcmulta(new BigDecimal(txtPorcMulta.getValue())); + oc.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + oc.setFecmodif(Calendar.getInstance().getTime()); + oc.setActivo(Boolean.TRUE); + + oc = orgaoCancelacionService.suscribirActualizacion(oc); + lsOrgaoCancelacion.add(oc); + orgaoCancelacionList.setData(lsOrgaoCancelacion); + } + + public void onClick$btnRemoverParametros(Event ev) throws InterruptedException { + OrgaoCancelacion oc = (OrgaoCancelacion)orgaoCancelacionList.getSelected(); + orgaoCancelacionService.borrar(oc); + lsOrgaoCancelacion.remove(oc); + orgaoCancelacionList.setData(lsOrgaoCancelacion); + } } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyComboboxEmpresa.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyComboboxEmpresa.java new file mode 100644 index 000000000..bdce49b13 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyComboboxEmpresa.java @@ -0,0 +1,149 @@ +package com.rjconsultores.ventaboletos.web.utilerias; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.log4j.Logger; +import org.zkoss.util.resource.Labels; +import org.zkoss.zk.ui.WrongValueException; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.InputEvent; +import org.zkoss.zkplus.databind.BindingListModel; +import org.zkoss.zkplus.databind.BindingListModelList; +import org.zkoss.zkplus.spring.SpringUtil; +import org.zkoss.zul.Combobox; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.service.EmpresaService; + +public class MyComboboxEmpresa extends Combobox { + + private static final long serialVersionUID = 1L; + + private static Logger log = Logger.getLogger(MyComboboxParada.class); + public final static int minLength = 2; + private EmpresaService empresaService; + private List lsEmpresa; + private Empresa initialValue; + private Integer indiceSelected = null; + private boolean sinTodos = false; + private Integer ID_TODOS = -1; + + public MyComboboxEmpresa() { + super(); + + empresaService = (EmpresaService) SpringUtil.getBean("empresaService"); + lsEmpresa = new ArrayList(); + + this.setAutodrop(false); + this.setAutocomplete(false); + + this.addEventListener("onOK", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + String strEmpresa = MyComboboxEmpresa.this.getText().toUpperCase(); + if (strEmpresa.length() < MyComboboxEmpresa.minLength) { + return; + } + if (!strEmpresa.isEmpty()) { + lsEmpresa = empresaService.buscaLike(strEmpresa); + + if (sinTodos) { + log.debug("Sin todos"); + Empresa e = empresaService.obtenerID(ID_TODOS); + lsEmpresa.remove(e); + } + + BindingListModel listModelParada = new BindingListModelList(lsEmpresa, true); + MyComboboxEmpresa.this.setModel(listModelParada); + setIndiceSelected(null); + if (!lsEmpresa.isEmpty()) { + setIndiceSelected(0); + } + + MyComboboxEmpresa.this.open(); + } else { + lsEmpresa.clear(); + + BindingListModel listModelEmpresa = new BindingListModelList(lsEmpresa, true); + MyComboboxEmpresa.this.setModel(listModelEmpresa); + } + } + }); + + this.addEventListener("onChanging", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + InputEvent ev = (InputEvent) event; + String strEmpresa = ev.getValue(); + if (strEmpresa.length() < 2) { + lsEmpresa.clear(); + + BindingListModel listModelEmpresa = new BindingListModelList(lsEmpresa, true); + MyComboboxEmpresa.this.setModel(listModelEmpresa); + + MyComboboxEmpresa.this.close(); + } + } + }); + } + + public Empresa getInitialValue() { + return initialValue; + } + + public void setInitialValue(Empresa initialValue) { + if (initialValue == null) { + return; + } + List ls = new ArrayList(); + ls.add(initialValue); + + this.setModel(new BindingListModelList(ls, false)); + this.setText(initialValue.getNombempresa()); + } + + /** + * + * @param checaBusqueda + * @throws WrongValueException + */ + public String getValue(boolean checaBusqueda) throws WrongValueException { + if (checaBusqueda) { + if (this.getSelectedItem() == null) { + throw new WrongValueException(this, Labels.getLabel("MSG.Error.combobox.hacerBusqueda")); + } + } + + return super.getValue(); + } + + public boolean isSinTodos() { + return sinTodos; + } + + public void setSinTodos(boolean sinTodos) { + this.sinTodos = sinTodos; + } + + public void setComboItemByEmpresa(Empresa empresa) { + + List ls = new ArrayList(); + ls.add(empresa); + + this.setModel(new BindingListModelList(ls, false)); + this.setText(empresa.getNombempresa()); + } + + public Integer getIndiceSelected() { + return indiceSelected; + } + + public void setIndiceSelected(Integer indiceSelected) { + this.indiceSelected = indiceSelected; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderOrgaoCancelacion.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderOrgaoCancelacion.java new file mode 100644 index 000000000..e348b4844 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderOrgaoCancelacion.java @@ -0,0 +1,30 @@ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import java.text.DecimalFormat; + +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.OrgaoCancelacion; +import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; + +public class RenderOrgaoCancelacion implements ListitemRenderer { + + public void render(Listitem lstm, Object o) throws Exception { + OrgaoCancelacion orgaoCancelacion = (OrgaoCancelacion) o; + DecimalFormat df = new DecimalFormat("#0.00"); + + Listcell lc = new Listcell(orgaoCancelacion.getEmpresa().getNombempresa()); + lc.setParent(lstm); + + lc = new Listcell(df.format(orgaoCancelacion.getPorccambio())); + lc.setParent(lstm); + + lc = new Listcell(df.format(orgaoCancelacion.getPorccambio())); + lc.setParent(lstm); + + lstm.setAttribute("data", orgaoCancelacion); + } +} diff --git a/src/java/spring-config.xml b/src/java/spring-config.xml index ff3c43458..9bd0d467c 100644 --- a/src/java/spring-config.xml +++ b/src/java/spring-config.xml @@ -155,8 +155,8 @@ com.rjconsultores.ventaboletos.entidad.MotivoViaje com.rjconsultores.ventaboletos.entidad.Nodo - com.rjconsultores.ventaboletos.entidad.OrgaoConcedente - + com.rjconsultores.ventaboletos.entidad.OrgaoCancelacion + com.rjconsultores.ventaboletos.entidad.OrgaoConcedente com.rjconsultores.ventaboletos.entidad.OrgaoTramo com.rjconsultores.ventaboletos.entidad.Pais com.rjconsultores.ventaboletos.entidad.Parada diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index df89d20d5..f4d5e4123 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -4156,6 +4156,12 @@ editarOrgaoConcedenteController.lhDesc.label = Nombre editarOrgaoConcedenteController.MSG.suscribirOK = Instituición concedente se registró exitosamente editarOrgaoConcedenteController.MSG.borrarPergunta = Deseas eliminar instituición concedente editarOrgaoConcedenteController.MSG.borrarOK = Instituición concedente se eliminó existosamente +editarOrgaoConcedenteController.MSG.parametroRepetido=Ya existe parámetro para esta empresa. +editarOrgaoConcedenteController.tabOrgaoConcedente.value=Instituición concedente +editarOrgaoConcedenteController.tabParametrosCancelacion.value=Parámetros Cancelamento +editarOrgaoConcedenteController.empresa.label=Empresa +editarOrgaoConcedenteController.porcMulta.label=Porc Multa +editarOrgaoConcedenteController.porcCambio.label=Porc Cambio # Busqueda Indice Tarifa diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index d603f19e4..398349dfd 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -4205,7 +4205,12 @@ editarOrgaoConcedenteController.lhDesc.label = Nome editarOrgaoConcedenteController.MSG.suscribirOK = Órgão Concedente Registrao com Sucesso. editarOrgaoConcedenteController.MSG.borrarPergunta = Deseja eliminar Órgão Concedente editarOrgaoConcedenteController.MSG.borrarOK = Órgão Concedente eliminado com sucesso. - +editarOrgaoConcedenteController.MSG.parametroRepetido=Já existe parâmetro para esta empresa. +editarOrgaoConcedenteController.tabOrgaoConcedente.value=Órgão Concedente +editarOrgaoConcedenteController.tabParametrosCancelacion.value=Parâmetros Cancelamento +editarOrgaoConcedenteController.empresa.label=Empresa +editarOrgaoConcedenteController.porcMulta.label=Porc Multa +editarOrgaoConcedenteController.porcCambio.label=Porc Cambio # Busqueda Coeficiente Tarifa busquedaCoeficienteTarifaController.window.title = Coeficiente Tarifario diff --git a/web/gui/catalogos/editarOrgaoConcedente.zul b/web/gui/catalogos/editarOrgaoConcedente.zul index b2029625f..ecd71623c 100644 --- a/web/gui/catalogos/editarOrgaoConcedente.zul +++ b/web/gui/catalogos/editarOrgaoConcedente.zul @@ -6,7 +6,7 @@ @@ -20,40 +20,99 @@ tooltiptext="${c:l('editarOrgaoConcedenteController.btnFechar.tooltiptext')}" /> - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +