diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/EditarConfiguracionCategoriaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/EditarConfiguracionCategoriaController.java index cc7577936..bc2887fc7 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/EditarConfiguracionCategoriaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/EditarConfiguracionCategoriaController.java @@ -52,6 +52,7 @@ import com.rjconsultores.ventaboletos.entidad.CategoriaMercado; import com.rjconsultores.ventaboletos.entidad.CategoriaOrgao; import com.rjconsultores.ventaboletos.entidad.CategoriaPeriodo; import com.rjconsultores.ventaboletos.entidad.CategoriaRuta; +import com.rjconsultores.ventaboletos.entidad.CategoriaRutaExcecao; import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.entidad.Corrida; @@ -85,6 +86,7 @@ import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConfiguracionCa import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConfiguracionCategoriaMercado; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConfiguracionCategoriaOrgao; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConfiguracionCategoriaRuta; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConfiguracionCategoriaRutaExcecao; /** * @@ -123,6 +125,7 @@ public class EditarConfiguracionCategoriaController extends MyGenericForwardComp private List lsCategorias; private List lsOrgao; private List lsRuta; + private List lsRutaSemTodas; private CategoriaMercado categoriaMercado; private CategoriaMarca categoriaMarca; private CategoriaDescuento categoriaDescuento; @@ -139,6 +142,7 @@ public class EditarConfiguracionCategoriaController extends MyGenericForwardComp private MyListbox categoriaMercadoList; private MyListbox categoriaOrgaoList; private MyListbox categoriaRutaList; + private MyListbox categoriaRutaExcecaoList; private List lsCategoriaClase; private List lsCategoriaDescuento; private List lsCategoriaMarca; @@ -146,6 +150,7 @@ public class EditarConfiguracionCategoriaController extends MyGenericForwardComp private List lsCategoriaCorrida; private List lsCategoriaOrgao; private List lsCategoriaRuta; + private List lsCategoriaRutaExcecao; private boolean clone = false; private Combobox cmbCategorias; private Combobox cmbEmpresas; @@ -155,6 +160,7 @@ public class EditarConfiguracionCategoriaController extends MyGenericForwardComp private Combobox cmbParadaDestino; private Combobox cmbOrgao; private Combobox cmbRuta; + private Combobox cmbCategoriaRutaExcecao; private Combobox cmbIndGeneraFeriado; private Decimalbox descuentoImporte; private Decimalbox descuentoPorc; @@ -417,6 +423,14 @@ public class EditarConfiguracionCategoriaController extends MyGenericForwardComp this.lsRuta = lsRuta; } + public List getLsRutaSemTodas() { + return lsRutaSemTodas; + } + + public void setLsRutaSemTodas(List lsRutaSemTodas) { + this.lsRutaSemTodas = lsRutaSemTodas; + } + public CategoriaRuta getCategoriaRuta() { return categoriaRuta; } @@ -476,6 +490,7 @@ public class EditarConfiguracionCategoriaController extends MyGenericForwardComp lsMarcas = marcaService.buscarMarcaPorEmpresa(UsuarioLogado.getUsuarioLogado().getEmpresa()); lsOrgao = orgaoService.obtenerTodos(); lsRuta = rutaService.obtenerTodos(); + lsRutaSemTodas = restringirOpcaoTodasLinhas(lsRuta); super.doAfterCompose(comp); @@ -510,6 +525,9 @@ public class EditarConfiguracionCategoriaController extends MyGenericForwardComp // Ruta categoriaRutaList.setItemRenderer(new RenderConfiguracionCategoriaRuta()); lsCategoriaRuta = new ArrayList(); + // Ruta Excecao + categoriaRutaExcecaoList.setItemRenderer(new RenderConfiguracionCategoriaRutaExcecao()); + lsCategoriaRutaExcecao = new ArrayList(); // Recarrega Listas if (categoriaCtrl.getCategoriactrlId() != null) { @@ -535,6 +553,9 @@ public class EditarConfiguracionCategoriaController extends MyGenericForwardComp lsCategoriaCorrida = categoriaCtrl.getCategoriaCorridaList(); categoriaCorridaList.setData(lsCategoriaCorrida); + + lsCategoriaRutaExcecao = categoriaCtrl.getCategoriaRutaExcecaoList(); + categoriaRutaExcecaoList.setData(lsCategoriaRutaExcecao); } @@ -655,6 +676,16 @@ public class EditarConfiguracionCategoriaController extends MyGenericForwardComp if (!validaObligatorios()) { return; } + if(!validarExisteExcecaoLinha()) { + int resp = Messagebox.show( + Labels.getLabel("editarConfiguracionCategoriaController.MSG.validarTodasComboLinhaSalvar"), + Labels.getLabel("editarConfiguracionCategoriaController.window.title"), Messagebox.OK | Messagebox.CANCEL, + Messagebox.QUESTION); + if (!(resp == Messagebox.OK)) { + return; + } + inativarExcecoesLinha(); + } if (categoriaCtrl.getCategoriactrlId() != null) { for (CategoriaDescuento cd : lsCategoriaDescuento) { @@ -743,6 +774,9 @@ public class EditarConfiguracionCategoriaController extends MyGenericForwardComp List lsCategoriaRuta = nuevo.addNuevoCloneCategoriaRuta((List) categoriaRutaList.getListData(), nuevo); nuevo.setCategoriarutaList(lsCategoriaRuta); + + List lsCategoriaRutaExcecao = nuevo.addNuevoCloneCategoriaRutaExcecao((List) categoriaRutaExcecaoList.getListData(), nuevo); + nuevo.setCategoriarutaExcecaoList(lsCategoriaRutaExcecao); List lsCategoriaCorrida = nuevo.addNuevoCloneCategoriaCorrida((List) categoriaCorridaList.getListData(), nuevo); nuevo.setCategoriaCorridaList(lsCategoriaCorrida); @@ -1263,6 +1297,95 @@ public class EditarConfiguracionCategoriaController extends MyGenericForwardComp Messagebox.ERROR); } } + + public void onClick$btnAdicionarRutaExcecao(Event ev) throws InterruptedException { + if (cmbCategoriaRutaExcecao.getSelectedItem() == null) { + Messagebox.show( + Labels.getLabel("MSG.Error.combobox"), + Labels.getLabel("editarConfiguracionCategoriaController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + + cmbCategoriaRutaExcecao.focus(); + return; + } + if(!validarOpcaoTodasComboLinhas()) { + Messagebox.show( + Labels.getLabel("editarConfiguracionCategoriaController.validarOpcaoTodasComboLinha"), + Labels.getLabel("MSG.Error.combobox"), + + Messagebox.OK, Messagebox.EXCLAMATION); + + cmbCategoriaRutaExcecao.focus(); + return; + } + + try { + boolean existe = false; + for (CategoriaRutaExcecao cm : lsCategoriaRutaExcecao) { + Ruta categoriaRutaTeste = (Ruta) cmbCategoriaRutaExcecao.getSelectedItem().getValue(); + if (cm.getActivo() && cm.getRuta().getRutaId().equals(categoriaRutaTeste.getRutaId())) { + existe = true; + } + } + + if (!existe) { + CategoriaRutaExcecao cRutaExcecao = new CategoriaRutaExcecao(); + cRutaExcecao.setCategoriaCtrl(categoriaCtrl); + cRutaExcecao.setActivo(Boolean.TRUE); + cRutaExcecao.setRuta((Ruta) cmbCategoriaRutaExcecao.getSelectedItem().getValue()); + cRutaExcecao.setFecmodif(Calendar.getInstance().getTime()); + cRutaExcecao.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + lsCategoriaRutaExcecao.add(cRutaExcecao); + categoriaRutaExcecaoList.addItemNovo(cRutaExcecao); + categoriaCtrl.setCategoriarutaExcecaoList(lsCategoriaRutaExcecao); + } else { + Messagebox.show( + Labels.getLabel("MSG.Registro.Existe"), + Labels.getLabel("editarConfiguracionCategoriaController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + } + } catch (Exception ex) { + log.error("", ex); + Clients.alert( + Labels.getLabel("MSG.Error"), + Labels.getLabel("editarConfiguracionCategoriaController.window.title"), + Messagebox.ERROR); + } + + } + + public void onClick$btnRemoverCategoriaRutaExcecao(Event ev) { + try { + CategoriaRutaExcecao cRutaExcecao = (CategoriaRutaExcecao) categoriaRutaExcecaoList.getSelected(); + int resp = Messagebox.show( + Labels.getLabel("editarConfiguracionCategoriaController.MSG.borrarPergunta"), + Labels.getLabel("editarConfiguracionCategoriaController.window.title"), + Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); + if (resp == Messagebox.YES) { + if (cRutaExcecao != null) { + // removo o antigo + lsCategoriaRutaExcecao.remove(cRutaExcecao); + cRutaExcecao.setFecmodif(Calendar.getInstance().getTime()); + cRutaExcecao.setActivo(Boolean.FALSE); + cRutaExcecao.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + lsCategoriaRutaExcecao.add(cRutaExcecao); + categoriaCtrl.setCategoriarutaExcecaoList(lsCategoriaRutaExcecao); + categoriaRutaExcecaoList.removeItem(cRutaExcecao); + } else { + Messagebox.show( + Labels.getLabel("editarConfiguracionCategoriaController.MSG.selectItem"), + Labels.getLabel("editarConfiguracionCategoriaController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + } + } + } catch (Exception ex) { + log.error("", ex); + Clients.alert( + Labels.getLabel("MSG.Error"), + Labels.getLabel("editarConfiguracionCategoriaController.window.title"), + Messagebox.ERROR); + } + } public void onClick$btnAdicionarOrgao(Event ev) throws InterruptedException { if (cmbOrgao.getSelectedItem() == null) { @@ -1781,4 +1904,56 @@ public class EditarConfiguracionCategoriaController extends MyGenericForwardComp public void setRadioIndPermiteTrocaTransferenciaSim(Radio radioIndPermiteTrocaTransferenciaSim) { this.radioIndPermiteTrocaTransferenciaSim = radioIndPermiteTrocaTransferenciaSim; } + + private List restringirOpcaoTodasLinhas(List lsRuta) { + List lsRutaSemOpcaoTodas = new ArrayList(); + for (Ruta ruta : lsRuta) { + if(!ruta.getRutaId().equals(-1)) { + lsRutaSemOpcaoTodas.add(ruta); + } + } + return lsRutaSemOpcaoTodas; + } + + @SuppressWarnings("unchecked") + private boolean validarOpcaoTodasComboLinhas() { + + List ls = categoriaRutaList.getListData(); + boolean contem = false; + for (CategoriaRuta ruta : ls) { + if(ruta.getRuta().getRutaId().equals(-1)) { + return true; + } + } + return contem; + } + + @SuppressWarnings("unchecked") + private boolean validarExisteExcecaoLinha() { + + boolean contem = false; + List ls = categoriaRutaList.getListData(); + if(categoriaRutaExcecaoList.getListData().isEmpty()) { + return true; + } + + if(!categoriaRutaExcecaoList.getListData().isEmpty()) { + for (CategoriaRuta ruta : ls) { + if(ruta.getRuta().getRutaId().equals(-1)) { + return true; + } + } + } + return contem; + } + + private void inativarExcecoesLinha() { + + List ls = categoriaRutaExcecaoList.getListData(); + + for (CategoriaRutaExcecao ruta : ls) { + ruta.setActivo(Boolean.FALSE); + } + + } } \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfiguracionCategoriaRutaExcecao.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfiguracionCategoriaRutaExcecao.java new file mode 100644 index 000000000..d2161002d --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfiguracionCategoriaRutaExcecao.java @@ -0,0 +1,24 @@ +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.CategoriaRutaExcecao; + +public class RenderConfiguracionCategoriaRutaExcecao implements ListitemRenderer { + + public void render(Listitem lstm, Object o) throws Exception { + CategoriaRutaExcecao categoria = (CategoriaRutaExcecao) o; + if(categoria.getActivo()){ + Listcell lc = new Listcell(categoria.getRuta() == null ? "" : categoria.getRuta().getRutaId().toString()); + lc.setParent(lstm); + + lc = new Listcell(categoria.getRuta() == null ? "" : categoria.getRuta().getDescruta()); + lc.setParent(lstm); + + + lstm.setAttribute("data", categoria); + } + } +} diff --git a/src/java/spring-config.xml b/src/java/spring-config.xml index d7edc71e0..f21cae9f6 100644 --- a/src/java/spring-config.xml +++ b/src/java/spring-config.xml @@ -502,7 +502,8 @@ com.rjconsultores.ventaboletos.entidad.LogAuditoria com.rjconsultores.ventaboletos.entidad.EmbarcadaDispOperador com.rjconsultores.ventaboletos.entidad.AgrupamentoParada - com.rjconsultores.ventaboletos.entidad.EmpresaEmailFlexBus + com.rjconsultores.ventaboletos.entidad.EmpresaEmailFlexBus + com.rjconsultores.ventaboletos.entidad.CategoriaRutaExcecao diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label index 5b611d4d9..a1fa388b8 100644 --- a/web/WEB-INF/i3-label_en.label +++ b/web/WEB-INF/i3-label_en.label @@ -2537,6 +2537,8 @@ editarConfiguracionCategoriaController.lblConfigEmiteSomenteCupomEmbarque.value= editarConfiguracionCategoriaController.lblIndEmiteSomenteCupomEmbarque.value=Emite Somente Cupom de Embarque editarConfiguracionCategoriaController.lblQtdeViasCupomEmbarque.value=Quantidade Vias Cupom de Embarque editarConfiguracionCategoriaController.lblVendaAntecipadaKM.value=Venda Antecipada por KM +editarConfiguracionCategoriaController.validarOpcaoTodasComboLinha = Favor Incluir a opção todas na aba de Linha +editarConfiguracionCategoriaController.MSG.validarTodasComboLinhaSalvar = Existem exceções de linhas, mas não existe a opção todas na aba de linhas. Serão inativadas as exceções, Deseja Continuar ? diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index aa0de9f50..c2b7a0b14 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -2536,6 +2536,7 @@ editarConfiguracionCategoriaController.tabOrgao.labelOrgao = Orgão Concedente editarConfiguracionCategoriaController.tabOrgao.labelOrgaoId = Id editarConfiguracionCategoriaController.tabOrgao.labelNome = Orgão Concedente editarConfiguracionCategoriaController.tabLinha.label = Linha +editarConfiguracionCategoriaController.tabLinhaExcecao.label = Linha Exceção editarConfiguracionCategoriaController.tabLinha.labelRutaId = Id editarConfiguracionCategoriaController.tabLinha.labelNome = Linha editarConfiguracionCategoriaController.btnBorrarOrgao.tooltiptext = Eliminar @@ -2615,6 +2616,9 @@ editarConfiguracionCategoriaController.lblVendaAntecipadaKM.value = Venda Anteci editarConfiguracionCategoriaController.lblQtdeLimiteNaoEmbarque.value = Qtd Limite Não Embarque editarConfiguracionCategoriaController.lblIndClientePcd.value = Cliente PCD editarConfiguracionCategoriaController.permitetrocatransferencia.value = Permite Troca/Transferência +editarConfiguracionCategoriaController.validarOpcaoTodasComboLinha = Favor Incluir a opção todas na aba de Linha +editarConfiguracionCategoriaController.MSG.validarTodasComboLinhaSalvar = Existem exceções de linhas, mas não existe a opção todas na aba de linhas. Serão inativadas as exceções, Deseja Continuar ? + # Detener a pantalla de Pesquisa busquedaCatalogoDeParadaController.window.title = Localidade diff --git a/web/gui/configuraciones_comerciales/editarConfiguracionCategorias.zul b/web/gui/configuraciones_comerciales/editarConfiguracionCategorias.zul index c710ada8f..aab6b745d 100644 --- a/web/gui/configuraciones_comerciales/editarConfiguracionCategorias.zul +++ b/web/gui/configuraciones_comerciales/editarConfiguracionCategorias.zul @@ -45,6 +45,8 @@ label="${c:l('editarConfiguracionCategoriaController.tabOrgao.label')}" /> + @@ -772,6 +774,46 @@ + + + + + + + + +