From a335f31b1fbc1645429ac8f60f3ca7c4812a5f60 Mon Sep 17 00:00:00 2001 From: valdir Date: Mon, 8 Mar 2021 18:27:14 +0000 Subject: [PATCH] =?UTF-8?q?0021537:=20FlexBus=20-=20ADM=20e=20Tela=20de=20?= =?UTF-8?q?Configura=C3=A7=C3=A3o=20bug#21537=20dev:=20qua:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@105693 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../utilitarios/IndStatusCorrida.java | 9 + .../catalogos/EditarEmpresaController.java | 92 +++- .../EditarCorridaController.java | 32 +- .../BuqueCorridaFlexBusController.java | 376 ++++++++++++++++ .../EditarCorridaFlexBusController.java | 422 ++++++++++++++++++ .../ItemMenuManutencaoFlexBus.java | 26 ++ .../esquemaoperacional/SubMenuFlexBus.java | 11 + .../utilerias/menu/menu_original.properties | 2 + .../render/RenderCorridaFlexBus.java | 95 ++++ src/java/spring-config.xml | 3 +- web/WEB-INF/i3-label_es_MX.label | 27 ++ web/WEB-INF/i3-label_pt_BR.label | 28 ++ web/gui/catalogos/editarEmpresa.zul | 96 +++- web/gui/catalogos/editarPuntoVenta.zul | 7 +- web/gui/esquema_operacional/editarCorrida.zul | 39 ++ .../flexbus/busqueCorridaFlexBus.zul | 145 ++++++ .../flexbus/editarCorridaFlexBus.zul | 130 ++++++ 17 files changed, 1534 insertions(+), 6 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/flexbus/BuqueCorridaFlexBusController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/flexbus/EditarCorridaFlexBusController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/esquemaoperacional/ItemMenuManutencaoFlexBus.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/esquemaoperacional/SubMenuFlexBus.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderCorridaFlexBus.java create mode 100644 web/gui/esquema_operacional/flexbus/busqueCorridaFlexBus.zul create mode 100644 web/gui/esquema_operacional/flexbus/editarCorridaFlexBus.zul diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/IndStatusCorrida.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/IndStatusCorrida.java index 122908a1f..fe091f95a 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/IndStatusCorrida.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/IndStatusCorrida.java @@ -13,4 +13,13 @@ public enum IndStatusCorrida { public String getValue() { return value; } + + public static IndStatusCorrida buscarPorStatus(String valor) { + for (IndStatusCorrida status : IndStatusCorrida.values()) { + if (status.getValue().equalsIgnoreCase(valor)) { + return status; + } + } + return null; + } } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarEmpresaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarEmpresaController.java index a7829b6ad..621575869 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarEmpresaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarEmpresaController.java @@ -51,6 +51,7 @@ import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.EmpresaContaBancaria; import com.rjconsultores.ventaboletos.entidad.EmpresaEmail; import com.rjconsultores.ventaboletos.entidad.EmpresaEmailConfig; +import com.rjconsultores.ventaboletos.entidad.EmpresaEmailFlexBus; import com.rjconsultores.ventaboletos.entidad.EmpresaImposto; import com.rjconsultores.ventaboletos.entidad.Estado; import com.rjconsultores.ventaboletos.entidad.FormaPago; @@ -63,6 +64,7 @@ import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.service.CategoriaService; import com.rjconsultores.ventaboletos.service.CiudadService; import com.rjconsultores.ventaboletos.service.EmpresaEmailConfigService; +import com.rjconsultores.ventaboletos.service.EmpresaEmailFlexBusService; import com.rjconsultores.ventaboletos.service.EmpresaEmailService; import com.rjconsultores.ventaboletos.service.EmpresaImpostoService; import com.rjconsultores.ventaboletos.service.EmpresaService; @@ -117,10 +119,14 @@ public class EditarEmpresaController extends MyGenericForwardComposer { private EmpresaEmailService empresaEmailService; @Autowired private EmpresaEmailConfigService empresaEmailConfigService; + + @Autowired + private EmpresaEmailFlexBusService empresaEmailFlexBusService; private Empresa empresa; private EmpresaEmail empresaEmail; private EmpresaEmailConfig empresaEmailConfig; + private EmpresaEmailFlexBus empresaEmailFlexBus; private MyListbox empresaList; private MyTextbox txtNome; private MyTextbox txtCNPJ; @@ -141,6 +147,20 @@ public class EditarEmpresaController extends MyGenericForwardComposer { private Checkbox chkAutenticacao; private MyTextbox txtCodContPrevidencia; + //FlexBus + private Checkbox chkAutenticacaoFlexBus; + private Textbox textSenhaEmailFlexBus; + private Textbox textSMTPHostFlexBus; + private Textbox textSMTPPortaFlexBus; + private Textbox textEmailDeFlexBus; + private Textbox textDestinatarioFlexBus; + private Textbox textEmailCopiaOcultaFlexBus; + private Textbox textAssuntoFlexBus; + private Textbox textAssuntoFiscalFlexBus; + private Textbox textEmailFlexBus; + private CKeditor messageConteudoEmailFlexBus; + private CKeditor messageCupomEmbarqueFlexBus; + private Radio rdgFechaVenta; private Radio rdgFechaSalida; private Radio rdgRestringeZSim; @@ -323,6 +343,10 @@ public class EditarEmpresaController extends MyGenericForwardComposer { empresaEmail = empresaEmailService.buscarPorEmpresa(empresa); empresaEmailConfig = empresaEmailConfigService.buscarPorEmpresa(empresa); } + + if (empresa != null && empresa.getEmpresaId() != null) { + empresaEmailFlexBus = empresaEmailFlexBusService.buscarPorEmpresa(empresa); + } super.doAfterCompose(comp); @@ -344,13 +368,24 @@ public class EditarEmpresaController extends MyGenericForwardComposer { chkAutenticacao.setChecked(false); textEmail.setDisabled(true); textSenhaEmail.setDisabled(true); - } } else { chkAutenticacao.setChecked(true); } + if (empresaEmailFlexBus != null) { + if(empresaEmailFlexBus.getIndAutenticacao()){ + chkAutenticacaoFlexBus.setChecked(true); + }else{ + chkAutenticacaoFlexBus.setChecked(false); + textEmailFlexBus.setDisabled(true); + textSenhaEmailFlexBus.setDisabled(true); + } + } else { + chkAutenticacaoFlexBus.setChecked(true); + } + if (empresa.getIndfechatarifa() == null) { rdgFechaSalida.setChecked(Boolean.TRUE); } else if (empresa.getIndfechatarifa()) { @@ -800,6 +835,17 @@ public class EditarEmpresaController extends MyGenericForwardComposer { empresaService.suscribirActualizacion(empresa); empresaList.updateItem(empresa); + + //TODO: Criar validacao se o Flexbus esta liberado para a empresa + if (empresaEmailFlexBus == null) { + empresaEmailFlexBus = new EmpresaEmailFlexBus(); + empresaEmailFlexBus.setEmpresa(empresa); + preencheInformacoesEmpresaEmailFlexBus(); + empresaEmailFlexBus = empresaEmailFlexBusService.suscribir(empresaEmailFlexBus); + } else { + preencheInformacoesEmpresaEmailFlexBus(); + empresaEmailFlexBusService.actualizacion(empresaEmailFlexBus); + } if (empresaEmail == null) { empresaEmail = new EmpresaEmail(); @@ -853,6 +899,18 @@ public class EditarEmpresaController extends MyGenericForwardComposer { empresaEmail.setTextoEmailFiscal(messageConteudoEmailFiscal.getValue()); } + private void preencheInformacoesEmpresaEmailFlexBus() { + empresaEmailFlexBus.setEmailDe(textEmailDeFlexBus.getValue()); + empresaEmailFlexBus.setAssunto(textAssuntoFlexBus.getValue()); + empresaEmailFlexBus.setTextoEmail(messageConteudoEmailFlexBus.getValue()); + empresaEmailFlexBus.setSmtpEmail(textEmailFlexBus.getValue()); + empresaEmailFlexBus.setSenha(textSenhaEmailFlexBus.getValue()); + empresaEmailFlexBus.setSmtp(textSMTPHostFlexBus.getValue()); + empresaEmailFlexBus.setSmtpPorta(textSMTPPortaFlexBus.getValue()); + empresaEmailFlexBus.setIndAutenticacao(chkAutenticacaoFlexBus.isChecked()); + } + + private boolean validarEmail() { if (txtEmail.getText() == null || txtEmail.getText().isEmpty()) { return true; @@ -951,6 +1009,22 @@ public class EditarEmpresaController extends MyGenericForwardComposer { Labels.getLabel("viewTestEmailController.window.title"), args, MODAL); } + +public void onClick$btnTestEmailFlexBus(Event ev) throws InterruptedException { + Map args = new HashMap(); + args.put("empresa", empresa); + args.put("isAutenticacao", chkAutenticacaoFlexBus.isChecked()); + args.put("emailSMTP", textEmailFlexBus.getValue()); + args.put("senhaEmail", textSenhaEmailFlexBus.getValue()); + args.put("SMTPHost", textSMTPHostFlexBus.getValue()); + args.put("SMTPPorta", textSMTPPortaFlexBus.getValue()); + args.put("emailDe", textEmailDeFlexBus.getValue()); + args.put("emailCopiaOculta", textEmailCopiaOcultaFlexBus.getValue()); + args.put("destinatario", textDestinatarioFlexBus.getValue()); + + openWindow("/gui/catalogos/viewTestEmail.zul", + Labels.getLabel("viewTestEmailController.window.title"), args, MODAL); + } public void onChange$cmbEstado(Event ev) { Comboitem cbiEstado = cmbEstado.getSelectedItem(); @@ -1917,4 +1991,20 @@ public class EditarEmpresaController extends MyGenericForwardComposer { return true; } + + public EmpresaEmailFlexBusService getEmpresaEmailFlexBusService() { + return empresaEmailFlexBusService; + } + + public void setEmpresaEmailFlexBusService(EmpresaEmailFlexBusService empresaEmailFlexBusService) { + this.empresaEmailFlexBusService = empresaEmailFlexBusService; + } + + public EmpresaEmailFlexBus getEmpresaEmailFlexBus() { + return empresaEmailFlexBus; + } + + public void setEmpresaEmailFlexBus(EmpresaEmailFlexBus empresaEmailFlexBus) { + this.empresaEmailFlexBus = empresaEmailFlexBus; + } } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java index 7006a7566..dc462fc1e 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java @@ -176,8 +176,6 @@ public class EditarCorridaController extends MyGenericForwardComposer { private Combobox cmbIndGeneraFeriado; private Combobox cmbEmbarqueDesembarque; private Button btnAsientos; - private Button btnAdicionarTramo; - private Button btnRemoverTramo; private Timebox horasalida; private Timebox de; private Timebox hasta; @@ -204,6 +202,7 @@ public class EditarCorridaController extends MyGenericForwardComposer { private Checkbox vie; private Checkbox sab; private Checkbox dom; + @SuppressWarnings("unused") private boolean isClone = false; private Checkbox diaSimDiaNao; private Boolean embarqueDesembarqueDisabled = true; @@ -220,6 +219,11 @@ public class EditarCorridaController extends MyGenericForwardComposer { private Checkbox cbEmbarque; private Checkbox cbDesembarque; + //FlexBus + private Spinner txtHorasParaConfirmacao; + private Spinner txtMinutosParaConfirmacao; + private Intbox txtOcupacaoMinima; + @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); @@ -316,6 +320,11 @@ public class EditarCorridaController extends MyGenericForwardComposer { lbNumCorridaPisoExtra2.setVisible(Boolean.TRUE); txtNumCorridaPisoExtra2.setVisible(Boolean.TRUE); } + + //FlexBus + txtHorasParaConfirmacao.setValue(esquemaCorrida.getHorasParaConfirmacao()); + txtMinutosParaConfirmacao.setValue(esquemaCorrida.getMinutosParaConfirmacao()); + txtOcupacaoMinima.setValue(esquemaCorrida.getOcupacaoMinima()); } // Llena los valores de los combos @@ -597,6 +606,14 @@ public class EditarCorridaController extends MyGenericForwardComposer { esquemaCorridaEmbarqueDesembarqueService.borrar(esquemaCorridaEmbarqueDesembarque); } } + + //FlexBus + if(esquemaCorrida.getIsFlexBus() && (txtHorasParaConfirmacao.getValue() == null || txtMinutosParaConfirmacao.getValue() == null || txtOcupacaoMinima.getValue() == null)) { + Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.inserirInformacoesFlexBus"), + Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION); + salvar = true; + return; + } Date dataDe = fecniciovigencia.getValue(); Date dataAte = fecfinvigencia.getValue(); @@ -672,6 +689,17 @@ public class EditarCorridaController extends MyGenericForwardComposer { Messagebox.EXCLAMATION); salvar = true; } else { + + //FlexBus + if(esquemaCorrida.getIsFlexBus()) { + esquemaCorrida.setHorasParaConfirmacao(txtHorasParaConfirmacao.getValue()); + esquemaCorrida.setMinutosParaConfirmacao(txtMinutosParaConfirmacao.getValue()); + esquemaCorrida.setOcupacaoMinima(txtOcupacaoMinima.getValue()); + } else { + esquemaCorrida.setHorasParaConfirmacao(null); + esquemaCorrida.setMinutosParaConfirmacao(null); + esquemaCorrida.setOcupacaoMinima(null); + } if (porBloq.isChecked()) { de.getValue(); diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/flexbus/BuqueCorridaFlexBusController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/flexbus/BuqueCorridaFlexBusController.java new file mode 100644 index 000000000..8084b0716 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/flexbus/BuqueCorridaFlexBusController.java @@ -0,0 +1,376 @@ +/** + * + */ +package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional.flexbus; + +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.util.resource.Labels; +import org.zkoss.zhtml.Messagebox; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zkplus.databind.BindingListModelList; +import org.zkoss.zul.Button; +import org.zkoss.zul.Checkbox; +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 com.rjconsultores.ventaboletos.entidad.ClaseServicio; +import com.rjconsultores.ventaboletos.entidad.Corrida; +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.enums.StatusFlexBus; +import com.rjconsultores.ventaboletos.service.ClaseServicioService; +import com.rjconsultores.ventaboletos.service.MarcaService; +import com.rjconsultores.ventaboletos.service.RutaService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +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.RenderCorridaFlexBus; + +/** + * @author Valdir Cordeiro + * + */ +@Controller("busqueCorridaFlexBusController") +@Scope("prototype") +public class BuqueCorridaFlexBusController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + + @Autowired + private MarcaService marcaService; + @Autowired + private ClaseServicioService claseService; + @Autowired + private RutaService rutaService; + + private Datebox fecInicio; + private Datebox fecFinal; + private Combobox cmbClase; + private Combobox cmbStatus; + private Combobox cmbRuta; + private Combobox cmbEmpresaCorrida; + private List lsEmpresa; + private List lsStatus; + private List lsClase; + private List lsRuta; + private Button btnPesquisa; + private Intbox txtNumCorrida; + private Checkbox chkNaoIncluirLinhaInativa; + + private MyListbox corridaList; + + @Autowired + private transient PagedListWrapper plwCorrida; + private Paging pagingCorrida; + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + + lsEmpresa = UsuarioLogado.getUsuarioLogado().getEmpresa(); + lsStatus = Arrays.asList(StatusFlexBus.values()); + lsClase = claseService.obtenerTodos(); + lsRuta = rutaService.obtenerTodos(); + + fecInicio.setValue(new Date()); + fecFinal.setValue(new Date()); + + corridaList.setItemRenderer(new RenderCorridaFlexBus()); + corridaList.addEventListener("onDoubleClick", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + Corrida rc = (Corrida) corridaList.getSelected(); + verCorrida(rc); + } + }); + + btnPesquisa.focus(); + cmbStatus.setSelectedItem(null); + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + private void verCorrida(Corrida rc) { + if (rc == null) { + return; + } + + Map args = new HashMap(); + args.put("corrida", rc); + args.put("busqueCorridaFlexBusController", this); + args.put("corridaList", corridaList); + + openWindow("/gui/esquema_operacional/flexbus/editarCorridaFlexBus.zul", Labels.getLabel("editarConfiguracionCorridaController.window.title"), args, MODAL); + } + + public void onClick$chkNaoIncluirLinhaInativa(Event ev) { + if (chkNaoIncluirLinhaInativa.isChecked()) { + for (Iterator it = lsRuta.iterator(); it.hasNext();) { + Ruta ruta = it.next(); + if (Boolean.TRUE.equals(ruta.getIndRutaCancelada())) { + it.remove(); + } + } + } else { + //Volta aos itens iniciais + if (cmbEmpresaCorrida.getSelectedItem()==null) { + lsRuta = rutaService.obtenerTodos(); + } else { + lsRuta = rutaService.obtenerPorEmpresa(((Empresa) cmbEmpresaCorrida.getSelectedItem().getValue())); + } + } + + BindingListModelList l = new BindingListModelList(lsRuta, true); + cmbRuta.setModel(l); + cmbRuta.setSelectedItem(null); + } + + public void onClick$btnRefresh(Event ev) { + refreshLista(); + } + + @SuppressWarnings("deprecation") + public void refreshLista() { + + HibernateSearchObject busquedaCorrita = new HibernateSearchObject(Corrida.class, pagingCorrida.getPageSize()); + + busquedaCorrita.addFilterEqual("activo", 1); + + busquedaCorrita.addFilterEqual("isFlexBus", Boolean.TRUE); + + Integer numCorrida = txtNumCorrida.getValue(); + if(numCorrida != null) { + busquedaCorrita.addFilterEqual("id.corridaId", numCorrida); + } + + Comboitem cbiClase = cmbClase.getSelectedItem(); + ClaseServicio claseServicio = null; + if (cbiClase != null) { + claseServicio = (ClaseServicio) cbiClase.getValue(); + busquedaCorrita.addFilterEqual("claseServicio", claseServicio); + } + + Comboitem cbiStatus = cmbStatus.getSelectedItem(); + StatusFlexBus status = null; + if (cbiStatus != null) { + status = (StatusFlexBus) cbiStatus.getValue(); + busquedaCorrita.addFilterEqual("statusFlexBus", status.getStatus()); + } + + Comboitem cbiRuta = cmbRuta.getSelectedItem(); + Ruta ruta = null; + if (cbiRuta != null) { + ruta = (Ruta) cbiRuta.getValue(); + busquedaCorrita.addFilterEqual("ruta", ruta); + } + + Comboitem cbiEmpresa = cmbEmpresaCorrida.getSelectedItem(); + Empresa empresa = null; + if (cbiEmpresa != null) { + empresa = (Empresa) cbiEmpresa.getValue(); + busquedaCorrita.addFilterEqual("empresa", empresa); + } else { + busquedaCorrita.addFilterIn("empresa", lsEmpresa); + } + + if (fecInicio.getValue() != null) { + Date ini = fecInicio.getValue(); + ini.setHours(00); + ini.setMinutes(00); + ini.setSeconds(00); + busquedaCorrita.addFilterGreaterOrEqual("fechorsalida", ini); + } + + if (fecFinal.getValue() != null) { + Date fin = fecFinal.getValue(); + fin.setHours(23); + fin.setMinutes(59); + fin.setSeconds(59); + busquedaCorrita.addFilterLessOrEqual("fechorsalida", fin); + } + busquedaCorrita.addSortAsc("fechorsalida"); + + plwCorrida.init(busquedaCorrita, corridaList, pagingCorrida); + + if (corridaList.getData().length == 0) { + try { + Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), + Labels.getLabel("busquedaConfiguracionCorridaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } catch (InterruptedException ex) { + } + } + } + + public void onClick$btnPesquisa(Event ev) throws InterruptedException { + refreshLista(); + } + + public MarcaService getMarcaService() { + return marcaService; + } + + public void setMarcaService(MarcaService marcaService) { + this.marcaService = marcaService; + } + + public ClaseServicioService getClaseService() { + return claseService; + } + + public void setClaseService(ClaseServicioService claseService) { + this.claseService = claseService; + } + + public RutaService getRutaService() { + return rutaService; + } + + public void setRutaService(RutaService rutaService) { + this.rutaService = rutaService; + } + + public Datebox getFecInicio() { + return fecInicio; + } + + public void setFecInicio(Datebox fecInicio) { + this.fecInicio = fecInicio; + } + + public Datebox getFecFinal() { + return fecFinal; + } + + public void setFecFinal(Datebox fecFinal) { + this.fecFinal = fecFinal; + } + + public Combobox getCmbClase() { + return cmbClase; + } + + public void setCmbClase(Combobox cmbClase) { + this.cmbClase = cmbClase; + } + + public Combobox getCmbStatus() { + return cmbStatus; + } + + public void setCmbStatus(Combobox cmbStatus) { + this.cmbStatus = cmbStatus; + } + + public Combobox getCmbRuta() { + return cmbRuta; + } + + public void setCmbRuta(Combobox cmbRuta) { + this.cmbRuta = cmbRuta; + } + + public Combobox getCmbEmpresaCorrida() { + return cmbEmpresaCorrida; + } + + public void setCmbEmpresaCorrida(Combobox cmbEmpresaCorrida) { + this.cmbEmpresaCorrida = cmbEmpresaCorrida; + } + + public List getLsEmpresa() { + return lsEmpresa; + } + + public void setLsEmpresa(List lsEmpresa) { + this.lsEmpresa = lsEmpresa; + } + + public List getLsStatus() { + return lsStatus; + } + + public void setLsStatus(List lsStatus) { + this.lsStatus = lsStatus; + } + + public List getLsClase() { + return lsClase; + } + + public void setLsClase(List lsClase) { + this.lsClase = lsClase; + } + + public List getLsRuta() { + return lsRuta; + } + + public void setLsRuta(List lsRuta) { + this.lsRuta = lsRuta; + } + + public Button getBtnPesquisa() { + return btnPesquisa; + } + + public void setBtnPesquisa(Button btnPesquisa) { + this.btnPesquisa = btnPesquisa; + } + + public Intbox getTxtNumCorrida() { + return txtNumCorrida; + } + + public void setTxtNumCorrida(Intbox txtNumCorrida) { + this.txtNumCorrida = txtNumCorrida; + } + + public Checkbox getChkNaoIncluirLinhaInativa() { + return chkNaoIncluirLinhaInativa; + } + + public void setChkNaoIncluirLinhaInativa(Checkbox chkNaoIncluirLinhaInativa) { + this.chkNaoIncluirLinhaInativa = chkNaoIncluirLinhaInativa; + } + + public MyListbox getCorridaList() { + return corridaList; + } + + public void setCorridaList(MyListbox corridaList) { + this.corridaList = corridaList; + } + + public PagedListWrapper getPlwCorrida() { + return plwCorrida; + } + + public void setPlwCorrida(PagedListWrapper plwCorrida) { + this.plwCorrida = plwCorrida; + } + + public Paging getPagingCorrida() { + return pagingCorrida; + } + + public void setPagingCorrida(Paging pagingCorrida) { + this.pagingCorrida = pagingCorrida; + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/flexbus/EditarCorridaFlexBusController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/flexbus/EditarCorridaFlexBusController.java new file mode 100644 index 000000000..2fbe7bebe --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/flexbus/EditarCorridaFlexBusController.java @@ -0,0 +1,422 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional.flexbus; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Calendar; +import java.util.List; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.util.resource.Labels; +import org.zkoss.zhtml.Messagebox; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Executions; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Combobox; +import org.zkoss.zul.Intbox; +import org.zkoss.zul.Row; +import org.zkoss.zul.Spinner; +import org.zkoss.zul.Textbox; + +import com.rjconsultores.ventaboletos.entidad.ClaseServicio; +import com.rjconsultores.ventaboletos.entidad.Corrida; +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.entidad.Usuario; +import com.rjconsultores.ventaboletos.enums.StatusFlexBus; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.IndStatusCorrida; +import com.rjconsultores.ventaboletos.service.ClaseServicioService; +import com.rjconsultores.ventaboletos.service.CorridaService; +import com.rjconsultores.ventaboletos.service.RutaService; +import com.rjconsultores.ventaboletos.service.UsuarioService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; + +/** + * @author Valdir Cordeiro + * + */ +@Controller("editarCorridaFlexBusController") +@Scope("prototype") +public class EditarCorridaFlexBusController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + + private static Logger log = Logger.getLogger(EditarCorridaFlexBusController.class); + + @Autowired + private BuqueCorridaFlexBusController busqueCorridaFlexBusController; + + @Autowired + private ClaseServicioService claseService; + + @Autowired + private RutaService rutaService; + + @Autowired + private CorridaService corridaService; + + @Autowired + private UsuarioService usuarioService; + + private Corrida corrida; + private MyListbox corridaList; + + private Spinner txtHorasParaConfirmacao; + private Spinner txtMinutosParaConfirmacao; + private Intbox txtOcupacaoMinima; + private Intbox txtOcupacaoAtual; + + private List lsStatus; + private List lsStatusCorrida; + private List lsClase; + private List lsRuta; + private List lsEmpresa; + + private Combobox cmbMarca; + private Combobox cmbRuta; + private Combobox cmbEmpresaCorrida; + private Combobox cmbStatus; + private Combobox cmbStatusCorrida; + private Combobox cmbClase; + private Intbox txtNumCorrida; + private Textbox txtInfoCorrida; + + private StatusFlexBus statusAtual; + private IndStatusCorrida statusCorrida; + + private Row rowUsuario; + private Textbox txtUsuarioAlteracao; + + private String titulo = Labels.getLabel("editarConfiguracionCorridaController.window.title"); + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + + corrida = (Corrida) Executions.getCurrent().getArg().get("corrida"); + corridaList = (MyListbox) Executions.getCurrent().getArg().get("corridaList"); + busqueCorridaFlexBusController = (BuqueCorridaFlexBusController) Executions.getCurrent().getArg().get("busqueCorridaFlexBusController"); + + lsStatus = Arrays.asList(StatusFlexBus.values()); + lsStatusCorrida = Arrays.asList(IndStatusCorrida.values()); + lsClase = new ArrayList(); + lsClase.add(corrida.getClaseServicio()); + lsRuta = new ArrayList(); + lsRuta.add(corrida.getRuta()); + lsEmpresa = new ArrayList(); + lsEmpresa.addAll(UsuarioLogado.getUsuarioLogado().getEmpresa()); + + txtHorasParaConfirmacao.setValue(corrida.getHorasParaConfirmacao()); + txtMinutosParaConfirmacao.setValue(corrida.getMinutosParaConfirmacao()); + txtOcupacaoMinima.setValue(corrida.getOcupacaoMinima()); + + statusAtual = StatusFlexBus.buscarPorStatus(corrida.getStatusFlexBus()); + statusCorrida = IndStatusCorrida.buscarPorStatus(corrida.getIndstatuscorrida()); + + cmbStatus.setValue(statusAtual.getDescricao()); + cmbStatusCorrida.setValue(statusCorrida.toString()); + + //Não é possível editar se o status for diferente de EM RESERVA + if(!statusAtual.equals(StatusFlexBus.EM_RESERVA)) { + txtHorasParaConfirmacao.setDisabled(false); + txtMinutosParaConfirmacao.setDisabled(false); + txtOcupacaoMinima.setDisabled(false); + } + + txtOcupacaoAtual.setValue(corridaService.buscarOcupacaoCorrida(corrida)); + + if((statusAtual.equals(StatusFlexBus.CANCELADO_MANUALMENTE) || statusAtual.equals(StatusFlexBus.CONFIRMADO_MANUALMENTE) ) && corrida.getUsuarioFlexBusId() != null) { + rowUsuario.setVisible(true); + Usuario usuario = usuarioService.obtenerID(corrida.getUsuarioFlexBusId()); + + txtUsuarioAlteracao.setValue(usuario.getUsuarioId() + " - " + usuario.getNombusuario()); + } else { + rowUsuario.setVisible(false); + } + } + + public void onClick$btnSalvar(Event ev) throws InterruptedException { + try { + if(!statusAtual.equals(StatusFlexBus.EM_RESERVA)) { + Messagebox.show(Labels.getLabel("MSG.Error.soReservaFlexBus"), titulo, Messagebox.OK, Messagebox.ERROR); + return; + } + + if(Calendar.getInstance().getTime().after(corrida.getFechorsalida())) { + Messagebox.show(Labels.getLabel("MSG.Error.dataSaidaFlexBus"), titulo, Messagebox.OK, Messagebox.ERROR); + return; + } + + if((txtHorasParaConfirmacao.getValue() == null || txtMinutosParaConfirmacao.getValue() == null || txtOcupacaoMinima.getValue() == null)) { + Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.inserirInformacoesFlexBus"), titulo, Messagebox.OK, Messagebox.EXCLAMATION); + return; + } + + corrida.setHorasParaConfirmacao(txtHorasParaConfirmacao.getValue()); + corrida.setMinutosParaConfirmacao(txtMinutosParaConfirmacao.getValue()); + corrida.setOcupacaoMinima(txtOcupacaoMinima.getValue()); + + corridaService.actualizacion(corrida); + corridaList.updateItem(corrida); + + Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.corridaAlteradaSucesso.value"), titulo, Messagebox.OK, Messagebox.INFORMATION); + closeWindow(); + } catch (Exception e) { + log.error("Erro ao salvar informacoes da corrida: ", e); + Messagebox.show(Labels.getLabel("MSG.Error"), titulo, Messagebox.OK, Messagebox.ERROR); + } + } + + public void onClick$btnCancelarServico(Event ev) throws InterruptedException { + try { + int resp = Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.desejaCancelarCorrida"), titulo, Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); + + if (resp == Messagebox.NO) { + return; + } + + if(!validarAlteracao()) { + return; + } + + corrida.setStatusFlexBus(StatusFlexBus.CANCELADO_MANUALMENTE.getStatus()); + corrida.setIndstatuscorrida(IndStatusCorrida.CANCELADO.getValue()); + corrida.setUsuarioFlexBusId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + + corridaService.actualizacion(corrida); + corridaList.updateItem(corrida); + + Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.corridaAlteradaSucesso.value"), titulo, Messagebox.OK, Messagebox.INFORMATION); + closeWindow(); + } catch (Exception e) { + log.error("Erro ao Cancelar corrida: ", e); + Messagebox.show(Labels.getLabel("MSG.Error"), titulo, Messagebox.OK, Messagebox.ERROR); + } + } + + public void onClick$btnConfirmarServico(Event ev) throws InterruptedException { + try { + int resp = Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.desejaConfirmarCorrida"), titulo, Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); + + if (resp == Messagebox.NO) { + return; + } + + if(!validarAlteracao()) { + return; + } + + corrida.setStatusFlexBus(StatusFlexBus.CONFIRMADO_MANUALMENTE.getStatus()); + corrida.setUsuarioFlexBusId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + + corridaService.actualizacion(corrida); + corridaList.updateItem(corrida); + + + Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.corridaAlteradaSucesso.value"), titulo, Messagebox.OK, Messagebox.INFORMATION); + closeWindow(); + } catch (Exception e) { + log.error("Erro ao Confirmar corrida: ", e); + Messagebox.show(Labels.getLabel("MSG.Error"), titulo, Messagebox.OK, Messagebox.ERROR); + } + } + + private Boolean validarAlteracao() throws InterruptedException { + if(StatusFlexBus.CONFIRMADO_AUTOMATICAMENTE.equals(statusAtual) || StatusFlexBus.CONFIRMADO_MANUALMENTE.equals(statusAtual)) { + Messagebox.show(Labels.getLabel("MSG.Error.corridaConfirmada"), titulo, Messagebox.OK, Messagebox.ERROR); + return false; + } + + if(StatusFlexBus.CANCELADO_AUTOMATICAMENTE.equals(statusAtual) || StatusFlexBus.CANCELADO_MANUALMENTE.equals(statusAtual)) { + Messagebox.show(Labels.getLabel("MSG.Error.corridaCancelada"), titulo, Messagebox.OK, Messagebox.ERROR); + return false; + } + + if(Calendar.getInstance().getTime().after(corrida.getFechorsalida())) { + Messagebox.show(Labels.getLabel("MSG.Error.dataSaidaFlexBus"), titulo, Messagebox.OK, Messagebox.ERROR); + return false; + } + + return true; + } + + public List getLsEmpresa() { + return lsEmpresa; + } + + public void setLsEmpresa(List lsEmpresa) { + this.lsEmpresa = lsEmpresa; + } + + public BuqueCorridaFlexBusController getBusqueCorridaFlexBusController() { + return busqueCorridaFlexBusController; + } + + public void setBusqueCorridaFlexBusController(BuqueCorridaFlexBusController busqueCorridaFlexBusController) { + this.busqueCorridaFlexBusController = busqueCorridaFlexBusController; + } + + public ClaseServicioService getClaseService() { + return claseService; + } + + public void setClaseService(ClaseServicioService claseService) { + this.claseService = claseService; + } + + public RutaService getRutaService() { + return rutaService; + } + + public void setRutaService(RutaService rutaService) { + this.rutaService = rutaService; + } + + public Corrida getCorrida() { + return corrida; + } + + public void setCorrida(Corrida corrida) { + this.corrida = corrida; + } + + public MyListbox getCorridaList() { + return corridaList; + } + + public void setCorridaList(MyListbox corridaList) { + this.corridaList = corridaList; + } + + public Spinner getTxtHorasParaConfirmacao() { + return txtHorasParaConfirmacao; + } + + public void setTxtHorasParaConfirmacao(Spinner txtHorasParaConfirmacao) { + this.txtHorasParaConfirmacao = txtHorasParaConfirmacao; + } + + public Spinner getTxtMinutosParaConfirmacao() { + return txtMinutosParaConfirmacao; + } + + public void setTxtMinutosParaConfirmacao(Spinner txtMinutosParaConfirmacao) { + this.txtMinutosParaConfirmacao = txtMinutosParaConfirmacao; + } + + public Intbox getTxtOcupacaoMinima() { + return txtOcupacaoMinima; + } + + public void setTxtOcupacaoMinima(Intbox txtOcupacaoMinima) { + this.txtOcupacaoMinima = txtOcupacaoMinima; + } + + public List getLsStatus() { + return lsStatus; + } + + public void setLsStatus(List lsStatus) { + this.lsStatus = lsStatus; + } + + public List getLsClase() { + return lsClase; + } + + public void setLsClase(List lsClase) { + this.lsClase = lsClase; + } + + public List getLsRuta() { + return lsRuta; + } + + public void setLsRuta(List lsRuta) { + this.lsRuta = lsRuta; + } + + public Combobox getCmbMarca() { + return cmbMarca; + } + + public void setCmbMarca(Combobox cmbMarca) { + this.cmbMarca = cmbMarca; + } + + public Combobox getCmbRuta() { + return cmbRuta; + } + + public void setCmbRuta(Combobox cmbRuta) { + this.cmbRuta = cmbRuta; + } + + public Combobox getCmbEmpresaCorrida() { + return cmbEmpresaCorrida; + } + + public void setCmbEmpresaCorrida(Combobox cmbEmpresaCorrida) { + this.cmbEmpresaCorrida = cmbEmpresaCorrida; + } + + public Combobox getCmbStatus() { + return cmbStatus; + } + + public void setCmbStatus(Combobox cmbStatus) { + this.cmbStatus = cmbStatus; + } + + public Combobox getCmbClase() { + return cmbClase; + } + + public void setCmbClase(Combobox cmbClase) { + this.cmbClase = cmbClase; + } + + public Intbox getTxtNumCorrida() { + return txtNumCorrida; + } + + public void setTxtNumCorrida(Intbox txtNumCorrida) { + this.txtNumCorrida = txtNumCorrida; + } + + public Textbox getTxtInfoCorrida() { + return txtInfoCorrida; + } + + public void setTxtInfoCorrida(Textbox txtInfoCorrida) { + this.txtInfoCorrida = txtInfoCorrida; + } + + public List getLsStatusCorrida() { + return lsStatusCorrida; + } + + public void setLsStatusCorrida(List lsStatusCorrida) { + this.lsStatusCorrida = lsStatusCorrida; + } + + public IndStatusCorrida getStatusCorrida() { + return statusCorrida; + } + + public void setStatusCorrida(IndStatusCorrida statusCorrida) { + this.statusCorrida = statusCorrida; + } + + public StatusFlexBus getStatusAtual() { + return statusAtual; + } + + public void setStatusAtual(StatusFlexBus statusAtual) { + this.statusAtual = statusAtual; + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/esquemaoperacional/ItemMenuManutencaoFlexBus.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/esquemaoperacional/ItemMenuManutencaoFlexBus.java new file mode 100644 index 000000000..cfa4b7dd3 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/esquemaoperacional/ItemMenuManutencaoFlexBus.java @@ -0,0 +1,26 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.constantes.ConstantesFuncionSistema; +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuManutencaoFlexBus extends DefaultItemMenuSistema { + + public ItemMenuManutencaoFlexBus() { + super("indexController.mniManutencaoFlexBus.label"); + } + + @Override + public String getClaveMenu() { + return ConstantesFuncionSistema.CLAVE_MANUTENCAO_FLEXBUS; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/esquema_operacional/flexbus/busqueCorridaFlexBus.zul", + Labels.getLabel("indexController.mniManutencaoFlexBus.label"), getArgs() ,desktop); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/esquemaoperacional/SubMenuFlexBus.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/esquemaoperacional/SubMenuFlexBus.java new file mode 100644 index 000000000..f11598903 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/esquemaoperacional/SubMenuFlexBus.java @@ -0,0 +1,11 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional; + +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class SubMenuFlexBus extends DefaultItemMenuSistema { + + public SubMenuFlexBus() { + super("indexController.mniFlexBus.label"); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties index 52cd4a9fe..f5a4172ef 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties @@ -100,6 +100,8 @@ esquemaOperacional.trocoSimples=com.rjconsultores.ventaboletos.web.utilerias.men esquemaOperacional.trocoSimples.ItemMenuCadastroEmpresaTrocoSimples=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuCadastroEmpresaTrocoSimples esquemaOperacional.trocoSimples.ItemMenuRelatorioTrocoSimples=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuRelatorioTrocoSimples esquemaOperacional.trocoSimples.ItemMenuRelatorioEstornoTrocoSimples=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuRelatorioEstornoTrocoSimples +esquemaOperacional.flexBus=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.SubMenuFlexBus +esquemaOperacional.flexBus.ItemMenuManutencaoFlexBus=com.rjconsultores.ventaboletos.web.utilerias.menu.item.esquemaoperacional.ItemMenuManutencaoFlexBus tarifasOficial=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifasOficial.MenuTarifasOficial tarifasOficial.seguroKm=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifasOficial.ItemMenuSeguroKm tarifasOficial.seguroTarifa=com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifasOficial.ItemMenuSeguroTarifa diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderCorridaFlexBus.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderCorridaFlexBus.java new file mode 100644 index 000000000..d91bb5bfe --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderCorridaFlexBus.java @@ -0,0 +1,95 @@ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.Corrida; +import com.rjconsultores.ventaboletos.enums.StatusFlexBus; +import com.rjconsultores.ventaboletos.service.CorridaService; +import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; + +/** + * + * @author Valdir Cordeiro + */ +public class RenderCorridaFlexBus implements ListitemRenderer { + + private String buscarOcupacao(Corrida corrida) { + CorridaService corridaService = (CorridaService) AppContext.getApplicationContext().getBean("corridaService"); + Integer ocupacao = corridaService.buscarOcupacaoCorrida(corrida); + return ocupacao == null ? "0" : ocupacao.toString(); + } + + public void render(Listitem lstm, Object o) throws Exception { + Corrida corrida = (Corrida) o; + + Listcell lc = new Listcell(corrida.getId().getCorridaId().toString()); + lc.setParent(lstm); + + SimpleDateFormat dt = new SimpleDateFormat("dd/MM/yyyy"); + lc = new Listcell(dt.format(corrida.getId().getFeccorrida())); + lc.setParent(lstm); + + dt = new SimpleDateFormat("HH:mm"); + lc = new Listcell(dt.format(corrida.getFechorsalida())); + lc.setParent(lstm); + + lc = new Listcell(corrida.getOcupacaoMinima().toString()); + lc.setParent(lstm); + + lc = new Listcell(buscarOcupacao(corrida)); + lc.setParent(lstm); + + lc = new Listcell(corrida.getHorasParaConfirmacao() + ":" + corrida.getMinutosParaConfirmacao()); + lc.setParent(lstm); + + String tempoPraConfirmacao = buscarTempoPraConfirmacao(corrida); + lc = new Listcell(tempoPraConfirmacao); + lc.setParent(lstm); + + //Status corrida + String status = StatusFlexBus.buscarStatus(corrida.getStatusFlexBus()); + lc = new Listcell( status == null ? " - " : status); + lc.setParent(lstm); + + lstm.setAttribute("data", corrida); + } + + private String buscarTempoPraConfirmacao(Corrida corrida) { + try { + Calendar dataCorrida = Calendar.getInstance(); + dataCorrida.setTime(corrida.getFechorsalida()); + + dataCorrida.add(Calendar.MINUTE, -corrida.getMinutosParaConfirmacao()); + dataCorrida.add(Calendar.HOUR, -corrida.getHorasParaConfirmacao()); + + Date dataAtual = Calendar.getInstance().getTime(); + + Date dataCorrida2 = dataCorrida.getTime(); + + long diff = dataCorrida2.getTime() - dataAtual.getTime(); + long diffHours = (int) (diff / (60 * 60 * 1000) % 24); + long diffMinutes = diff / (60 * 1000) % 60; + long diffDays = diff / (24 * 60 * 60 * 1000); + + if (diffDays > 0) { + diffHours = (diffHours + (diffDays * 24)); + } + + if(diffHours < 0 || diffMinutes < 0) { + return "00:00"; + } + + return String.format("%02d", diffHours) + ":" + String.format("%02d", diffMinutes); + } catch (Exception e) { + // TODO: handle exception + } + + return "00:00"; + } +} diff --git a/src/java/spring-config.xml b/src/java/spring-config.xml index 85948a9c0..d7edc71e0 100644 --- a/src/java/spring-config.xml +++ b/src/java/spring-config.xml @@ -501,7 +501,8 @@ com.rjconsultores.ventaboletos.entidad.ConfRestricaoTramoOC com.rjconsultores.ventaboletos.entidad.LogAuditoria com.rjconsultores.ventaboletos.entidad.EmbarcadaDispOperador - com.rjconsultores.ventaboletos.entidad.AgrupamentoParada + com.rjconsultores.ventaboletos.entidad.AgrupamentoParada + com.rjconsultores.ventaboletos.entidad.EmpresaEmailFlexBus diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 3d14827cf..a8a142db4 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -3044,6 +3044,33 @@ modificacionMasivaTarifasController.alterarPrecoOriginal.radioNao = Não modificacionMasivaTarifasController.alterarPrecoOriginal.radioSim = Si modificacionMasivaTarifasController.MSG.informarOrigemOuDestino = Necessário informar origem ou destino para pesquisar por Vende +#FlexBus +editarConfiguracionCorridaController.lbFlexBus.value= FlexBus +editarConfiguracionCorridaController.lbCorridaFlexBus.value= Carrera FlexBus +editarConfiguracionCorridaController.lbOcupacaoMinima.value= Ocupación mínima +editarConfiguracionCorridaController.tiempoConfirmacao.label=Hora de la confirmación del servicio (HH:mm) +editarConfiguracionCorridaController.ajudaTempoLimiteAposSaida= Plazo para alcanzar la ocupación mínima configurada hasta dejar el servicio. Si se alcanza la ocupación, el servicio se pone a disposición de todos los puntos de venta, si la ocupación no llega al tiempo configurado, se cancela el servicio. +editarConfiguracionCorridaController.inserirInformacoesFlexBus=Es necesario informar todos los parámetros de flexBus. +editarPuntoVentaController.vendeFlexBus.label=Hacer reserva FlexBus +editarEmpresaController.configuracaoFlexbus.label= FlexBus +editarEmpresaController.configEnvioEmailFlexBus.label=Configuración de envío de correo electrónico +editarEmpresaController.configConteudoEmailFlexBus.label=Contenido de correo electrónico +editarEmpresaController.configCupomEmbarqueFlexBus.label=Configuración de embarque de contenido +indexController.mniFlexBus.label=FlexBus +indexController.mniManutencaoFlexBus.label=Servicios de mantenimiento FlexBus +editarConfiguracionCorridaController.cmbStatusFlexBus.value= Status FlexBus +editarConfiguracionCorridaController.cmbStatusCorrida.value= Status Corrida +editarConfiguracionCorridaController.lbDataCorrida.value= Fecha de corrida +MSG.Error.soReservaFlexBus=La carrera solo se puede cambiar mientras estás en reserva. +MSG.Error.dataSaidaFlexBus=No es posible cambiar la raza después de salir.Não é possível alterar a corrida após sua saída. +MSG.Error.corridaConfirmada=Raza confirmada, no se puede cambiar. +MSG.Error.corridaCancelada=Carrera cancelada, no se puede cambiar. +editarConfiguracionCorridaController.alteradoPor.value=Usuario cambiado +editarConfiguracionCorridaController.corridaAlteradaSucesso.value= Raza cambiada con éxito. +editarConfiguracionCorridaController.MSG.desejaConfirmarCorrida= Después de Confirmado, el servicio aparecerá para todos los puntos de venta y ya no será posible cancelar. ¿De verdad quieres confirmar la carrera? +editarConfiguracionCorridaController.MSG.desejaCancelarCorrida=Una vez que se cancele la carrera, ya no será posible realizar cambios. ¿De verdad quieres cancelar? +editarConfiguracionCorridaController.lbOcupacaoAtual.value=Ocupación actual + # Editar Tarifa Oficial: editarTarifaOficialController.window.title = Cambio de precio / Tarifa oficial editarTarifaOficialController.btnFechar.MSG.SuscbrirOK = Cambio se registró exitosamente diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index dd698e8c4..406d6780f 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -3039,6 +3039,34 @@ editarConfiguracionCorridaController.rdAutorizada.value = Vigente editarConfiguracionCorridaController.rdCancelada.value = Cancelada editarConfiguracionCorridaController.lbCorridaExtra.value = Corrida Extra editarConfiguracionCorridaController.lbEmbarqueDesembarque.value = Embarque / Desembarque + +#FlexBus +editarConfiguracionCorridaController.lbFlexBus.value= FlexBus +editarConfiguracionCorridaController.lbCorridaFlexBus.value= Corrida FlexBus +editarConfiguracionCorridaController.lbOcupacaoMinima.value= Ocupação Mínima +editarConfiguracionCorridaController.tiempoConfirmacao.label=Tempo para confirmação do serviço (HH:mm) +editarConfiguracionCorridaController.ajudaTempoLimiteAposSaida= Tempo limite para atingir a ocupação mínima configurada até saída do serviço. Se atingida a ocupação, o serviço é disponibilizado para todos os pontos de venda, caso não atinja a ocupação no tempo configurado o serviço é cancelado. +editarConfiguracionCorridaController.inserirInformacoesFlexBus= É necessário informar todos os parâmetros do flexBus. +editarPuntoVentaController.vendeFlexBus.label=Realiza reserva FlexBus +editarEmpresaController.configuracaoFlexbus.label= FlexBus +editarEmpresaController.configEnvioEmailFlexBus.label=Configuracao de Envio de Email +editarEmpresaController.configConteudoEmailFlexBus.label=Conteúdo do Email +editarEmpresaController.configCupomEmbarqueFlexBus.label=Configuração Conteúdo Cupom Embarque +indexController.mniFlexBus.label=FlexBus +indexController.mniManutencaoFlexBus.label=Manutenção Serviços FlexBus +editarConfiguracionCorridaController.cmbStatusFlexBus.value= Status FlexBus +editarConfiguracionCorridaController.cmbStatusCorrida.value= Status Corrida +editarConfiguracionCorridaController.lbDataCorrida.value= Data Corrida +MSG.Error.soReservaFlexBus=A Corrida só pode ser alterado enquanto estiver em Reserva. +MSG.Error.dataSaidaFlexBus=Não é possível alterar a corrida após sua saída. +MSG.Error.corridaConfirmada=Corrida confirmada, não é possível alterar. +MSG.Error.corridaCancelada=Corrida cancelada, não é possível alterar. +editarConfiguracionCorridaController.alteradoPor.value=Alterado Pelo Usuário +editarConfiguracionCorridaController.corridaAlteradaSucesso.value= Corrida Alterada com sucesso. +editarConfiguracionCorridaController.MSG.desejaConfirmarCorrida= Depois de Confirmada o serviço aparecerá para todos os pontos de venda e não será mais possível cancelar. Deseja realmente confirmar a corrida? +editarConfiguracionCorridaController.MSG.desejaCancelarCorrida= Depois de cancelada a corrida, não será mais possível alterar. Deseja realmente cancelar? +editarConfiguracionCorridaController.lbOcupacaoAtual.value=Ocupação Atual + editarConfiguracionCorridaController.lbLocalidade.value = Localidade editarConfiguracionCorridaController.lbEmbarque.value = Embarque editarConfiguracionCorridaController.lbDesembarque.value = Desembarque diff --git a/web/gui/catalogos/editarEmpresa.zul b/web/gui/catalogos/editarEmpresa.zul index 5ae0500ee..d2462fa03 100644 --- a/web/gui/catalogos/editarEmpresa.zul +++ b/web/gui/catalogos/editarEmpresa.zul @@ -53,7 +53,8 @@ label="${c:l('editarEmpresaController.configCallCenter.label')}" /> - + @@ -1781,6 +1782,99 @@ width="100%"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +