From 8a4d8fbd6c5001bad39c479c3df1f38d54b54c76 Mon Sep 17 00:00:00 2001 From: valdevir Date: Mon, 14 Aug 2023 15:34:41 -0300 Subject: [PATCH] fixes bug #AL-2734 --- pom.xml | 4 +- .../EditarCorridaController.java | 353 +++++++++++++----- .../EditarDataEdicaoCorridaController.java | 91 +++++ ...racaoCorridaViaConfServicosController.java | 92 +++++ .../render/RenderTarefaGeracaoCorridaVO.java | 34 ++ web/WEB-INF/i3-label_en.label | 4 + web/WEB-INF/i3-label_es_MX.label | 4 + web/WEB-INF/i3-label_pt_BR.label | 10 +- .../filtroDataEdicaoCorrida.zul | 43 +++ .../logGeracaoCorridaViaConfServico.zul | 62 +++ 10 files changed, 597 insertions(+), 100 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarDataEdicaoCorridaController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/LogGeracaoCorridaViaConfServicosController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderTarefaGeracaoCorridaVO.java create mode 100644 web/gui/esquema_operacional/filtroDataEdicaoCorrida.zul create mode 100644 web/gui/esquema_operacional/logGeracaoCorridaViaConfServico.zul diff --git a/pom.xml b/pom.xml index 2aabd88e2..6677c3e98 100644 --- a/pom.xml +++ b/pom.xml @@ -4,11 +4,11 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.11.7 + 1.11.8 war - 1.8.0 + 1.8.1 1.6.4 UTF-8 UTF-8 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 e4beb09f0..d95afe2f5 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 @@ -4,6 +4,8 @@ */ package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; @@ -19,6 +21,7 @@ import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; +import org.springframework.dao.DataIntegrityViolationException; import org.springframework.stereotype.Controller; import org.zkoss.util.resource.Labels; import org.zkoss.zhtml.Messagebox; @@ -37,13 +40,14 @@ import org.zkoss.zul.Datebox; import org.zkoss.zul.Intbox; import org.zkoss.zul.Label; import org.zkoss.zul.Radio; -import org.zkoss.zul.Radiogroup; import org.zkoss.zul.Spinner; import org.zkoss.zul.Textbox; import org.zkoss.zul.Timebox; +import org.zkoss.zul.Window; import com.rjconsultores.ventaboletos.entidad.Autobus; import com.rjconsultores.ventaboletos.entidad.ClaseServicio; +import com.rjconsultores.ventaboletos.entidad.Corrida; import com.rjconsultores.ventaboletos.entidad.Division; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento; @@ -61,6 +65,7 @@ import com.rjconsultores.ventaboletos.entidad.RutaSecuencia; import com.rjconsultores.ventaboletos.entidad.Tramo; import com.rjconsultores.ventaboletos.entidad.TramoServicio; import com.rjconsultores.ventaboletos.service.AutobusService; +import com.rjconsultores.ventaboletos.service.BoletoService; import com.rjconsultores.ventaboletos.service.ClaseServicioService; import com.rjconsultores.ventaboletos.service.CorridaService; import com.rjconsultores.ventaboletos.service.DivisionService; @@ -78,7 +83,9 @@ import com.rjconsultores.ventaboletos.service.RutaService; import com.rjconsultores.ventaboletos.service.TramoServicioService; 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.vo.esquemaoperacional.TarefaGeracaoCorridaVO; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; import com.rjconsultores.ventaboletos.web.utilerias.render.MyComboRutaRenderer; @@ -93,9 +100,10 @@ import com.rjconsultores.ventaboletos.web.utilerias.render.RenderEsquemaCorridaE @Scope("prototype") public class EditarCorridaController extends MyGenericForwardComposer { + private static final int PERIODO_MAXIMO_90_DIAS = 90; private static Logger log = Logger.getLogger(EditarCorridaController.class); - private static final long serialVersionUID = 1L; + //Services @Autowired private EsquemaCorridaService esquemaCorridaService; @Autowired @@ -125,10 +133,104 @@ public class EditarCorridaController extends MyGenericForwardComposer { @Autowired CorridaService corridaService; @Autowired + BoletoService boletoService; + @Autowired private RutaEmbarqueDesembarqueService rutaEmbarqueDesembarqueService; @Autowired private EsquemaCorridaEmbarqueDesembarqueService esquemaCorridaEmbarqueDesembarqueService; + private DivisionService divisionService; + + //Radio + private Radio porBloq; + private Radio latente; + private Radio autorizada; + private Radio cancelada; + private Radio sentado; + private Radio emPe; + private Radio fletes; + private Radio viajesEspeciales; + private Radio transportePasajeros; + private Radio rdImprimeBPE; + private Radio rdNaoImprimeBPE; + //MyListbox + private MyListbox esquemaCorridaList; + private MyListbox esquemaTramoList; + private MyListbox esquemaCorridaEmbarqueDesembarqueListbox; + //Datebox + private Datebox fecniciovigencia; + private Datebox fecfinvigencia; + //Spinner + private Spinner minutos; + private Spinner txtHorasParaConfirmacao; + private Spinner txtMinutosParaConfirmacao; + private Spinner txtHorasAutomacaoDE; + private Spinner txtMinutosAutomacaoDE; + private Spinner txtHorasAutomacaoATE; + private Spinner txtMinutosAutomacaoATE; + //Intbox + private Intbox txtNumCorrida; + private Intbox txtNumCorridaPisoExtra; + private Intbox txtNumCorridaPisoExtra2; + private Intbox txtQtdeDiasGeracao; + private Intbox txtOcupacaoMinima; + private Intbox txtOcupacaoHorarioExtra; + private Intbox txtNumCorridaExtraAuto; + //Combobox + private Combobox cmbClase; + private Combobox cmbMarca; + private Combobox cmbRuta; + private Combobox cmbEmpresaCorrida; + private Combobox cmbEmpresaIngresso; + private Combobox cmbRolOperativo; + private Combobox cmbStatus; + private Combobox cmbVia; + private Combobox cmbTramo; + private Combobox cmbDivision; + private Combobox cmbIndGeneraFeriado; + private Combobox cmbEmbarqueDesembarque; + private Combobox cmbLocalEmbarqueDesembarque; + private Combobox cmbRolOperativoServicoExtra; + //Button + private Button btnAsientos; + private Button btnApagar; + //Timebox + private Timebox horasalida; + private Timebox de; + private Timebox hasta; + private Timebox horaIniNaoImpBpe; + private Timebox horaFimNaoImpBpe; + //Label + private Label horasalidaLabel; + private Label minutosLabel1; + private Label minutosLabel2; + private Label horaLabel1; + private Label horaLabel2; + private Label horaLabel21; + private Label horaLabel22; + private Label lbDivision; + private Label lbNumCorridaPisoExtra; + private Label lbNumCorridaPisoExtra2; + //Textbox + private Textbox txtIdCorridaRebote; + private Textbox txtPlataforma; + private Textbox txtInfoCorrida; + //Checkbox + private Checkbox chkDoblePiso; + private Checkbox chkCorridaExtra; + private Checkbox lun; + private Checkbox mar; + private Checkbox mie; + private Checkbox jue; + private Checkbox vie; + private Checkbox sab; + private Checkbox dom; + private Checkbox cbEmbarque; + private Checkbox cbDesembarque; + private Checkbox cbVisualizaNaAPI; + private Checkbox chkBloqueiaCorridaWebAposSaida; + private Checkbox diaSimDiaNao; + //List private List lsDivision; private List lsEmpresa; private List lsEmpresaIngresso; @@ -142,105 +244,22 @@ public class EditarCorridaController extends MyGenericForwardComposer { private List lsTramosRutaEsquemaCorrida; private List lsTramos; private List lsParadaEsquema; - private Radio porBloq; - private Radio latente; - private Radio autorizada; - private Radio cancelada; - private Radio sentado; - private Radio emPe; - private Radio fletes; - private Radio viajesEspeciales; - private Radio transportePasajeros; - private Radio rdImprimeBPE; - private Radio rdNaoImprimeBPE; - private Checkbox chkDoblePiso; - private EsquemaCorrida esquemaCorrida; - private MyListbox esquemaCorridaList; - private MyListbox esquemaTramoList; - private MyListbox esquemaCorridaEmbarqueDesembarqueListbox; - private Datebox fecniciovigencia; - private Datebox fecfinvigencia; - private Intbox txtNumCorrida; - private Textbox txtInfoCorrida; - private Checkbox chkCorridaExtra; - private Intbox txtNumCorridaPisoExtra; - private Intbox txtNumCorridaPisoExtra2; - private Intbox txtQtdeDiasGeracao; - private Combobox cmbClase; - private Combobox cmbMarca; - private Combobox cmbRuta; - private Combobox cmbEmpresaCorrida; - private Combobox cmbEmpresaIngresso; - private Combobox cmbRolOperativo; - private Combobox cmbStatus; - private Combobox cmbVia; - private Combobox cmbTramo; - private Combobox cmbDivision; - private Combobox cmbIndGeneraFeriado; - private Combobox cmbEmbarqueDesembarque; - private Button btnAsientos; - private Timebox horasalida; - private Timebox de; - private Timebox hasta; - private Timebox horaIniNaoImpBpe; - private Timebox horaFimNaoImpBpe; - private Spinner minutos; - private Label horasalidaLabel; - private Label minutosLabel1; - private Label minutosLabel2; - private Label horaLabel1; - private Label horaLabel2; - private Label horaLabel21; - private Label horaLabel22; - private Label lbDivision; - - private Label lbNumCorridaPisoExtra; - private Label lbNumCorridaPisoExtra2; - private Button btnApagar; - private Textbox txtIdCorridaRebote; - private Textbox txtPlataforma; - - private Checkbox lun; - private Checkbox mar; - private Checkbox mie; - private Checkbox jue; - private Checkbox vie; - private Checkbox sab; - private Checkbox dom; - @SuppressWarnings("unused") - private boolean isClone = false; - private Checkbox diaSimDiaNao; - private Boolean embarqueDesembarqueDisabled = true; - private boolean isPrimeiraVez = true; - private List lsRutaEmbarqueDesembarque = new ArrayList(); private List lsEsquemaCorridaEmbarqueDesembarqueSelected = new ArrayList(); private List lsEsquemaCorridaEmbarqueDesembarqueBorrar = new ArrayList(); - - private Combobox cmbLocalEmbarqueDesembarque; private List lsEmbarqueDesembarque; + //boolean + private boolean isPrimeiraVez = true; + private Boolean embarqueDesembarqueDisabled = true; + private Boolean isAlteraCorridaJaGerada; private Boolean embarque = Boolean.FALSE; private Boolean desembarque = Boolean.FALSE; private Boolean isVisualizarNaAPI = Boolean.FALSE; - private Checkbox cbEmbarque; - private Checkbox cbDesembarque; - private Checkbox cbVisualizaNaAPI; + //Outros objetos + private EsquemaCorrida esquemaCorrida; + private Date dataInicialFiltroCorridaExistente; + private Date dataFinalFiltroCorridaExistente; - //FlexBus - private Spinner txtHorasParaConfirmacao; - private Spinner txtMinutosParaConfirmacao; - private Intbox txtOcupacaoMinima; - - private Intbox txtOcupacaoHorarioExtra; - private Spinner txtHorasAutomacaoDE; - private Spinner txtMinutosAutomacaoDE; - private Spinner txtHorasAutomacaoATE; - private Spinner txtMinutosAutomacaoATE; - - private Intbox txtNumCorridaExtraAuto; - private Combobox cmbRolOperativoServicoExtra; - - private Checkbox chkBloqueiaCorridaWebAposSaida; @Override public void doAfterCompose(Component comp) throws Exception { @@ -500,7 +519,6 @@ public class EditarCorridaController extends MyGenericForwardComposer { txtNumCorrida.setText(""); txtNumCorrida.setConstraint("no empty"); chkCorridaExtra.setDisabled(Boolean.FALSE); - isClone = true; esquemaCorrida.setEsquemacorridaId(null); esquemaCorrida.setNumCorrida(null); @@ -689,7 +707,7 @@ public class EditarCorridaController extends MyGenericForwardComposer { if(!validaEsquemaTramo(dataDeFecInicioVigencia, dataAteFecfinvigencia)) { return; } else { - salvaEsquemaTramo(dataDeFecInicioVigencia); + salvaEsquemaCorrida(dataDeFecInicioVigencia); } } catch (WrongValueException ex) { @@ -813,7 +831,7 @@ public class EditarCorridaController extends MyGenericForwardComposer { return true; } - private void salvaEsquemaTramo(Date dataDeFecInicioVigencia) throws InterruptedException { + private void salvaEsquemaCorrida(Date dataDeFecInicioVigencia) throws InterruptedException { //FlexBus if(esquemaCorrida.getIsFlexBus()) { esquemaCorrida.setHorasParaConfirmacao(txtHorasParaConfirmacao.getValue()); @@ -904,6 +922,9 @@ public class EditarCorridaController extends MyGenericForwardComposer { } esquemaCorridaService.actualizacion(esquemaCorrida); esquemaCorridaService.actualizaEsquemaTramo(lsParadaEsquema, esquemaCorrida); + if(Boolean.TRUE.equals(isAlteraCorridaJaGerada)) { + validaRealizaGeracaoCorrida(); + } esquemaCorridaList.updateItem(esquemaCorrida); @@ -923,6 +944,91 @@ public class EditarCorridaController extends MyGenericForwardComposer { closeWindow(); } + private void validaRealizaGeracaoCorrida() { + try { + LocalDate inicioLocalDate = dataInicialFiltroCorridaExistente.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDate fimLocalDate = dataFinalFiltroCorridaExistente.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1); + LocalDate currentStart=LocalDate.from(inicioLocalDate); + List tarefaSucesso = new ArrayList(); + List tarefaErros = new ArrayList(); + Date dataIter = Date.from(currentStart.atStartOfDay(ZoneId.systemDefault()).toInstant()); + for (LocalDate date = inicioLocalDate; date.isBefore(fimLocalDate); date = date.plusDays(1)) { + //valida data + try { + //1 - Validar se corrida existe vendas disponíveis + if(!boletoService.isExisteBoletoPorCorrida(esquemaCorrida.getNumCorrida(), dataIter)) { + //2 - Apagar corrida caso não exista venda + Corrida.Id id = new Corrida.Id(esquemaCorrida.getNumCorrida(), dataIter); + //3 - Gerar nova corrida somente se a corrida estiver ativa + Corrida corrida = corridaService.buscarCorridaAtivaPorId(id); + if(corrida !=null) { + try { + corridaService.borrar(corrida); + }catch (DataIntegrityViolationException e) { + if(e.getRootCause()!=null && e.getRootCause().getLocalizedMessage() !=null && e.getRootCause().getLocalizedMessage().contains("SYS_C004956867")) { + String msgErro = "Existe uma ocupação para esta corrida nesta data (tabela Disponibilidade). Corrida:" + esquemaCorrida.getNumCorrida() + " data:" + DateUtil.getStringDate(dataIter); + TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO"); + tarefaErros.add(tarefa); + //log.error("Geração de corrida via Conf. " + msgErro, e); + }else if (e.getRootCause()!=null && e.getRootCause().getLocalizedMessage() !=null && e.getRootCause().getLocalizedMessage().contains("SYS_C004957483")) { + String msgErro = "Existe um assento exclusivo para esta corrida nesta data (tabela ASIENTO_EXCLUSIVO). Corrida:" + esquemaCorrida.getNumCorrida() + " data:" + DateUtil.getStringDate(dataIter); + TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO"); + tarefaErros.add(tarefa); + //log.error("Geração de corrida via Conf. " + msgErro, e); + + }else{ + String msgErro = "Alguma restrição de integridade foi violada. Favor verificar "; + TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO"); + tarefaErros.add(tarefa); + log.error("Geração de corrida via Conf. " + msgErro, e); + } + continue; + + } + //4 - Gerar corrida novamente. + List esquemaCorridaList = new ArrayList(); + esquemaCorridaList.add(esquemaCorrida); + corridaService.generarCorrida(dataIter, esquemaCorridaList, false); + String msgSucesso = "Corrida parada a data " + DateUtil.getStringDate(dataIter) + " gerada com sucesso"; + TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgSucesso, "OK", "OK" ); + tarefaSucesso.add(tarefa); + }else { + String msgErro = "Não econtrado corrida:" + esquemaCorrida.getNumCorrida() + " para a data:" + DateUtil.getStringDate(dataIter); + log.error("Geração de corrida via Conf. " + msgErro); + TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO"); + tarefaErros.add(tarefa); + + } + + }else { + String msgErro = "Corrida não será gerada novamente. Existem vendas para a corrida:" + esquemaCorrida.getNumCorrida() + " na data:" + DateUtil.getStringDate(dataIter); + log.error("Geração de corrida via Conf. " + msgErro); + TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO"); + tarefaErros.add(tarefa); + + } + }catch (Exception e) { + String msgErro = "Serviço. Erro ao regerar a corrida:" + esquemaCorrida.getNumCorrida() + "para a data:" + DateUtil.getStringDate(dataIter); + log.error("Geração de corrida via Conf. " + msgErro, e); + TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO"); + tarefaErros.add(tarefa); + } + } + + Map args = new HashMap(); + dataInicialFiltroCorridaExistente = new Date(); + dataFinalFiltroCorridaExistente = new Date(); + args.put("tarfaSucesso", tarefaSucesso); + args.put("tarefaErros", tarefaErros); + Window dialog = (Window)Executions.createComponents( + "/gui/esquema_operacional/logGeracaoCorridaViaConfServico.zul", null, args); + + dialog.doModal(); + }catch (InterruptedException e) { + log.error("Erro ao gerar corrida para a corrida: " + esquemaCorrida.getNumCorrida()); + } + } + private void salvaNovoEsquemaCorrida(Date dataDeFecInicioVigencia, List lsEC) throws InterruptedException { Calendar agora = Calendar.getInstance(); @@ -1017,7 +1123,6 @@ public class EditarCorridaController extends MyGenericForwardComposer { esquemaCorridaService.suscribir(esquemaCorrida); esquemaCorridaService.actualizaEsquemaTramo(lsParadaEsquema, esquemaCorrida); - isClone = false; } Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.suscribirOK"), Labels.getLabel("editarConfiguracionCorridaController.window.title"), @@ -1041,7 +1146,61 @@ public class EditarCorridaController extends MyGenericForwardComposer { } } + @SuppressWarnings("unchecked") private boolean realizaValidacoes() throws InterruptedException { + + if(lsParadaEsquema!=null && !lsParadaEsquema.isEmpty()) { + int resp = Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.desajaAlterarCorridaJaGeradas"), + Labels.getLabel("editarConfiguracionCorridaController.window.title"), + Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); + + if (resp == Messagebox.YES) { + //chama poupup com filtro de data + try { + @SuppressWarnings("rawtypes") + Map args = new HashMap(); + dataInicialFiltroCorridaExistente = new Date(); + dataFinalFiltroCorridaExistente = new Date(); + args.put("dataInicial", dataInicialFiltroCorridaExistente); + args.put("dataFinal", dataFinalFiltroCorridaExistente); + + Window dialog = (Window)Executions.createComponents( + "/gui/esquema_operacional/filtroDataEdicaoCorrida.zul", null, args); + Button okBtn = (Button) dialog.getFellow("okBtn"); + + okBtn.addEventListener("onClick", new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + try{ + if(DateUtil.diferencaEntreDatasEmdias(dataInicialFiltroCorridaExistente, dataFinalFiltroCorridaExistente) > PERIODO_MAXIMO_90_DIAS) { + String msg = Labels.getLabel("MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoPeriodoMaximo"); + Messagebox.show(msg, Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION);; + } + Datebox fecInicial = (Datebox) dialog.getFellow("fecInicio"); + dataInicialFiltroCorridaExistente = fecInicial.getValue(); + Datebox fecFinal = (Datebox) dialog.getFellow("fecFinal"); + dataFinalFiltroCorridaExistente = fecFinal.getValue(); + isAlteraCorridaJaGerada = Boolean.TRUE; + }catch(Exception e){ + log.error("Erro ao obter data", e); + } + dialog.detach(); + } + }); + dialog.doModal(); + + }catch (Exception e) { + String msg = Labels.getLabel("MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoCorridaExistentes") + e.getMessage(); + Messagebox.show(msg, Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION); + log.error(msg, e); + isAlteraCorridaJaGerada = Boolean.FALSE; + } + }else { + isAlteraCorridaJaGerada = Boolean.FALSE; + } + + } + //Linha Destaivada if (esquemaCorrida.getRuta().getIndRutaCancelada()) { Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.msg.rutaDesativadaId") diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarDataEdicaoCorridaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarDataEdicaoCorridaController.java new file mode 100644 index 000000000..e9141ce49 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarDataEdicaoCorridaController.java @@ -0,0 +1,91 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional; + +import java.util.Date; + +import org.apache.log4j.Logger; +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.Button; +import org.zkoss.zul.Datebox; + +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +/** + * + * @author rodrigo + */ +@Controller("editarDataEdicaoCorridaController") +@Scope("prototype") +public class EditarDataEdicaoCorridaController extends MyGenericForwardComposer { + + + private Button btnApagar; + private Datebox fecInicio; + private Datebox fecFinal; + private Logger log = Logger.getLogger(EditarDataEdicaoCorridaController.class); + + + public Button getBtnApagar() { + return btnApagar; + } + + public void setBtnApagar(Button btnApagar) { + this.btnApagar = btnApagar; + } + + 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; + } + + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + fecInicio.setValue((Date) Executions.getCurrent().getArg().get("dataInicial")); + fecFinal.setValue((Date) Executions.getCurrent().getArg().get("dataFinal")); + + + fecInicio.focus(); + } + + @SuppressWarnings("unchecked") + public void onClick$btnSalvar(Event ev) throws InterruptedException { + Date inicio = fecInicio.getValue(); + Date fim = fecFinal.getValue(); + + if (!fim.before(inicio)) { + Executions.getCurrent().getArg().clear(); + Executions.getCurrent().getArg().put("dataInicial", fecInicio.getValue()); + Executions.getCurrent().getArg().put("dataFinal", fecFinal.getValue()); + + } else { + Messagebox.show( + Labels.getLabel("editarVigenciaTarifaController.MSG.FimMenorInicio"), + Labels.getLabel("editarVigenciaTarifaController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + } + } + + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/LogGeracaoCorridaViaConfServicosController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/LogGeracaoCorridaViaConfServicosController.java new file mode 100644 index 000000000..9b70be124 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/LogGeracaoCorridaViaConfServicosController.java @@ -0,0 +1,92 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Executions; +import org.zkoss.zul.Button; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.vo.esquemaoperacional.TarefaGeracaoCorridaVO; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderTarefaGeracaoCorridaVO; + +@Controller("logGeracaoCorridaViaConfServicosController") +@Scope("prototype") +public class LogGeracaoCorridaViaConfServicosController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + + private MyListbox tarefasList; + private MyListbox errosList; + + private Button btnFechar; + + private Empresa empresa; + + @Override + public void doAfterCompose(Component comp) throws Exception { + + super.doAfterCompose(comp); + + tarefasList.setItemRenderer(new RenderTarefaGeracaoCorridaVO()); + @SuppressWarnings("unchecked") + List tarefaSucessoList = (List) Executions.getCurrent().getArg() + .get("tarfaSucesso"); + if (tarefaSucessoList == null) { + tarefaSucessoList = new ArrayList(); + } + tarefasList.setData(tarefaSucessoList); + + errosList.setItemRenderer(new RenderTarefaGeracaoCorridaVO()); + @SuppressWarnings("unchecked") + List tarefaErroList = (List) Executions.getCurrent().getArg() + .get("tarefaErros"); + if (tarefaErroList == null) { + tarefaErroList = new ArrayList(); + } + errosList.setData(tarefaErroList); + + } + + public MyListbox getTarefasList() { + return tarefasList; + } + + public void setTarefasList(MyListbox tarefasList) { + this.tarefasList = tarefasList; + } + + public MyListbox getErrosList() { + return errosList; + } + + public void setErrosList(MyListbox errosList) { + this.errosList = errosList; + } + + public Empresa getEmpresa() { + return empresa; + } + + public void setEmpresa(Empresa empresa) { + this.empresa = empresa; + } + + public Button getBtnFechar() { + return btnFechar; + } + + public void setBtnFechar(Button btnFechar) { + this.btnFechar = btnFechar; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderTarefaGeracaoCorridaVO.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderTarefaGeracaoCorridaVO.java new file mode 100644 index 000000000..42ec32d7a --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderTarefaGeracaoCorridaVO.java @@ -0,0 +1,34 @@ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.vo.esquemaoperacional.TarefaGeracaoCorridaVO; + +public class RenderTarefaGeracaoCorridaVO implements ListitemRenderer { + + @Override + public void render(Listitem lstm, Object o) throws Exception { + TarefaGeracaoCorridaVO testVO = (TarefaGeracaoCorridaVO) o; + + Listcell lc = new Listcell(); + if (testVO.getCodStatus().equals("OK")) { + lc.setImage("/gui/img/check_icon.png"); + } else if (testVO.getCodStatus().equals("ERRO")) { + lc.setImage("/gui/img/close_icon.png"); + } + + lc.setParent(lstm); + + lc = new Listcell(testVO.getTarefa()); + lc.setParent(lstm); + + lc = new Listcell(testVO.getStatus()); + lc.setParent(lstm); + + lstm.setAttribute("data", testVO); + + } + +} diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label index 55b429347..51d2555f1 100644 --- a/web/WEB-INF/i3-label_en.label +++ b/web/WEB-INF/i3-label_en.label @@ -3467,6 +3467,9 @@ editarConfiguracionCorridaController.corridaAlteradaSucesso.value= Corrida Alter 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 +MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoCorridaExistentes=Não foi possível carrgegar a data, não será alterado as corridas já existentes +MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoPeriodoMaximo= Período máximo para alteração de corridas é de 90 dias + editarConfiguracionCorridaController.lbAutomatizacaoHorarioExtra.value= Automatização Horário Extra editarConfiguracionCorridaController.lbHabilitaCorridaExtraAutomatica.value= Habilita Automatização @@ -3495,6 +3498,7 @@ editarConfiguracionCorridaController.lbD.value = D editarConfiguracionCorridaController.lbCantParados.value = Quantidade de Venda em pé editarConfiguracionCorridaController.MSG.suscribirOK = Configuração de serviço Registrado com Sucesso. editarConfiguracionCorridaController.MSG.borrarPergunta = Deseja Eliminar este serviço? +editarConfiguracionCorridaController.MSG.desajaAlterarCorridaJaGeradas = Deseja alterar localidades para corridas já geradas ? editarConfiguracionCorridaController.MSG.borrarOK = Serviço Excluido com Sucesso. editarConfiguracionCorridaController.MSG.gravarServico = Para configurar a cota, é necessário antes salvar a configuração do serviço editarConfiguracionCorridaController.MSG.editarServicio = Para editar o serviço, é necessário antes salvar a configuração do trem diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 30a01b5b2..bd1ec4042 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -3149,6 +3149,7 @@ editarConfiguracionCorridaController.lbD.value = D editarConfiguracionCorridaController.lbCantParados.value = Cantidad de parados editarConfiguracionCorridaController.MSG.suscribirOK = Configuración de servicio se registró exitosamente editarConfiguracionCorridaController.MSG.borrarPergunta = Desea eliminar este servicio? +editarConfiguracionCorridaController.MSG.desajaAlterarCorridaJaGeradas = Deseja alterar localidades para corridas já geradas ? editarConfiguracionCorridaController.MSG.borrarOK = Servicio se eliminó exitosamente. editarConfiguracionCorridaController.MSG.gravarServico = Para configurar la cota, es necesário antes guardar la configuración de servicio editarConfiguracionCorridaController.MSG.editarServicio = Para editar o serviço, é necessário antes Guardar a configuração do trem @@ -3390,6 +3391,9 @@ editarConfiguracionCorridaController.corridaAlteradaSucesso.value= Raza cambiada 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 +MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoCorridaExistentes=Não foi possível carrgegar a data, não será alterado as corridas já existentes +MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoPeriodoMaximo= Período máximo para alteração de corridas é de 90 dias + editarEmpresaController.habilitaVendaEmAbertoMovimentoCaixa= Habilite la venta abierta con movimiento de efectivo. editarEmpresaController.naoImprimeCupomDeEmbarqueVendaEmAberto=Não Imprime Cupom de Embarque na Venda em aberto editarEmpresaController.naoImprimeCupomDeEmbarqueConfirmacaoDeAberto=Não Imprime Cupom de Embarque na Confirmação de aberto diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 582f3df53..a72e9bcee 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -3477,7 +3477,14 @@ editarConfiguracionCorridaController.corridaAlteradaSucesso.value= Corrida Alter 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 - +MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoCorridaExistentes=Não foi possível carrgegar a data, não será alterado as corridas já existentes +MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoPeriodoMaximo= Período máximo para alteração de corridas é de 90 dias +label.editarConfiguracionCorridaController.inserirFiltroDataCorrida=Insira o filtro de data das corridas a serem alteradas +logGeracaoCorridaViaConfServicosController.btnFechar.tooltiptext=Fechar +logGeracaoCorridaViaConfServicosController.tabCorrida=Sucessos +logGeracaoCorridaViaConfServicosController.tabErros=Erros +logGeracaoCorridaViaConfServicosController.lhStatus=Status +logGeracaoCorridaViaConfServicosController.window.title= Geração de Corrida via Conf. Serviços editarConfiguracionCorridaController.lbAutomatizacaoHorarioExtra.value= Automatização Horário Extra editarConfiguracionCorridaController.lbHabilitaCorridaExtraAutomatica.value= Habilita Automatização editarConfiguracionCorridaController.lbTaxaDeOcupacao.value= Taxa de Ocupação (%) @@ -3505,6 +3512,7 @@ editarConfiguracionCorridaController.lbD.value = D editarConfiguracionCorridaController.lbCantParados.value = Quantidade de Venda em pé editarConfiguracionCorridaController.MSG.suscribirOK = Configuração de serviço Registrado com Sucesso. editarConfiguracionCorridaController.MSG.borrarPergunta = Deseja Eliminar este serviço? +editarConfiguracionCorridaController.MSG.desajaAlterarCorridaJaGeradas = Deseja alterar localidades para corridas já geradas ? editarConfiguracionCorridaController.MSG.borrarOK = Serviço Excluido com Sucesso. editarConfiguracionCorridaController.MSG.gravarServico = Para configurar a cota, é necessário antes salvar a configuração do serviço editarConfiguracionCorridaController.MSG.editarServicio = Para editar o serviço, é necessário antes salvar a configuração do trem diff --git a/web/gui/esquema_operacional/filtroDataEdicaoCorrida.zul b/web/gui/esquema_operacional/filtroDataEdicaoCorrida.zul new file mode 100644 index 000000000..95d0797bb --- /dev/null +++ b/web/gui/esquema_operacional/filtroDataEdicaoCorrida.zul @@ -0,0 +1,43 @@ + + + + + + + + + + +