diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/BusquedaConfRestricaoCanalVentaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/BusquedaConfRestricaoCanalVentaController.java index f10c60d84..ec670a922 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/BusquedaConfRestricaoCanalVentaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/BusquedaConfRestricaoCanalVentaController.java @@ -1,6 +1,7 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional; -import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -15,26 +16,27 @@ import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zul.Combobox; import org.zkoss.zul.Comboitem; +import org.zkoss.zul.Datebox; import org.zkoss.zul.Intbox; import org.zkoss.zul.Paging; import org.zkoss.zul.Textbox; import com.rjconsultores.ventaboletos.entidad.ConfRestricaoCanalVenta; import com.rjconsultores.ventaboletos.entidad.Empresa; -import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; -import com.rjconsultores.ventaboletos.service.EsquemaCorridaService; -import com.rjconsultores.ventaboletos.service.RutaService; import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject; import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper; import com.rjconsultores.ventaboletos.web.utilerias.render.MyComboRutaRenderer; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConfRestricaoCanalVenta; +import com.trg.search.Filter; @Controller("confRestricaoCanalVentaController") @Scope("prototype") @@ -45,22 +47,19 @@ public class BusquedaConfRestricaoCanalVentaController extends MyGenericForwardC private TipoPuntoVentaService tipoPtoVtaService; @Autowired private transient PagedListWrapper plwConfRestricaoCanalVenta; - @Autowired - private RutaService rutaService; private MyListbox confRestricaoCanalVentaList; private Paging pagingConfRestricaoCanalVenta; private List lsTipoPtoVta; - private List lsRuta; + private Datebox dtServicio; + private Datebox feciniciovigencia; + private Datebox fecfinvigencia; + private Combobox cmbRuta; private Combobox cmbOrigen; private Combobox cmbDestino; - private Combobox cmbTipoPtoVta; - private Combobox cmbRuta; private Combobox cmbEmpresa; private Textbox txtDescConf; private Intbox txtServico; private List lsEmpresa; - @Autowired - private EsquemaCorridaService esquemaCorridaService; public List getLsEmpresa() { return lsEmpresa; @@ -78,20 +77,11 @@ public class BusquedaConfRestricaoCanalVentaController extends MyGenericForwardC this.lsTipoPtoVta = lsTipoPtoVta; } - public List getLsRuta() { - return lsRuta; - } - - public void setLsRuta(List lsRuta) { - this.lsRuta = lsRuta; - } @Override public void doAfterCompose(Component comp) throws Exception { lsEmpresa = UsuarioLogado.getUsuarioLogado().getEmpresa(); lsTipoPtoVta = tipoPtoVtaService.obtenerTodos(); - lsRuta = rutaService.buscarRutasPorEmpresas(lsEmpresa); - super.doAfterCompose(comp); cmbRuta.setItemRenderer(new MyComboRutaRenderer()); confRestricaoCanalVentaList.setItemRenderer(new RenderConfRestricaoCanalVenta()); @@ -122,28 +112,22 @@ public class BusquedaConfRestricaoCanalVentaController extends MyGenericForwardC confRestricaoCanalVentaBusqueda.addFilterEqual("corridaId", servicio); } - Comboitem cbiTipoPtoVta = cmbTipoPtoVta.getSelectedItem(); - if (cbiTipoPtoVta != null) { - TipoPuntoVenta tipoPtoVta = (TipoPuntoVenta) cbiTipoPtoVta.getValue(); - confRestricaoCanalVentaBusqueda.addFilterEqual("tipoPuntoVenta", tipoPtoVta); + Comboitem cbiRuta = cmbRuta.getSelectedItem(); + if (cbiRuta != null) { + Ruta ruta = (Ruta) cbiRuta.getValue(); + confRestricaoCanalVentaBusqueda.addFilterEqual("ruta", ruta); } - + Comboitem cbiOrigem = cmbOrigen.getSelectedItem(); if (cbiOrigem != null) { Parada origem = (Parada) cbiOrigem.getValue(); - confRestricaoCanalVentaBusqueda.addFilterEqual("origem", origem); + confRestricaoCanalVentaBusqueda.addFilterEqual("lsConfRestricaoTramo.origem", origem); } Comboitem cbiDestino = cmbDestino.getSelectedItem(); if (cbiDestino != null) { Parada destino = (Parada) cbiDestino.getValue(); - confRestricaoCanalVentaBusqueda.addFilterEqual("destino", destino); - } - - Comboitem cbiRuta = cmbRuta.getSelectedItem(); - if (cbiRuta != null) { - Ruta ruta = (Ruta) cbiRuta.getValue(); - confRestricaoCanalVentaBusqueda.addFilterEqual("ruta", ruta); + confRestricaoCanalVentaBusqueda.addFilterEqual("lsConfRestricaoTramo.destino", destino); } Comboitem cbiEmpresa = cmbEmpresa.getSelectedItem(); @@ -151,8 +135,26 @@ public class BusquedaConfRestricaoCanalVentaController extends MyGenericForwardC Empresa empresa = (Empresa) cbiEmpresa.getValue(); confRestricaoCanalVentaBusqueda.addFilterEqual("empresa", empresa); } + + Date dataServico = dtServicio.getValue(); + if(dataServico!= null) { + confRestricaoCanalVentaBusqueda.addFilterEqual("fecCorrida", dataServico); + } + + if (feciniciovigencia.getValue() != null) { + Calendar dataInicioVigencia = Calendar.getInstance(); + dataInicioVigencia.setTime(DateUtil.inicioFecha(feciniciovigencia.getValue())); + confRestricaoCanalVentaBusqueda.addFilterGreaterOrEqual("feciniciovigencia", dataInicioVigencia.getTime()); + } + + if (fecfinvigencia.getValue() != null) { + Calendar dataFimVigencia = Calendar.getInstance(); + dataFimVigencia.setTime(DateUtil.fimFecha(fecfinvigencia.getValue())); + confRestricaoCanalVentaBusqueda.addFilterLessOrEqual("fecfinvigencia", dataFimVigencia.getTime()); + } confRestricaoCanalVentaBusqueda.addFilterEqual("activo", Boolean.TRUE); + confRestricaoCanalVentaBusqueda.setDistinct(true); plwConfRestricaoCanalVenta.init(confRestricaoCanalVentaBusqueda, confRestricaoCanalVentaList, pagingConfRestricaoCanalVenta); @@ -194,12 +196,4 @@ public class BusquedaConfRestricaoCanalVentaController extends MyGenericForwardC verConfRestricaoCanalVenta(new ConfRestricaoCanalVenta()); } - private List getCorridasIds(List esquemaCorridas){ - List ids = new ArrayList(); - for(int i = 0 ; i < esquemaCorridas.size() ; i ++){ - ids.add((esquemaCorridas.get(i)).getNumCorrida()); - } - return ids; - } - } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConfRestricaoCanalVentaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConfRestricaoCanalVentaController.java index 2cc1d73bd..733251c09 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConfRestricaoCanalVentaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConfRestricaoCanalVentaController.java @@ -13,15 +13,20 @@ import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.event.Event; import org.zkoss.zul.Button; +import org.zkoss.zul.Checkbox; import org.zkoss.zul.Combobox; import org.zkoss.zul.Constraint; import org.zkoss.zul.Datebox; +import org.zkoss.zul.Intbox; +import org.zkoss.zul.ListModelList; import org.zkoss.zul.Messagebox; import org.zkoss.zul.Textbox; +import org.zkoss.zul.Timebox; import com.rjconsultores.ventaboletos.entidad.ConfRestricaoCanalVenta; import com.rjconsultores.ventaboletos.entidad.ConfRestricaoExcecao; import com.rjconsultores.ventaboletos.entidad.ConfRestricaoPtovta; +import com.rjconsultores.ventaboletos.entidad.ConfRestricaoTramo; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; @@ -31,10 +36,12 @@ import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.service.ConfRestricaoCanalVentaService; import com.rjconsultores.ventaboletos.service.ConfRestricaoExcecaoService; import com.rjconsultores.ventaboletos.service.ConfRestricaoPtovtaService; +import com.rjconsultores.ventaboletos.service.ConfRestricaoTramoService; import com.rjconsultores.ventaboletos.service.RutaService; import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService; import com.rjconsultores.ventaboletos.utilerias.ApplicationProperties; import com.rjconsultores.ventaboletos.utilerias.CustomEnum; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxPuntoVenta; @@ -43,6 +50,7 @@ import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; import com.rjconsultores.ventaboletos.web.utilerias.render.MyComboRutaRenderer; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConfRestricaoExcecao; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConfRestricaoPtovta; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConfRestricaoTramo; @Controller("editarConfRestricaoCanalVentaController") @Scope("prototype") @@ -59,11 +67,14 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom private ConfRestricaoExcecaoService confRestricaoExcecaoServide; @Autowired private ConfRestricaoPtovtaService confRestricaoPtovtaService; + @Autowired + private ConfRestricaoTramoService confRestricaoTramoService; private ConfRestricaoCanalVenta confRestricaoCanalVenta; private List lsTipoPtoVta; private List lsRuta; private List lsEmpresa; + private List lsConfRestricaoTramo; private MyListbox confRestricaoCanalVentaList; private MyListbox excecaoDataList; private Button btnApagar; @@ -71,9 +82,20 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom private MyComboboxParada cmbOrigen; private MyComboboxParada cmbDestino; private Combobox cmbRuta; + private Intbox txtServico; private Combobox cmbTipoPtoVta; + private Combobox cmbConfRestricaoTramoPtoVta; + private Combobox cmbConfRestricaoTramoExcecao; private Combobox cmbEmpresa; private Datebox dtExcecaoServicio; + private Timebox timeTempoPermitir; + private Checkbox chkSegunda; + private Checkbox chkTerca; + private Checkbox chkQuarta; + private Checkbox chkQuinta; + private Checkbox chkSexta; + private Checkbox chkSabado; + private Checkbox chkDomingo; private Textbox txtDescConf; @@ -82,6 +104,7 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom private MyComboboxPuntoVenta cmbPuntoVenta; private MyListbox confRestricaoPtovtaDataList; + private MyListbox confRestricaoTramoDataList; public ConfRestricaoCanalVenta getConfRestricaoCanalVenta() { return confRestricaoCanalVenta; @@ -98,7 +121,7 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom public void setLsTipoPtoVta(List lsTipoPtoVta) { this.lsTipoPtoVta = lsTipoPtoVta; } - + @Override public void doAfterCompose(Component comp) throws Exception { @@ -107,19 +130,15 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom lsTipoPtoVta = tipoPtoVtaService.obtenerTodos(); lsEmpresa = UsuarioLogado.getUsuarioLogado().getEmpresa(); - lsRuta = rutaService.buscarRutasPorEmpresas(lsEmpresa); - -// confRestricaoCanalVenta.getEmpresa(); + lsConfRestricaoTramo = new ArrayList(); - super.doAfterCompose(comp); if (!ApplicationProperties.getInstance().isCustomHabilitado(CustomEnum.MOSTRAR_EQUIVALENCIA.getDescricao())) { cmbEmpresa.setConstraint("no empty"); } - cmbRuta.setItemRenderer(new MyComboRutaRenderer()); if (confRestricaoCanalVenta.getConfRestricaoCanalVentaId() == null) { btnApagar.setVisible(Boolean.FALSE); @@ -133,13 +152,24 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom confRestricaoCanalVenta = confRestricaoCanalVentaService.obtenerID(confRestricaoCanalVenta.getConfRestricaoCanalVentaId()); excecaoDataList.setData(confRestricaoCanalVenta.getLsConfRestricaoExcecao()); confRestricaoPtovtaDataList.setData(confRestricaoCanalVenta.getLsConfRestricaoPtovta()); + confRestricaoTramoDataList.setData(confRestricaoCanalVenta.getLsConfRestricaoTramo()); + lsConfRestricaoTramo = confRestricaoCanalVenta.getLsConfRestricaoTramo(); + atualizarCombosDeTramosRestritos(); } - + excecaoDataList.setItemRenderer(new RenderConfRestricaoExcecao()); confRestricaoPtovtaDataList.setItemRenderer(new RenderConfRestricaoPtovta()); + confRestricaoTramoDataList.setItemRenderer(new RenderConfRestricaoTramo()); } + private void atualizarCombosDeTramosRestritos() { + cmbConfRestricaoTramoExcecao.setModel(new ListModelList(lsConfRestricaoTramo)); + cmbConfRestricaoTramoExcecao.setSelectedItem(null); + cmbConfRestricaoTramoPtoVta.setModel(new ListModelList(lsConfRestricaoTramo)); + cmbConfRestricaoTramoExcecao.setSelectedItem(null); + } + public List getLsRuta() { return lsRuta; } @@ -149,6 +179,65 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom } private boolean clone = false; + + public void onClick$btnRemoverConfRestricaoTramo(Event ev) throws InterruptedException { + ConfRestricaoTramo tramo = (ConfRestricaoTramo) confRestricaoTramoDataList.getSelected(); + if (tramo != null) { + //Para evitar erro na hora de excluir registros da lista de um registro copiado + if(tramo.getConfRestricaoTramoId() != null) { + confRestricaoTramoService.borrar(tramo); + } else { + confRestricaoCanalVenta.getLsConfRestricaoTramo().remove(tramo); + lsConfRestricaoTramo.remove(tramo); + } + + confRestricaoTramoDataList.removeItem(tramo); + } else { + Messagebox.show( + Labels.getLabel("editarConfRestricaoCanalVentaController.MSG.selecionarrestricaoPtovta"), + Labels.getLabel("editarConfRestricaoCanalVentaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } + atualizarCombosDeTramosRestritos(); + } + + public void onClick$btnAdicionarConfRestricaoTramo(Event ev) { + cmbOrigen.getValue(true); + cmbDestino.getValue(true); + ConfRestricaoTramo tramo = new ConfRestricaoTramo(); + if(cmbTipoPtoVta.getSelectedItem()!= null) { + tramo.setTipoPuntoVenta((TipoPuntoVenta) cmbTipoPtoVta.getSelectedItem().getValue()); + }else { + tramo.setTipoPuntoVenta(null); + } + + if(cmbOrigen.getSelectedItem()!= null) { + tramo.setOrigem((Parada) cmbOrigen.getSelectedItem().getValue()); + } + if(cmbDestino.getSelectedItem()!= null) { + tramo.setDestino((Parada) cmbDestino.getSelectedItem().getValue()); + } + if(timeTempoPermitir!= null) { + tramo.setTempoPermitir(timeTempoPermitir.getValue()); + } + tramo.setSegunda(chkSegunda.isChecked()); + tramo.setTerca(chkTerca.isChecked()); + tramo.setQuarta(chkQuarta.isChecked()); + tramo.setQuinta(chkQuinta.isChecked()); + tramo.setSexta(chkSexta.isChecked()); + tramo.setSabado(chkSabado.isChecked()); + tramo.setDomingo(chkDomingo.isChecked()); + + tramo.setConfRestricaoCanalVenta(confRestricaoCanalVenta); + tramo.setActivo(Boolean.TRUE); + + if(!lsConfRestricaoTramo.contains(tramo)) { + lsConfRestricaoTramo.add(tramo); + confRestricaoTramoDataList.addItemNovo(tramo); + confRestricaoCanalVenta.getLsConfRestricaoTramo().add(tramo); + atualizarCombosDeTramosRestritos(); + } + } public void onClick$btnCopiar(Event ev) throws CloneNotSupportedException, InterruptedException { @@ -183,21 +272,18 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom excecaoDataList.addItemNovo(ex); } - /*Messagebox.show(Labels.getLabel("editarConfRestricaoCanalVentaController.MSG.cloneOK"), - Labels.getLabel("editarConfRestricaoCanalVentaController.window.title"), - Messagebox.OK, Messagebox.INFORMATION);*/ } } public void onClick$btnSalvar(Event ev) throws InterruptedException { + if( cmbRuta.getSelectedItem() == null && txtServico.getValue() == null) { + Messagebox.show( + Labels.getLabel("editarConfRestricaoCanalVentaController.MSG.servicoOuRutaObrigatorios"), + Labels.getLabel("editarConfRestricaoCanalVentaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return; + } cmbEmpresa.getValue(); - cmbDestino.getValue(true); // chamar esse método senão, utilizando o mouse tem que clicar 2x para o getSelectedItem() retornar o item selecionado - cmbOrigen.getValue(true); - Parada origen = cmbOrigen.getSelectedItem() == null ? null : ((Parada) cmbOrigen.getSelectedItem().getValue()); - Parada destino = cmbDestino.getSelectedItem() == null ? null : ((Parada) cmbDestino.getSelectedItem().getValue()); - - Integer numSecuenciaDestino = -1; - Integer numSecuenciaOrigen = -1; Date dataDe = feciniciovigencia.getValue(); Date dataAte = fecfinvigencia.getValue(); @@ -211,61 +297,24 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom return; } - if (confRestricaoCanalVenta.getRuta() != null) { - - if (origen != null && origen.getParadaId() != -1) { - numSecuenciaOrigen = rutaService.getNumSecuenciaOrigen(confRestricaoCanalVenta.getRuta().getRutaId(), origen.getParadaId()); - if (numSecuenciaOrigen == -1) { // não existe origen - Messagebox.show( - Labels.getLabel("editarConfRestricaoCanalVentaController.MSG.OrigenInvalida"), - Labels.getLabel("editarConfRestricaoCanalVentaController.window.title"), - Messagebox.OK, Messagebox.INFORMATION); - return; - } - } - - if (destino != null && destino.getParadaId() != -1) { - numSecuenciaDestino = rutaService.getNumSecuenciaDestino(confRestricaoCanalVenta.getRuta().getRutaId(), destino.getParadaId()); - if (numSecuenciaDestino == -1) { - Messagebox.show( - Labels.getLabel("editarConfRestricaoCanalVentaController.MSG.destinoInvalido"), - Labels.getLabel("editarConfRestricaoCanalVentaController.window.title"), - Messagebox.OK, Messagebox.INFORMATION); - return; - } - } - - if (numSecuenciaOrigen != -1 && numSecuenciaDestino != -1) { - if (numSecuenciaOrigen > numSecuenciaDestino) { - Messagebox.show( - Labels.getLabel("editarConfRestricaoCanalVentaController.MSG.sentidoInvalido"), - Labels.getLabel("editarConfRestricaoCanalVentaController.window.title"), - Messagebox.OK, Messagebox.INFORMATION); - return; - } + Parada origen = cmbOrigen.getSelectedItem() == null ? null : ((Parada) cmbOrigen.getSelectedItem().getValue()); + Parada destino = cmbDestino.getSelectedItem() == null ? null : ((Parada) cmbDestino.getSelectedItem().getValue()); + for (ConfRestricaoTramo confRestricaoTramo : lsConfRestricaoTramo) { + if(validaOrigemEDestinoDaRuta(confRestricaoTramo.getOrigem(), confRestricaoTramo.getDestino())) { + return; } } try { - // Isso se faz necessário quando o usuário "deseleciona" uma ruta. Essa alteração não estava afetando o bean - if (cmbRuta.getSelectedItem() == null) { - confRestricaoCanalVenta.setRuta(null); - cmbOrigen.getValue(true); - cmbDestino.getValue(true); + if(confRestricaoCanalVenta.getLsConfRestricaoTramo().isEmpty()) { + Messagebox.show( + Labels.getLabel("editarConfRestricaoCanalVentaController.MSG.semTramosSelecionados"), + Labels.getLabel("editarConfRestricaoCanalVentaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return; + }else { + mantendoACompatibilidade(); } - if (origen == null) { - confRestricaoCanalVenta.setOrigem(null); - } else { - confRestricaoCanalVenta.setOrigem(origen); - } - if (destino == null) { - confRestricaoCanalVenta.setDestino(null); - } else { - confRestricaoCanalVenta.setDestino(destino); - } - if (cmbTipoPtoVta.getSelectedItem() == null) { - confRestricaoCanalVenta.setTipoPuntoVenta(null); - } if (!confRestricaoCanalVenta.getLsConfRestricaoPtovta().isEmpty()) { for (ConfRestricaoPtovta cre : confRestricaoCanalVenta.getLsConfRestricaoPtovta()) { @@ -292,13 +341,70 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom Messagebox.OK, Messagebox.EXCLAMATION); } } + + /** + * Método para manter a compatibilidade com o funcionamento anterior. + * TODO Deve ser removido assim que esta versão estiver em produção em todos os clientes. + * + */ + private void mantendoACompatibilidade() { + confRestricaoCanalVenta.setTipoPuntoVenta(confRestricaoCanalVenta.getLsConfRestricaoTramo().get(0).getTipoPuntoVenta()); + confRestricaoCanalVenta.setTempoPermitir(confRestricaoCanalVenta.getLsConfRestricaoTramo().get(0).getTempoPermitir()); + confRestricaoCanalVenta.setSegunda(confRestricaoCanalVenta.getLsConfRestricaoTramo().get(0).getSegunda()); + confRestricaoCanalVenta.setTerca(confRestricaoCanalVenta.getLsConfRestricaoTramo().get(0).getTerca()); + confRestricaoCanalVenta.setQuarta(confRestricaoCanalVenta.getLsConfRestricaoTramo().get(0).getQuarta()); + confRestricaoCanalVenta.setQuinta(confRestricaoCanalVenta.getLsConfRestricaoTramo().get(0).getQuinta()); + confRestricaoCanalVenta.setSexta(confRestricaoCanalVenta.getLsConfRestricaoTramo().get(0).getSexta()); + confRestricaoCanalVenta.setSabado(confRestricaoCanalVenta.getLsConfRestricaoTramo().get(0).getSabado()); + confRestricaoCanalVenta.setDomingo(confRestricaoCanalVenta.getLsConfRestricaoTramo().get(0).getDomingo()); + confRestricaoCanalVenta.setOrigem(confRestricaoCanalVenta.getLsConfRestricaoTramo().get(0).getOrigem()); + confRestricaoCanalVenta.setDestino(confRestricaoCanalVenta.getLsConfRestricaoTramo().get(0).getDestino()); + } + + private Boolean validaOrigemEDestinoDaRuta(Parada origen, Parada destino) throws InterruptedException { + Integer numSecuenciaDestino = -1; + Integer numSecuenciaOrigen = -1; + + + if (confRestricaoCanalVenta.getRuta() != null) { + + if (origen != null && origen.getParadaId() != -1) { + numSecuenciaOrigen = rutaService.getNumSecuenciaOrigen(confRestricaoCanalVenta.getRuta().getRutaId(), origen.getParadaId()); + if (numSecuenciaOrigen == -1) { + Messagebox.show( + Labels.getLabel("editarConfRestricaoCanalVentaController.MSG.OrigenInvalida"), + Labels.getLabel("editarConfRestricaoCanalVentaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return true; + } + } + + if (destino != null && destino.getParadaId() != -1) { + numSecuenciaDestino = rutaService.getNumSecuenciaDestino(confRestricaoCanalVenta.getRuta().getRutaId(), destino.getParadaId()); + if (numSecuenciaDestino == -1) { + Messagebox.show( + Labels.getLabel("editarConfRestricaoCanalVentaController.MSG.destinoInvalido"), + Labels.getLabel("editarConfRestricaoCanalVentaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return true; + } + } + + if (numSecuenciaOrigen != -1 && numSecuenciaDestino != -1) { + if (numSecuenciaOrigen > numSecuenciaDestino) { + Messagebox.show( + Labels.getLabel("editarConfRestricaoCanalVentaController.MSG.sentidoInvalido"), + Labels.getLabel("editarConfRestricaoCanalVentaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return true; + } + } + } + return false; + } private void zerarHoraVigenciaInicial(){ - Calendar calIni = Calendar.getInstance(); - calIni.setTime(confRestricaoCanalVenta.getFeciniciovigencia()); - calIni.set(Calendar.HOUR, 0); - - confRestricaoCanalVenta.setFeciniciovigencia(calIni.getTime()); + confRestricaoCanalVenta.setFeciniciovigencia(DateUtil.inicioFecha(confRestricaoCanalVenta.getFeciniciovigencia())); } public void onClick$btnApagar(Event ev) throws InterruptedException { @@ -323,26 +429,22 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom public void onClick$btnAddRestricaoPtovta(Event ev) throws InterruptedException { - if (cmbPuntoVenta.getSelectedItem() != null) { + if (cmbPuntoVenta.getSelectedItem() != null && cmbConfRestricaoTramoPtoVta.getSelectedItem()!= null) { + ConfRestricaoTramo tramoRestrito = (ConfRestricaoTramo) cmbConfRestricaoTramoPtoVta.getSelectedItem().getValue(); PuntoVenta pv = (PuntoVenta) cmbPuntoVenta.getSelectedItem().getValue(); ConfRestricaoPtovta ptovta = new ConfRestricaoPtovta(); ptovta.setPuntoVenta(pv); ptovta.setConfRestricaoCanalVenta(confRestricaoCanalVenta); ptovta.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); ptovta.setFecmodif(Calendar.getInstance().getTime()); + ptovta.setConfRestricaoTramo(tramoRestrito); ptovta.setActivo(Boolean.TRUE); if (confRestricaoCanalVenta.getLsConfRestricaoPtovta() == null) { confRestricaoCanalVenta.setLsConfRestricaoPtovta(new ArrayList()); } - boolean ptovtaJaCadastrado = false; - for (ConfRestricaoPtovta pt : confRestricaoCanalVenta.getLsConfRestricaoPtovta()){ - if (pt.getPuntoVenta().equals(pv)){ - ptovtaJaCadastrado = true; - break; - } - } + boolean ptovtaJaCadastrado = confRestricaoCanalVenta.getLsConfRestricaoPtovta().contains(ptovta); if (!ptovtaJaCadastrado){ confRestricaoCanalVenta.getLsConfRestricaoPtovta().add(ptovta); @@ -384,20 +486,24 @@ public class EditarConfRestricaoCanalVentaController extends MyGenericForwardCom public void onClick$btnAdicionarExcecao(Event ev) throws InterruptedException { Date dataExcecao = dtExcecaoServicio.getValue(); - if (dataExcecao != null) { + if (dataExcecao != null && cmbConfRestricaoTramoExcecao.getSelectedItem()!= null) { + ConfRestricaoTramo tramoRestrito = (ConfRestricaoTramo) cmbConfRestricaoTramoExcecao.getSelectedItem().getValue(); ConfRestricaoExcecao confRestricaoExcecao = new ConfRestricaoExcecao(); confRestricaoExcecao.setFecExcecao(dataExcecao); confRestricaoExcecao.setConfRestricaoCanalVenta(confRestricaoCanalVenta); confRestricaoExcecao.setActivo(Boolean.TRUE); confRestricaoExcecao.setFecmodif(Calendar.getInstance().getTime()); confRestricaoExcecao.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + confRestricaoExcecao.setConfRestricaoTramo(tramoRestrito); if (confRestricaoCanalVenta.getLsConfRestricaoExcecao() == null) { confRestricaoCanalVenta.setLsConfRestricaoExcecao(new ArrayList()); } - confRestricaoCanalVenta.getLsConfRestricaoExcecao().add(confRestricaoExcecao); + if(!confRestricaoCanalVenta.getLsConfRestricaoExcecao().contains(confRestricaoExcecao)) { + confRestricaoCanalVenta.getLsConfRestricaoExcecao().add(confRestricaoExcecao); + excecaoDataList.addItemNovo(confRestricaoExcecao); + } - excecaoDataList.addItemNovo(confRestricaoExcecao); dtExcecaoServicio.setValue(null); } else { Messagebox.show( diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyComboboxRuta.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyComboboxRuta.java new file mode 100644 index 000000000..f7207900a --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyComboboxRuta.java @@ -0,0 +1,148 @@ +package com.rjconsultores.ventaboletos.web.utilerias; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +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.Parada; +import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.service.RutaService; + +public class MyComboboxRuta extends Combobox { + + private static final String SEPARADOR = " - "; + /** + * + */ + private static final long serialVersionUID = 1L; + private static Logger log = Logger.getLogger(MyComboboxParada.class); + private final static int minLength = 2; + + @Autowired + private RutaService rutaService; + private List rutas; + private Integer indiceSelected; + private Ruta initialValue; + + public MyComboboxRuta() { + super(); + + rutas = new ArrayList(); + + this.setAutodrop(false); + this.setAutocomplete(false); + + this.addEventListener("onOK", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + rutaService = (RutaService) SpringUtil.getBean("rutaService"); + String stringConsulta = MyComboboxRuta.this.getText().toUpperCase(); + if (stringConsulta.length() < MyComboboxRuta.minLength) { + return; + } + if (!stringConsulta.isEmpty()) { + rutas = rutaService.buscaLikeComboBox(stringConsulta); + + BindingListModel listModelRutas = new BindingListModelList(rutas, true); + MyComboboxRuta.this.setModel(listModelRutas); + setIndiceSelected(null); + if (!rutas.isEmpty()) { + setIndiceSelected(0); + } + + MyComboboxRuta.this.open(); + } else { + rutas.clear(); + + BindingListModel listModelParada = new BindingListModelList(rutas, true); + MyComboboxRuta.this.setModel(listModelParada); + } + } + }); + + this.addEventListener("onChanging", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + InputEvent ev = (InputEvent) event; + String stringConsulta = ev.getValue(); + if (stringConsulta.length() < 2) { + rutas.clear(); + + BindingListModel listModelRutas = new BindingListModelList(rutas, true); + MyComboboxRuta.this.setModel(listModelRutas); + + MyComboboxRuta.this.close(); + } + } + }); + } + + public Ruta getInitialValue() { + return initialValue; + } + + public void setInitialValue(Ruta initialValue) { + if (initialValue == null) { + return; + } + List ls = new ArrayList(); + ls.add(initialValue); + + this.setModel(new BindingListModelList(ls, false)); + this.setText(retornaDescricaoRuta(initialValue)); + } + + private String retornaDescricaoRuta(Ruta ruta) { + return ruta.getNumRuta().concat(SEPARADOR).concat(ruta.getDescruta()) + .concat(SEPARADOR).concat(ruta.getClaseServicio().getDescclase()); + } + + public void setComboItemByRuta(Ruta ruta) { + + List ls = new ArrayList(); + ls.add(ruta); + + this.setModel(new BindingListModelList(ls, false)); + this.setText(retornaDescricaoRuta(ruta)); + } + + 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 Integer getIndiceSelected() { + return indiceSelected; + } + + public void setIndiceSelected(Integer indiceSelected) { + this.indiceSelected = indiceSelected; + } + + public T getSelecteObject(Class cType) { + if (this.getSelectedItem() != null) { + return cType.cast(this.getSelectedItem().getValue()); + } + return null; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/MyComboRutaRenderer.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/MyComboRutaRenderer.java index d631621ed..83cad0d2c 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/MyComboRutaRenderer.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/MyComboRutaRenderer.java @@ -10,13 +10,20 @@ public class MyComboRutaRenderer implements ComboitemRenderer { @Override public void render(Comboitem item, Object data) throws Exception { Ruta ruta = (Ruta) data; - String descricao; - if (ruta.getRutaId() != -1){ - descricao = ruta.getDescruta() + " Id:" + ruta.getRutaId() + " Sentido:" + (ruta.getIndSentidoIda() ? Labels.getLabel("editarCatalogoDeRutaController.radIda.value") : Labels.getLabel("editarCatalogoDeRutaController.radVolta.value")) + " Número:" + ruta.getNumRuta(); - } else { - descricao = ruta.getDescruta() + " Id:" + ruta.getRutaId(); - } - item.setLabel(descricao); + item.setLabel(buscarDescricaoComboRuta(ruta)); item.setValue(data); } + + public static String buscarDescricaoComboRuta(Ruta ruta) { + return buscarInformacaoTratada(ruta.getRutaId().toString()) + + buscarInformacaoTratada(ruta.getNumRuta()) + + buscarInformacaoTratada(ruta.getDescruta()) + + buscarInformacaoTratada(ruta.getClaseServicio()!= null ? ruta.getClaseServicio().getDescclase(): null) + + (ruta.getIndSentidoIda()!= null ? + (ruta.getIndSentidoIda() ? Labels.getLabel("editarCatalogoDeRutaController.radIda.value") : Labels.getLabel("editarCatalogoDeRutaController.radVolta.value")):""); + } + + public static String buscarInformacaoTratada(String info) { + return info!= null ? info + " - ": ""; + } } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoCanalVenta.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoCanalVenta.java index 97d3646cd..fc2766548 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoCanalVenta.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoCanalVenta.java @@ -19,26 +19,30 @@ public class RenderConfRestricaoCanalVenta implements ListitemRenderer { lc = new Listcell(confRestricaoCanalVenta.getConfRestricaoCanalVentaId().toString() == null ? "-" : confRestricaoCanalVenta.getConfRestricaoCanalVentaId().toString()); lc.setParent(lstm); + + lc = new Listcell(confRestricaoCanalVenta.getRuta() == null ? "-" : MyComboRutaRenderer.buscarDescricaoComboRuta(confRestricaoCanalVenta.getRuta())); + lc.setParent(lstm); lc = new Listcell(confRestricaoCanalVenta.getDescConfRestricaoCanalVenta() == null ? "-" : confRestricaoCanalVenta.getDescConfRestricaoCanalVenta()); lc.setParent(lstm); - lc = new Listcell(confRestricaoCanalVenta.getTipoPuntoVenta() == null ? "-" : confRestricaoCanalVenta.getTipoPuntoVenta().getDesctipo()); - lc.setParent(lstm); - - lc = new Listcell(confRestricaoCanalVenta.getOrigem() == null ? "-" : confRestricaoCanalVenta.getOrigem().getDescparada()); - lc.setParent(lstm); - - lc = new Listcell(confRestricaoCanalVenta.getDestino() == null ? "-" : confRestricaoCanalVenta.getDestino().getDescparada()); - lc.setParent(lstm); - lc = new Listcell(confRestricaoCanalVenta.getCorridaId() == null ? "-" : confRestricaoCanalVenta.getCorridaId().toString()); lc.setParent(lstm); lc = new Listcell(confRestricaoCanalVenta.getFecCorrida() == null ? "-" : sdf.format(confRestricaoCanalVenta.getFecCorrida())); lc.setParent(lstm); + + lc = new Listcell(buscarDescricaoVigencia(confRestricaoCanalVenta)); + lc.setParent(lstm); lstm.setAttribute("data", confRestricaoCanalVenta); } + private String buscarDescricaoVigencia(ConfRestricaoCanalVenta confRestricaoCanalVenta) { + if(confRestricaoCanalVenta.getFeciniciovigencia()!= null || confRestricaoCanalVenta.getFecfinvigencia()!= null) { + return "De "+ sdf.format(confRestricaoCanalVenta.getFeciniciovigencia()) + " Até " + sdf.format(confRestricaoCanalVenta.getFecfinvigencia()); + } + return " - "; + } + } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoExcecao.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoExcecao.java index a797c0754..ecd84e1ae 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoExcecao.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoExcecao.java @@ -15,7 +15,10 @@ public class RenderConfRestricaoExcecao implements ListitemRenderer { public void render(Listitem lstm, Object o) throws Exception { ConfRestricaoExcecao confRestricaoExcecao = (ConfRestricaoExcecao) o; - Listcell lc = new Listcell(confRestricaoExcecao.getFecExcecao() == null ? "-" : sdf.format(confRestricaoExcecao.getFecExcecao())); + Listcell lc = new Listcell(confRestricaoExcecao.getConfRestricaoTramo() == null ? "-" : confRestricaoExcecao.getConfRestricaoTramo().toString()); + lc.setParent(lstm); + + lc = new Listcell(confRestricaoExcecao.getFecExcecao() == null ? "-" : sdf.format(confRestricaoExcecao.getFecExcecao())); lc.setParent(lstm); lstm.setAttribute("data", confRestricaoExcecao); diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoPtovta.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoPtovta.java index f75c2d111..83ff5ebdf 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoPtovta.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoPtovta.java @@ -11,7 +11,10 @@ public class RenderConfRestricaoPtovta implements ListitemRenderer { public void render(Listitem lstm, Object o) throws Exception { ConfRestricaoPtovta rPtovta = (ConfRestricaoPtovta) o; - Listcell lc = new Listcell(rPtovta.getPuntoVenta().getNombpuntoventa()); + Listcell lc = new Listcell(rPtovta.getConfRestricaoTramo() == null ? "-" : rPtovta.getConfRestricaoTramo().toString()); + lc.setParent(lstm); + + lc = new Listcell(rPtovta.getPuntoVenta().getNombpuntoventa()); lc.setParent(lstm); lstm.setAttribute("data", rPtovta); diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoTramo.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoTramo.java new file mode 100644 index 000000000..991ecdc34 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConfRestricaoTramo.java @@ -0,0 +1,53 @@ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zul.Checkbox; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.ConfRestricaoPtovta; +import com.rjconsultores.ventaboletos.entidad.ConfRestricaoTramo; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; + +public class RenderConfRestricaoTramo implements ListitemRenderer { + + public void render(Listitem lstm, Object o) throws Exception { + ConfRestricaoTramo confTramos = (ConfRestricaoTramo) o; + + Listcell lc = new Listcell(confTramos.getConfRestricaoTramoId()== null ?" - " : confTramos.getConfRestricaoTramoId().toString()); + lc.setParent(lstm); + + lc = new Listcell(confTramos.getTipoPuntoVenta()== null ?" - " : confTramos.getTipoPuntoVenta().getDesctipo()); + lc.setParent(lstm); + + lc = new Listcell(confTramos.getOrigem()== null ?" - " : confTramos.getOrigem().getDescparada()); + lc.setParent(lstm); + + lc = new Listcell(confTramos.getDestino()== null ?" - " : confTramos.getDestino().getDescparada()); + lc.setParent(lstm); + + lc = new Listcell(confTramos.getTempoPermitir()== null ?" - " : DateUtil.getStringDate(confTramos.getTempoPermitir(),DateUtil.HHmm)); + lc.setParent(lstm); + + lc = new Listcell(); + + criaCheckBoxDiaDaSemana(lc, confTramos.getSegunda()); + criaCheckBoxDiaDaSemana(lc, confTramos.getTerca()); + criaCheckBoxDiaDaSemana(lc, confTramos.getQuarta()); + criaCheckBoxDiaDaSemana(lc, confTramos.getQuinta()); + criaCheckBoxDiaDaSemana(lc, confTramos.getSexta()); + criaCheckBoxDiaDaSemana(lc, confTramos.getSabado()); + criaCheckBoxDiaDaSemana(lc, confTramos.getDomingo()); + + lc.setParent(lstm); + + lstm.setAttribute("data", confTramos); + } + + private void criaCheckBoxDiaDaSemana(Listcell lc, Boolean diaDaSemana) { + Checkbox checkbox = new Checkbox(); + checkbox.setChecked(diaDaSemana!= null && diaDaSemana); + checkbox.setDisabled(true); + lc.appendChild(checkbox); + } +} diff --git a/src/java/spring-config.xml b/src/java/spring-config.xml index 50605b63c..fba78735f 100644 --- a/src/java/spring-config.xml +++ b/src/java/spring-config.xml @@ -46,6 +46,8 @@ com.rjconsultores.ventaboletos.entidad.AlertaCtrl com.rjconsultores.ventaboletos.entidad.ConfRestricaoExcecao + com.rjconsultores.ventaboletos.entidad.ConfRestricaoTramo + com.rjconsultores.ventaboletos.entidad.AliasServico com.rjconsultores.ventaboletos.entidad.Autobus com.rjconsultores.ventaboletos.entidad.Autorizacion @@ -396,7 +398,6 @@ com.rjconsultores.ventaboletos.entidad.OCDPtoVtaParam - com.rjconsultores.ventaboletos.entidad.FiscalImpressora com.rjconsultores.ventaboletos.entidad.FiscalImpressoraEstado com.rjconsultores.ventaboletos.entidad.FechamentoParamgeral @@ -548,17 +549,6 @@ - - - - - - - - - - - diff --git a/web/gui/esquema_operacional/busquedaConfRestricaoCanalVenta.zul b/web/gui/esquema_operacional/busquedaConfRestricaoCanalVenta.zul index 8ba6bb47b..06fcb1b5f 100644 --- a/web/gui/esquema_operacional/busquedaConfRestricaoCanalVenta.zul +++ b/web/gui/esquema_operacional/busquedaConfRestricaoCanalVenta.zul @@ -9,7 +9,7 @@ title="${c:l('confRestricaoCanalVentaController.window.title')}" apply="${confRestricaoCanalVentaController}" contentStyle="overflow:auto" height="550px" width="950px" - border="normal"> + border="normal" xmlns:h="http://www.w3.org/1999/xhtml">