diff --git a/pom.xml b/pom.xml
index 73d93ba1e..975be39ff 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
br.com.rjconsultores
ventaboletosadm
- 1.53.1
+ 1.53.2
war
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 e6c985326..977f2704d 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
@@ -1,2929 +1,2904 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-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;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.BooleanUtils;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang.math.NumberUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.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;
-import org.zkoss.zk.ui.Component;
-import org.zkoss.zk.ui.Executions;
-import org.zkoss.zk.ui.SuspendNotAllowedException;
-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.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.Label;
-import org.zkoss.zul.Radio;
-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.Constante;
-import com.rjconsultores.ventaboletos.entidad.Corrida;
-import com.rjconsultores.ventaboletos.entidad.CorridaTramo;
-import com.rjconsultores.ventaboletos.entidad.Division;
-import com.rjconsultores.ventaboletos.entidad.Empresa;
-import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento;
-import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
-import com.rjconsultores.ventaboletos.entidad.EsquemaCorridaEmbarqueDesembarque;
-import com.rjconsultores.ventaboletos.entidad.EsquemaCorridaInfo;
-import com.rjconsultores.ventaboletos.entidad.EsquemaOperacional;
-import com.rjconsultores.ventaboletos.entidad.EsquemaTramo;
-import com.rjconsultores.ventaboletos.entidad.Marca;
-import com.rjconsultores.ventaboletos.entidad.Parada;
-import com.rjconsultores.ventaboletos.entidad.ParadaEsquema;
-import com.rjconsultores.ventaboletos.entidad.RolOperativo;
-import com.rjconsultores.ventaboletos.entidad.Ruta;
-import com.rjconsultores.ventaboletos.entidad.RutaEmbarqueDesembarque;
-import com.rjconsultores.ventaboletos.entidad.RutaSecuencia;
-import com.rjconsultores.ventaboletos.entidad.Tramo;
-import com.rjconsultores.ventaboletos.entidad.TramoServicio;
-import com.rjconsultores.ventaboletos.service.AsientoExclusivoService;
-import com.rjconsultores.ventaboletos.service.AutobusService;
-import com.rjconsultores.ventaboletos.service.BoletoService;
-import com.rjconsultores.ventaboletos.service.ClaseServicioService;
-import com.rjconsultores.ventaboletos.service.ConstanteService;
-import com.rjconsultores.ventaboletos.service.CorridaInfoService;
-import com.rjconsultores.ventaboletos.service.CorridaService;
-import com.rjconsultores.ventaboletos.service.CorridaTramoService;
-import com.rjconsultores.ventaboletos.service.DisponibilidadService;
-import com.rjconsultores.ventaboletos.service.DivisionService;
-import com.rjconsultores.ventaboletos.service.EmpresaService;
-import com.rjconsultores.ventaboletos.service.EsquemaCorridaEmbarqueDesembarqueService;
-import com.rjconsultores.ventaboletos.service.EsquemaCorridaInfoService;
-import com.rjconsultores.ventaboletos.service.EsquemaCorridaService;
-import com.rjconsultores.ventaboletos.service.EsquemaTramoService;
-import com.rjconsultores.ventaboletos.service.IntegracaoTotvsService;
-import com.rjconsultores.ventaboletos.service.MarcaClaseServicioService;
-import com.rjconsultores.ventaboletos.service.MarcaService;
-import com.rjconsultores.ventaboletos.service.RolOperativoService;
-import com.rjconsultores.ventaboletos.service.RutaCombinacionService;
-import com.rjconsultores.ventaboletos.service.RutaEmbarqueDesembarqueService;
-import com.rjconsultores.ventaboletos.service.RutaSecuenciaService;
-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;
-import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConfiguracionCorridaTramo;
-import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCorridaInfomacaoTramo;
-import com.rjconsultores.ventaboletos.web.utilerias.render.RenderEsquemaCorridaEmbarqueDesembarque;
-
-/**
- *
- * @author Rafius
- */
-@Controller("editarCorridaController")
-@Scope("prototype")
-public class EditarCorridaController extends MyGenericForwardComposer {
-
- private static final int PERIODO_MAXIMO_90_DIAS = 90;
- private static Logger log = LogManager.getLogger(EditarCorridaController.class);
- private static final long serialVersionUID = 1L;
- //Services
- @Autowired
- private EsquemaCorridaService esquemaCorridaService;
- @Autowired
- private EsquemaTramoService esquemaTramoService;
- @Autowired
- private MarcaService marcaService;
- @Autowired
- private ClaseServicioService claseService;
- @Autowired
- private RutaService rutaService;
- @Autowired
- private RutaCombinacionService rutaCombinacionService;
- @Autowired
- private RutaSecuenciaService rutaSecuenciaService;
- @Autowired
- private EmpresaService empresaService;
- @Autowired
- private MarcaClaseServicioService marcaClaseServicioService;
- @Autowired
- private AutobusService autobusService;
- @Autowired
- private RolOperativoService rolOperativoService;
- @Autowired
- private BusquedaCorridaController busquedaCorridaController;
- @Autowired
- private TramoServicioService tramoServicioService;
- @Autowired
- CorridaService corridaService;
- @Autowired
- private CorridaInfoService corridaInfoService;
- @Autowired
- private AsientoExclusivoService asientoExclusivoService;
- @Autowired
- private DisponibilidadService disponibilidadService;
- @Autowired
- private IntegracaoTotvsService integracaoTotvsService;
- @Autowired
- BoletoService boletoService;
- @Autowired
- private RutaEmbarqueDesembarqueService rutaEmbarqueDesembarqueService;
- @Autowired
- private EsquemaCorridaEmbarqueDesembarqueService esquemaCorridaEmbarqueDesembarqueService;
-
- private DivisionService divisionService;
- @Autowired
- private EsquemaCorridaInfoService esquemaCorridaInfoService;
-
- @Autowired
- private ConstanteService constanteService;
- @Autowired
- private CorridaTramoService corridaTramoService;
-
- //Radio
- private Radio porBloq;
- private Radio latente;
- private Radio autorizada;
- private Radio cancelada;
- private Radio sentado;
- private Radio emPe;
- private Radio naoVende;
- 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;
- private MyListbox lstTrechosInformacaoCorridaListbox;
- //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;
- private Combobox cmbParadaOrigem;
- private Combobox cmbParadaDestino;
- //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;
- private Textbox txtMensagemTrecho;
- //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;
- private List lsMarca;
- private List lsClase;
- private List lsRuta;
- private List lsRutaSecuencia;
- private List lsEsquemaTramo;
- private List lsEsquemaTramoOriginal;
- private List lsAutoBus;
- private List lsRolOperativo;
- private List lsTramosRutaEsquemaCorrida;
- private List lsTramos;
- private List lsParadaEsquema;
- private List lsParadaEsquemaOrignal;
- private List lsRutaEmbarqueDesembarque = new ArrayList();
- private List lsEsquemaCorridaEmbarqueDesembarqueSelected = new ArrayList();
- private List lsEsquemaCorridaEmbarqueDesembarqueBorrar = new ArrayList();
- private List lsEsquemaCorridaInfoSelected;
- private List lsEsquemaCorridaInfoBorrar;
- 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;
- //Outros objetos
- private EsquemaCorrida esquemaCorrida;
- private Date dataInicialFiltroCorridaExistente;
- private Date dataFinalFiltroCorridaExistente;
-
-
- private Button btnCancelarRetomar;
-
- @Override
- public void doAfterCompose(Component comp) throws Exception {
- super.doAfterCompose(comp);
- lsEmbarqueDesembarque = new ArrayList();
- isPrimeiraVez = true;
- salvar = true;
- cmbRuta.setItemRenderer(new MyComboRutaRenderer());
- popularCombobox(cmbIndGeneraFeriado);
-
- esquemaCorridaEmbarqueDesembarqueListbox.setItemRenderer(new RenderEsquemaCorridaEmbarqueDesembarque());
- lstTrechosInformacaoCorridaListbox.setItemRenderer(new RenderCorridaInfomacaoTramo());
-
- esquemaCorrida = (EsquemaCorrida) Executions.getCurrent().getArg().get("esquemaCorrida");
- if (esquemaCorrida.getEsquemacorridaId() != null) {
- esquemaCorrida = esquemaCorridaService.obtenerID(esquemaCorrida.getEsquemacorridaId());
- esquemaCorrida.getEsquemaTramoList();
- }
- esquemaCorridaList = (MyListbox) Executions.getCurrent().getArg().get("esquemaCorridaList");
- busquedaCorridaController = (BusquedaCorridaController) Executions.getCurrent().getArg().get("busquedaCorridaController");
-
- Boolean ehEsquemaAgrupacion = (Boolean) Executions.getCurrent().getArg().get("ehEsquemaAgrupacion") == null ? Boolean.FALSE : (Boolean) Executions.getCurrent().getArg().get("ehEsquemaAgrupacion");
-
- lsParadaEsquema = new ArrayList();
-
- lsEmpresa = new ArrayList();
- lsEmpresa.addAll(UsuarioLogado.getUsuarioLogado().getEmpresa());
-
- lsEmpresaIngresso = new ArrayList();
- lsEmpresaIngresso.addAll(UsuarioLogado.getUsuarioLogado().getEmpresa());
-
- lsClase = claseService.buscarTodosExceto(-1);
-
- lsRolOperativo = rolOperativoService.obtenerTodos();
-
- lsAutoBus = autobusService.obtenerTodos();
-
- lsEsquemaCorridaInfoSelected = new ArrayList();
- lsEsquemaCorridaInfoBorrar = new ArrayList();
-
- if (esquemaCorrida.getEsquemacorridaId() != null) {
-
- // 01 - não se pode mudar dados básicos da corrida.
- // 02 - Segundo a Lety os campos CLASE, MARCA E EMPRESAS...
- // Poderão ser editados pelo usuario.
- // RUTA permanece inalterado.
-
- if (esquemaCorrida.getRuta() != null) {
- lsRutaEmbarqueDesembarque = rutaEmbarqueDesembarqueService.obtenerPorRuta(esquemaCorrida.getRuta());
- }
- lsEsquemaCorridaEmbarqueDesembarqueSelected = esquemaCorridaEmbarqueDesembarqueService.obtenerPorEsquemaCorrida(esquemaCorrida);
- lsEsquemaCorridaInfoSelected = esquemaCorridaInfoService.obtenerPorEsquemaCorrida(esquemaCorrida);
-
- esquemaCorridaEmbarqueDesembarqueListbox.setData(lsEsquemaCorridaEmbarqueDesembarqueSelected);
- lstTrechosInformacaoCorridaListbox.setData(lsEsquemaCorridaInfoSelected);
-
- if (esquemaCorrida.getRuta() != null) {
- embarqueDesembarqueDisabled = false;
- }
-
- if (ehEsquemaAgrupacion) {
- fecniciovigencia.setDisabled(Boolean.TRUE);
- fecfinvigencia.setDisabled(Boolean.TRUE);
- txtQtdeDiasGeracao.setDisabled(Boolean.TRUE);
- horasalida.setDisabled(Boolean.TRUE);
- cmbIndGeneraFeriado.setDisabled(Boolean.TRUE);
- chkDoblePiso.setDisabled(Boolean.TRUE);
-
- lun.setDisabled(Boolean.TRUE);
- mar.setDisabled(Boolean.TRUE);
- mie.setDisabled(Boolean.TRUE);
- jue.setDisabled(Boolean.TRUE);
- vie.setDisabled(Boolean.TRUE);
- sab.setDisabled(Boolean.TRUE);
- dom.setDisabled(Boolean.TRUE);
-
- }
-
- cmbClase.setDisabled(Boolean.TRUE);
- cmbMarca.setDisabled(Boolean.TRUE);
- cmbRuta.setDisabled(Boolean.TRUE);
- cmbEmpresaCorrida.setDisabled(Boolean.TRUE);
- cmbEmpresaIngresso.setDisabled(Boolean.TRUE);
- txtNumCorrida.setDisabled(Boolean.TRUE);
- chkCorridaExtra.setDisabled(Boolean.TRUE);
-
- if (esquemaCorrida.getIndGeneraFeriado() != null) {
- if (esquemaCorrida.getIndGeneraFeriado().equals("S")) {
- cmbIndGeneraFeriado.setSelectedIndex(0);
- } else if (esquemaCorrida.getIndGeneraFeriado().equals("F")) {
- cmbIndGeneraFeriado.setSelectedIndex(1);
- } else if (esquemaCorrida.getIndGeneraFeriado().equals("N")) {
- cmbIndGeneraFeriado.setSelectedIndex(2);
- }
- }
-
- if (esquemaCorrida.getPisoExtra() != null && esquemaCorrida.getPisoExtra()) {
- chkDoblePiso.setChecked(true);
- lbNumCorridaPisoExtra.setVisible(Boolean.TRUE);
- txtNumCorridaPisoExtra.setVisible(Boolean.TRUE);
-
- lbNumCorridaPisoExtra2.setVisible(Boolean.TRUE);
- txtNumCorridaPisoExtra2.setVisible(Boolean.TRUE);
- }
-
- //FlexBus
- txtHorasParaConfirmacao.setValue(esquemaCorrida.getHorasParaConfirmacao());
- txtMinutosParaConfirmacao.setValue(esquemaCorrida.getMinutosParaConfirmacao());
- txtOcupacaoMinima.setValue(esquemaCorrida.getOcupacaoMinima());
-
- //Automatizacao de horario extra
- txtOcupacaoHorarioExtra.setValue(esquemaCorrida.getTaxaOcupacao());
- txtHorasAutomacaoDE.setValue(esquemaCorrida.getHorasAutomacaoHEDe());
- txtMinutosAutomacaoDE.setValue(esquemaCorrida.getMinutosAutomacaoHEDe());
- txtHorasAutomacaoATE.setValue(esquemaCorrida.getHorasAutomacaoHEAte());
- txtMinutosAutomacaoATE.setValue(esquemaCorrida.getMinutosAutomacaoHEAte());
- }
-
- // Llena los valores de los combos
- llenarRutasPorClase();
- llenarMarcaPorClaseServicio();
-
- esquemaTramoList.setItemRenderer(new RenderConfiguracionCorridaTramo(esquemaCorrida.getHorasalida()));
- esquemaTramoList.addEventListener("onDoubleClick", new EventListener() {
-
- @Override
- public void onEvent(Event event) throws Exception {
- ParadaEsquema pe = (ParadaEsquema) esquemaTramoList.getSelected();
- EsquemaTramo esquemaTramo = null;
-
- for (EsquemaTramo et : lsEsquemaTramo) {
- Short numSec = et.getNumsecuencia();
-
- if (numSec.equals(pe.getNumsecuencia())) {
- esquemaTramo = et;
- esquemaTramo.setPlataforma(pe.getPlataforma());
- }
- }
-
- verTempoEstanciaTramo(esquemaTramo, pe, (short) esquemaTramoList.getItemCount());
- }
- });
-
- try {
- lsEsquemaTramo = new ArrayList();
-
- if (esquemaCorrida.getEsquemacorridaId() == null) {
- EsquemaOperacional eo = new EsquemaOperacional();
- eo.setActivo(Boolean.TRUE);
- eo.setFecmodif(Calendar.getInstance().getTime());
- eo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
- esquemaCorrida.setEsquemaOperacional(eo);
-
- transportePasajeros.setChecked(Boolean.TRUE);
- } else {
- esquemaCorridaService.obtenerID(esquemaCorrida.getEsquemacorridaId());
-
- esquemaCorrida.getEsquemaOperacional();
-
- porBloq.setVisible(false);
-
- if (esquemaCorrida.getStatusCorrida() != null) {
- if (esquemaCorrida.getStatusCorrida().equals("L")) {
- latente.setChecked(true);
- } else if (esquemaCorrida.getStatusCorrida().equals("A")) {
- autorizada.setChecked(true);
- } else {
- cancelada.setChecked(true);
- }
-
- if (esquemaCorrida.getTipocorrida().equals("F")) {
- fletes.setChecked(true);
- } else if (esquemaCorrida.getTipocorrida().equals("S")) {
- viajesEspeciales.setChecked(true);
- } else {
- transportePasajeros.setChecked(true);
- }
-
- }
- lsEsquemaTramo = esquemaTramoService.obtenerPorEsquemaCorridaOrderNumSec(esquemaCorrida);
- lsEsquemaTramoOriginal = new ArrayList();
- for (EsquemaTramo esquemaTramo : lsEsquemaTramoOriginal) {
- lsEsquemaTramoOriginal.add(esquemaTramo.clone());
- }
- //lsEsquemaTramoOriginal.addAll(lsEsquemaTramo);
- carregarParadaSecuencia(lsEsquemaTramo);
- lsParadaEsquemaOrignal = new ArrayList();
- for (ParadaEsquema paradaEsquema : lsParadaEsquema) {
- lsParadaEsquemaOrignal.add(paradaEsquema.clone());
- }
- //lsParadaEsquemaOrignal.addAll(lsParadaEsquema);
- selecionarRutaSequenciaForaEsqCorrida();
- }
-
- fecniciovigencia.focus();
-
- horasalida.setVisible(true);
- horasalidaLabel.setVisible(true);
- minutos.setVisible(false);
- minutosLabel1.setVisible(false);
- minutosLabel2.setVisible(false);
- de.setVisible(false);
- horaLabel1.setVisible(false);
- horaLabel2.setVisible(false);
- hasta.setVisible(false);
- horaLabel21.setVisible(false);
- horaLabel22.setVisible(false);
-
- if (esquemaCorrida.getEsquemacorridaId() == null) {
- btnApagar.setVisible(Boolean.FALSE);
- }
-
- if (esquemaCorrida.getEsquemaCorridaRebote() != null) {
- txtIdCorridaRebote.setValue(esquemaCorrida.getEsquemaCorridaRebote().getEsquemacorridaId().toString());
-
- }
-
- exibirDivision();
- setSelecaoCboBPE();
- alterarBotaoRetomarCancelar();
-
- } catch (Exception ex) {
- log.error("Error al editar una corrida", ex);
- Messagebox.show(Labels.getLabel("MSG.Error"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.ERROR);
- }
- }
-
- public void selecionarHorarioNãoImpBPE() {
- if (rdImprimeBPE.isChecked()) {
- horaFimNaoImpBpe.setReadonly(true);
- horaFimNaoImpBpe.setDisabled(true);
- horaIniNaoImpBpe.setReadonly(true);
- horaIniNaoImpBpe.setDisabled(true);
- } else if (rdNaoImprimeBPE.isChecked()) {
- horaFimNaoImpBpe.setReadonly(false);
- horaFimNaoImpBpe.setDisabled(false);
- horaIniNaoImpBpe.setReadonly(false);
- horaIniNaoImpBpe.setDisabled(false);
- }
- }
-
- private void setSelecaoCboBPE() {
- if (esquemaCorrida.getIndNaoImprimeBpe() == null || esquemaCorrida.getIndNaoImprimeBpe().equals("0")) {
- rdImprimeBPE.setChecked(true);
- } else {
- rdNaoImprimeBPE.setChecked(true);
- }
- selecionarHorarioNãoImpBPE();
- }
-
- public void onClick$rdgNaoImprimeViaBPE(Event event) {
- String option = rdImprimeBPE.isChecked() ? "0" : "1";
-
- if (option.equals("0")) {
- esquemaCorrida.setIndNaoImprimeBpe("0");
- } else if (option.equals("1")) {
- esquemaCorrida.setIndNaoImprimeBpe("1");
- }
- setSelecaoCboBPE();
- }
-
- public void onClick$btnCopiar(Event ev) {
- try {
- if (esquemaCorrida.getEsquemacorridaId() != null) {
- // Carregar campos lazy
- esquemaCorrida = esquemaCorridaService.obtenerID(esquemaCorrida.getEsquemacorridaId());
- esquemaCorrida.clonar();
- esquemaCorrida = esquemaCorrida.getCloneObject();
-
- txtNumCorrida.setConstraint("");
- txtNumCorrida.setDisabled(false);
- txtNumCorrida.setText("");
- txtNumCorrida.setConstraint("no empty");
- chkCorridaExtra.setDisabled(Boolean.FALSE);
-
- esquemaCorrida.setEsquemacorridaId(null);
- esquemaCorrida.setNumCorrida(null);
- for (EsquemaTramo esquemaTramo : esquemaCorrida.getEsquemaTramoList()) {
- esquemaTramo.setEsquematramoId(null);
- esquemaTramo.setEsquemaCorrida(esquemaCorrida);
- }
-
- for (EsquemaAsiento esquemaAsiento : esquemaCorrida.getEsquemaAsientoList()) {
- esquemaAsiento.setEsquemaasientoId(null);
- esquemaAsiento.setEsquemaCorrida(esquemaCorrida);
- }
-
- for (EsquemaCorridaEmbarqueDesembarque esquemaCorridaEmbarqueDesembarque : esquemaCorrida.getLsEsquemaCorridaEmbarqueDesembarque()) {
- esquemaCorridaEmbarqueDesembarque.setEsquemaCorridaEmbarqueDesembarqueId(null);
- esquemaCorridaEmbarqueDesembarque.setEsquemaCorrida(esquemaCorrida);
- }
-
- tratarEsquemaTramoList();
- }
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- }
- }
-
- private void tratarEsquemaTramoList() {
- lsEsquemaTramo.clear();
- lsEsquemaTramo.addAll(esquemaCorrida.getEsquemaTramoList());
- Collections.sort(lsEsquemaTramo);
- esquemaCorrida.setEsquemaTramoList(lsEsquemaTramo);
- }
-
- public void clearCombobox(Combobox combobox) {
-
- int size = combobox.getItemCount();
-
- for (int i = size - 1; i >= 0; i--) {
- combobox.removeItemAt(i);
- }
- }
-
- public void popularCombobox(Combobox cmb) throws Exception {
-
- clearCombobox(cmb);
- for (EsquemaCorrida.GerarFeriado p : EsquemaCorrida.GerarFeriado.values()) {
- Comboitem comboItem = new Comboitem(p.descricao());
- comboItem.setValue(p.valor());
- comboItem.setParent(cmb);
- }
-
- cmb.setSelectedIndex(0);
-
- }
-
- private void exibirDivision() {
- if (ApplicationProperties.getInstance().isCustomHabilitado(CustomEnum.EXIBIR_DIVISION_CONFIGURACION_CORRIDA.getDescricao())) {
-
- lsDivision = divisionService.obtenerTodos();
-
- lbDivision.setVisible(Boolean.TRUE);
- cmbDivision.setVisible(Boolean.TRUE);
-
- }
- }
-
- private void addTramoPardaEsquema(Parada parada, Short numsecuencia, Date tiempoEstancia, String plataforma, Date excepcionRecorrido, Date defautRecorrido, String tipoPassagem) {
- ParadaEsquema ps = new ParadaEsquema();
- ps.setParada(parada);
- ps.setNumsecuencia(numsecuencia);
- ps.setTiempoEstancia(tiempoEstancia);
- ps.setPlataforma(plataforma);
- ps.setExcepcionRecorrido(excepcionRecorrido);
- ps.setPadraoRecorrido(defautRecorrido);
- ps.setTipoPassagem(tipoPassagem);
-
- lsParadaEsquema.add(ps);
- }
-
- @SuppressWarnings("unused")
- private void carregarParadaSecuencia(List lsEsquemaTramo) {
-
- ClaseServicio clase = esquemaCorrida.getClaseServicio();
-
- lsParadaEsquema.clear();
- if (!lsEsquemaTramo.isEmpty()) {
- List lsEsquemaTramoTodos = new ArrayList();
- if (esquemaCorrida.getEsquemacorridaId() != null) {
- lsEsquemaTramoTodos = esquemaTramoService.obtenerAtivosDesativosPorEsquemaCorrida(esquemaCorrida);
- }
-
- Short numsecuencia = 0;
-
- for (int i = 0; i < lsEsquemaTramo.size(); i++) {
-
- EsquemaTramo rs = lsEsquemaTramo.get(i);
-
- Tramo tramo = rs.getTramo();
- numsecuencia = rs.getNumsecuencia();
- Date tiempoEstancia = null;
- if ((i != 0) && (i != (lsEsquemaTramo.size()))) {
- tiempoEstancia = lsEsquemaTramo.get(i).getTiempoEstancia();
- }
-
- Date excepcionRecorrido = null;
- if (i != (lsEsquemaTramo.size())) {
- excepcionRecorrido = lsEsquemaTramo.get(i).getExcepcionRecorrido();
- }
-
- Date defautRecorrido = null;
- if (clase != null) {
- List lsTramoServicio = tramoServicioService.buscarPorTramoServico(tramo, clase);
-
- if (i != (lsEsquemaTramo.size())) {
- if (!lsTramoServicio.isEmpty()) {
- // soh eh permitido gravar um por classe, get(0):
- defautRecorrido = lsTramoServicio.get(0).getTiemporecorrido();
- }
- }
- }
- String tipoPassagem ="";
-
- Parada paradaOrigem = tramo.getOrigem();
- tipoPassagem = rs.getTipoPassagem();
- String plataforma = rs.getPlataforma();
- // So adicionar a parada se o EsquemaTramo estiver ativo.
- if (rs.getActivo()) {
- addTramoPardaEsquema(paradaOrigem, numsecuencia, tiempoEstancia, plataforma, excepcionRecorrido, defautRecorrido, tipoPassagem);
- }
- }
-
- EsquemaTramo esquemaTramoFinal = lsEsquemaTramo.get(lsEsquemaTramo.size() - 1);
-
- Parada paradaDestino = esquemaTramoFinal.getTramo().getDestino();
- String tipoPassagem = "";
- String plataforma = txtPlataforma.getValue();
-
- if(!isPrimeiraVez){
- if (sentado.isChecked()) {
- tipoPassagem = "S";
- } else if (emPe.isChecked()) {
- tipoPassagem = "P";
- } else if (naoVende.isChecked()) {
- tipoPassagem = "N";
- } else {
- tipoPassagem = "A";
- }
- }
- isPrimeiraVez = false;
- Integer num = numsecuencia.intValue() + 1;
-
- addTramoPardaEsquema(paradaDestino, num.shortValue(), null, plataforma, null, null,tipoPassagem);
- }
-
- esquemaTramoList.setData(lsParadaEsquema);
- }
-
- Boolean salvar = true;
-
- @SuppressWarnings({ "deprecation", "unchecked" })
- public void onClick$btnSalvar(Event ev) throws InterruptedException {
-
- if(!salvar){
- return;
- }
-
- salvar = false;
- txtNumCorrida.getValue();
- Date dataDeFecInicioVigencia = fecniciovigencia.getValue();
- Date dataAteFecfinvigencia = fecfinvigencia.getValue();
-
- if(!realizaValidacoes()) {
- return;
- }
-
- for (EsquemaCorridaEmbarqueDesembarque esquemaCorridaEmbarqueDesembarque : lsEsquemaCorridaEmbarqueDesembarqueBorrar) {
- if (esquemaCorridaEmbarqueDesembarque.getEsquemaCorridaEmbarqueDesembarqueId() != null) {
- esquemaCorridaEmbarqueDesembarqueService.borrar(esquemaCorridaEmbarqueDesembarque);
- }
- }
-
- for (EsquemaCorridaInfo esquemaCorridaInfo : lsEsquemaCorridaInfoBorrar) {
- if (esquemaCorridaInfo.getEsquemaCorridaInfoId() != null) {
- esquemaCorridaInfoService.borrar(esquemaCorridaInfo);
- }
- }
- //Imprimir ou não recibo BPE na embarcada
- validaNaoImprimeBpe(dataAteFecfinvigencia);
-
-
- try {
-
- dataAteFecfinvigencia.setSeconds(59);
-
- if(!validaEsquemaTramo(dataDeFecInicioVigencia, dataAteFecfinvigencia)) {
- return;
- } else {
- salvaEsquemaCorrida(dataDeFecInicioVigencia);
- }
-
- } catch (WrongValueException ex) {
- throw (WrongValueException) ex;
- } catch (Exception ex) {
- log.error("", ex);
- Messagebox.show(Labels.getLabel("MSG.Error").concat(" - ").concat(ex.toString()),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.ERROR);
- }
- }
-
- private void validaNaoImprimeBpe(Date dataAteFecfinvigencia) {
- boolean isNaoImprimeBPE = esquemaCorrida.getIndNaoImprimeBpe() == null ? false : esquemaCorrida.getIndNaoImprimeBpe().equals("1");
- if(isNaoImprimeBPE) {
- Date dataDeNaoImpBpe = horaIniNaoImpBpe.getValue();
- Date dataAteNaoImpBpe = horaFimNaoImpBpe.getValue();
- boolean isHoraValida = horaIniNaoImpBpe.getValue() == null || horaFimNaoImpBpe.getValue() == null ? false : true;
- if(isHoraValida) {
- dataDeNaoImpBpe.setSeconds(59);
- dataAteFecfinvigencia.setSeconds(59);
- if(dataDeNaoImpBpe.after(dataAteNaoImpBpe)) {
- esquemaCorrida.setHoraIniNaoImpBPE(buscarHora(dataAteNaoImpBpe));
- esquemaCorrida.setHoraFimNaoImpBPE(buscarHora(dataDeNaoImpBpe));
- } else if(dataDeNaoImpBpe.before(dataAteNaoImpBpe)) {
- esquemaCorrida.setHoraIniNaoImpBPE(buscarHora(dataDeNaoImpBpe));
- esquemaCorrida.setHoraFimNaoImpBPE(buscarHora(dataAteNaoImpBpe));
- } else {
- esquemaCorrida.setIndNaoImprimeBpe("0");
- setSelecaoCboBPE();
- }
- } else {
- esquemaCorrida.setIndNaoImprimeBpe("0");
- setSelecaoCboBPE();
- }
- }
-
- if (chkDoblePiso.isChecked()) {
- txtNumCorridaPisoExtra.getValue();
- txtNumCorridaPisoExtra2.getValue();
- }
- }
-
- private boolean validaEsquemaTramo(Date dataDeFecInicioVigencia, Date dataAteFecfinvigencia ) throws InterruptedException {
- Comboitem ciRuta = cmbRuta.getSelectedItem();
- Ruta ruta = null;
- if (ciRuta != null) {
- ruta = (Ruta) ciRuta.getValue();
- }
-
- if (chkDoblePiso.isChecked() && !validarPisoExtra()) {
- salvar = true;
- return false;
- }
-
- if (dataDeFecInicioVigencia.after(dataAteFecfinvigencia)) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.busquedaPeriodo"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.EXCLAMATION);
- return false;
- }
-
- if(ruta==null) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.RutaVazia"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.EXCLAMATION);
- return false;
- }
-
- if(lsEsquemaTramo.isEmpty()) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.RutaSemTramos"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.EXCLAMATION);
- return false;
-
- }
-
- if (esquemaCorrida.getClaseServicio() == null) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.Clase"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK,
- Messagebox.EXCLAMATION);
- salvar = true;
- return false;
- } else if (esquemaCorrida.getMarca() == null) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.Marca"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK,
- Messagebox.EXCLAMATION);
- salvar = true;
- return false;
- } else if (esquemaCorrida.getRuta() == null) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.Ruta"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK,
- Messagebox.EXCLAMATION);
- salvar = true;
- } else if (esquemaCorrida.getEmpresa() == null) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.Empresa"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK,
- Messagebox.EXCLAMATION);
- salvar = true;
- return false;
- } else if (esquemaCorrida.getEmpresa1() == null) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.Empresa1"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK,
- Messagebox.EXCLAMATION);
- salvar = true;
- return false;
- } else if (esquemaCorrida.getRolOperativo() == null) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.Rol"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK,
- Messagebox.EXCLAMATION);
- salvar = true;
- return false;
- }
-
- return true;
- }
-
- private void salvaEsquemaCorrida(Date dataDeFecInicioVigencia) throws InterruptedException {
- //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);
- }
-
- //Automacao Horario Extra
- if(esquemaCorrida.getIsAutomacaoHorarioExtra()) {
- esquemaCorrida.setHorasAutomacaoHEDe(txtHorasAutomacaoDE.getValue() == null ? 0 : txtHorasAutomacaoDE.getValue());
- esquemaCorrida.setMinutosAutomacaoHEDe(txtMinutosAutomacaoDE.getValue() == null ? 0 : txtMinutosAutomacaoDE.getValue());
- esquemaCorrida.setHorasAutomacaoHEAte(txtHorasAutomacaoATE.getValue() == null ? 0 : txtHorasAutomacaoATE.getValue());
- esquemaCorrida.setMinutosAutomacaoHEAte(txtMinutosAutomacaoATE.getValue() == null ? 0 : txtMinutosAutomacaoATE.getValue());
- esquemaCorrida.setTaxaOcupacao(txtOcupacaoHorarioExtra.getValue() == null ? 0 : txtOcupacaoHorarioExtra.getValue() );
- esquemaCorrida.setNumCorridaServicoExtra(txtNumCorridaExtraAuto.getValue());
-
- esquemaCorrida.setHorasalidaExtra(buscarHora(esquemaCorrida.getHorasalidaExtra()));
- }
-
- if (porBloq.isChecked()) {
- de.getValue();
- hasta.getValue();
- minutos.getValue();
- } else {
- horasalida.getValue();
- }
-
- esquemaCorrida.setInfoCorrida(txtInfoCorrida.getValue());
- esquemaCorrida.setIndCorridaExtra(chkCorridaExtra.isChecked());
- esquemaCorrida.setNumCorrida(txtNumCorrida.getValue());
- esquemaCorrida.setActivo(Boolean.TRUE);
- esquemaCorrida.setFecmodif(Calendar.getInstance().getTime());
- esquemaCorrida.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
- esquemaCorrida.setIndBloqueiaWebAposSaida(chkBloqueiaCorridaWebAposSaida.isChecked());
-
- esquemaCorrida.setDiagramaAutobusId(esquemaCorrida.getRolOperativo().getDiagramaAutobus().getDiagramaautobusId().intValue());
-
- if (cmbIndGeneraFeriado.getSelectedItem() != null) {
- esquemaCorrida.setIndGeneraFeriado((String) cmbIndGeneraFeriado.getSelectedItem().getValue());
- }
-
- if (latente.isChecked()) {
- esquemaCorrida.setStatusCorrida("L");
- } else if (autorizada.isChecked()) {
- esquemaCorrida.setStatusCorrida("A");
- } else {
- esquemaCorrida.setStatusCorrida("C");
- }
-
- if (fletes.isChecked()) {
- esquemaCorrida.setTipocorrida("F");
- } else if (viajesEspeciales.isChecked()) {
- esquemaCorrida.setTipocorrida("S");
- } else if (transportePasajeros.isChecked()) {
- esquemaCorrida.setTipocorrida("P");
- }
-
- // nao gravar segundos:
- esquemaCorrida.setHorasalida(buscarHora(esquemaCorrida.getHorasalida()));
-
- List lsEC = Collections.EMPTY_LIST;
-
- if (esquemaCorrida.getEsquemacorridaId() == null) {
- salvaNovoEsquemaCorrida(dataDeFecInicioVigencia, lsEC);
- } else {
- atualizaDadosEsquemaCorrida(lsEC);
- }
- }
-
- private void atualizaDadosEsquemaCorrida(List lsEC) throws InterruptedException {
- boolean podeSalvar = false;
- if ((lsEC.isEmpty())) {
- podeSalvar = true;
- } else {
- for (EsquemaCorrida ec : lsEC) {
- if (ec.getEsquemacorridaId().equals(esquemaCorrida.getEsquemacorridaId())) {
- podeSalvar = true;
- }
- }
- }
- if (podeSalvar) {
- if (!chkDoblePiso.isChecked()) {
- esquemaCorrida.setNumCorridaPisoExtra(null);
- }
- esquemaCorridaService.actualizacion(esquemaCorrida);
- esquemaCorridaService.actualizaEsquemaTramo(lsParadaEsquema, esquemaCorrida);
- if(Boolean.TRUE.equals(isAlteraCorridaJaGerada)) {
- validaRealizaGeracaoCorrida();
- }
-
- esquemaCorridaList.updateItem(esquemaCorrida);
-
- } else {
- Messagebox.show(Labels.getLabel("MSG.Registro.Existe"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK,
- Messagebox.EXCLAMATION);
- salvar = true;
- }
-
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.suscribirOK"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK,
- Messagebox.INFORMATION);
-
- closeWindow();
- }
-
- private void validaRealizaGeracaoCorrida() {
- try {
- LocalDate inicioLocalDate = dataInicialFiltroCorridaExistente.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
- LocalDate fimLocalDate = dataFinalFiltroCorridaExistente.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1);
- List tarefaSucesso = new ArrayList();
- List tarefaErros = new ArrayList();
- for (LocalDate date = inicioLocalDate; date.isBefore(fimLocalDate); date = date.plusDays(1)) {
- Date dataIter = Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant());
- try {
-
- List lsParadaEsquemaRemovidas = new ArrayList();
- List lsParadaEsquemaEditadas =new ArrayList();
- preencheParadaEsquemaRemovidaEEditada(lsParadaEsquemaRemovidas, lsParadaEsquemaEditadas);
-
- List lsParadaEsquemaAdicionadasRemovidasOuEditadas = new ArrayList() ;
- if(lsParadaEsquemaEditadas!=null) {
- lsParadaEsquemaAdicionadasRemovidasOuEditadas.addAll(lsParadaEsquemaEditadas);
- }
- if(lsParadaEsquemaRemovidas!=null) {
- lsParadaEsquemaAdicionadasRemovidasOuEditadas.addAll(lsParadaEsquemaRemovidas);
- }
-
- List localidadeComVenda =null;
- for (ParadaEsquema paradaEsquema : lsParadaEsquemaAdicionadasRemovidasOuEditadas) {
- if(boletoService.isExisteBoletoPorCorridaOrigemIdOuDestinoId(esquemaCorrida.getNumCorrida(), dataIter, paradaEsquema.getParada().getParadaId(), paradaEsquema.getParada().getParadaId())) {
- if(localidadeComVenda == null) {
- localidadeComVenda = new ArrayList();
- }
- localidadeComVenda.add(paradaEsquema);
- String msgErro = "Trecho com origem/destino: " + paradaEsquema.getParada().getDescparada() + " não pode ser alterdo" + ". Existem vendas para essa localidade da 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);
- }
-
- }
- List corridaTramoList = null;
- //Se nenhuma localidade editada tem venda, recria todos os corridas tramos da corrida
- if(localidadeComVenda==null || localidadeComVenda.isEmpty()) {
- corridaTramoList = corridaTramoService.recriaCorridaTramo(esquemaCorrida, dataIter, lsEsquemaTramo );
- String msgSucesso = "Corrida para a data " + DateUtil.getStringDate(dataIter) + " gerada com sucesso";
- TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgSucesso, "OK", "OK" );
- tarefaSucesso.add(tarefa);
-
- }else {
- List lsEsquemaTramoIter = new ArrayList();
- List localidadeComVendaIter = new ArrayList();
- localidadeComVendaIter.addAll(lsParadaEsquema);
- for (ParadaEsquema paradaEsquemaComVenda : localidadeComVenda) {
- List listParadaEsquemaComNovaParada = new ArrayList();
- lsEsquemaTramoIter = adicionarParadaEsquemaTramo(localidadeComVendaIter,paradaEsquemaComVenda.getParada() , esquemaCorrida, (Ruta) cmbRuta.getSelectedItem().getValue(), paradaEsquemaComVenda.getPlataforma(), paradaEsquemaComVenda.getTipoPassagem(), listParadaEsquemaComNovaParada);
- localidadeComVendaIter = listParadaEsquemaComNovaParada;
- }
- corridaTramoList = corridaTramoService.recriaCorridaTramo(esquemaCorrida, dataIter, lsEsquemaTramoIter );
- }
-
- //Valida e apaga corrida caso exista
- TarefaGeracaoCorridaVO tarefaErro= validaApagaCorridaAgerar(esquemaCorrida.getNumCorrida(), dataIter);
- if(tarefaErro !=null) {
- tarefaErros.add(tarefaErro);
- continue;
- }
-
- //Valida e apaga corrida piso extra caso exista
- if(esquemaCorrida.getNumCorridaPisoExtra()!=null) {
- tarefaErro= validaApagaCorridaAgerar(esquemaCorrida.getNumCorridaPisoExtra(), dataIter);
- if(tarefaErro !=null) {
- tarefaErros.add(tarefaErro);
- }
- }
-
- // Gerar corrida novamente.
- List esquemaCorridaList = new ArrayList();
- esquemaCorridaList.add(esquemaCorrida);
- corridaService.generarCorrida(dataIter, esquemaCorridaList, false, corridaTramoList);
-
-
-
- }catch (Exception e) {
- String msgErro = "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 List preencheParadaEsquemaNovas() {
- List lsParadaEsquemaAdicionado = new ArrayList();
- for (ParadaEsquema paradaEsquemaNov : lsParadaEsquema) {
- boolean isParadaEsquemaAntiga = false;
- for (ParadaEsquema paradaEsquemaAntiga : lsParadaEsquemaOrignal) {
- if(paradaEsquemaAntiga.equals(paradaEsquemaNov)) {
- isParadaEsquemaAntiga = true;
- break;
- }
- }
- //Se isParadaEsquemaNaoRemovida=false a parada esquema foi removida, adiciona na lista.
- if(!isParadaEsquemaAntiga) {
- if(lsParadaEsquemaAdicionado == null) {
- lsParadaEsquemaAdicionado = new ArrayList();
- }
- lsParadaEsquemaAdicionado.add(paradaEsquemaNov);
- }
- }
- return lsParadaEsquemaAdicionado;
- }
-
- /**
- * Preenche a lista de paradas removidas e a lista de paradas Editadas
- *
- * @param lsParadaEsquemaRemovidas
- * @param lsParadaEsquemaEditadas
- */
- private void preencheParadaEsquemaRemovidaEEditada(List lsParadaEsquemaRemovidas, List lsParadaEsquemaEditadas) {
- for (ParadaEsquema paradaEsquemaAntiga : lsParadaEsquemaOrignal) {
- boolean isParadaEsquemaNaoRemovida = false;
- for (ParadaEsquema paradaEsquemaNova : lsParadaEsquema) {
- if(paradaEsquemaNova.equals(paradaEsquemaAntiga)) {
- isParadaEsquemaNaoRemovida = true;
- ParadaEsquema paradaEsquemaEditada = validaParadaEsquemaEditada(paradaEsquemaAntiga, paradaEsquemaNova);
- if(paradaEsquemaEditada !=null) {
- if(lsParadaEsquemaEditadas==null) {
- lsParadaEsquemaEditadas = new ArrayList();
- }
- lsParadaEsquemaEditadas.add(paradaEsquemaEditada);
- }
- break;
- }
- }
- //Se isParadaEsquemaNaoRemovida=false a parada esquema foi removida, adiciona na lista.
- if(!isParadaEsquemaNaoRemovida) {
- if(lsParadaEsquemaRemovidas == null) {
- lsParadaEsquemaRemovidas = new ArrayList();
- }
- lsParadaEsquemaRemovidas.add(paradaEsquemaAntiga);
- }
- }
- }
-
- /**
- * Se editou retorna a parada se não retorna nulo
- * @param paradaEsquemaAntiga
- * @param paradaEsquemaNova
- * @return
- */
- private ParadaEsquema validaParadaEsquemaEditada(ParadaEsquema paradaEsquemaAntiga, ParadaEsquema paradaEsquemaNova ) {
- boolean isParadaEsquemaEditada = false;
- //verifica se editou tiempoEstancia
- if(paradaEsquemaAntiga.getTiempoEstancia()!=null && paradaEsquemaNova.getTiempoEstancia()!=null
- && !paradaEsquemaAntiga.getTiempoEstancia().equals(paradaEsquemaNova.getTiempoEstancia())) {
- isParadaEsquemaEditada = true;
- }
- //verifica se editou excepcionRecorrido
- if(paradaEsquemaAntiga.getExcepcionRecorrido()!=null && paradaEsquemaNova.getExcepcionRecorrido()!=null
- && !paradaEsquemaAntiga.getExcepcionRecorrido().equals(paradaEsquemaNova.getExcepcionRecorrido())) {
- isParadaEsquemaEditada = true;
- }
- //Verifica se editou Tipo passagem
- if(paradaEsquemaAntiga.getTipoPassagem()!=null && paradaEsquemaNova.getTipoPassagem()!=null
- && !paradaEsquemaAntiga.getTipoPassagem().equals(paradaEsquemaNova.getTipoPassagem())) {
- isParadaEsquemaEditada = true;
- }
- //Verifica se editou Tipo PLataforma
- if(paradaEsquemaAntiga.getPlataforma()!=null && paradaEsquemaNova.getPlataforma()!=null
- && !paradaEsquemaAntiga.getPlataforma().equals(paradaEsquemaNova.getPlataforma())) {
- isParadaEsquemaEditada = true;
- }
- //Se editou retorna a parada se não retorna nulo
- if(isParadaEsquemaEditada) {
- return paradaEsquemaNova;
-
- }
- return null;
- }
-
- private TarefaGeracaoCorridaVO validaApagaCorridaAgerar(Integer corridaId, Date dataIter) {
-
- //2 - Apagar corrida caso não exista venda
- Corrida.Id id = new Corrida.Id(corridaId, dataIter);
- //3 - Gerar nova corrida somente se a corrida estiver ativa
- Corrida corrida = corridaService.buscarCorridaAtivaPorId(id);
-
- if(corrida==null) {
- String msgErro = "Não econtrado corrida ativa e habilitada:" + esquemaCorrida.getNumCorrida() + " para a data:" + DateUtil.getStringDate(dataIter);
- log.error("Geração de corrida via Conf. " + msgErro);
- return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
- }
-
- try {
- inativaCorridaETabelasRelacionadas(corrida);
- }catch (Exception e) {
- String msgErro = "Erro ao inativar corrida e tabelas relacionadas. Favor verificar ";
- log.error("Geração de corrida via Conf. " + msgErro, e);
- return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
-
- }
- return null;
- }
-
- /**
- * Inativa a corrida e a realção dela com as seguintes tabelas: Corrida_Info, ASIENTO_EXCLUSIVO, Disponibilidad, INTEGRACAO_TOTVS_CORRIDA e corrida
- * @param corrida
- */
- private void inativaCorridaETabelasRelacionadas(Corrida corrida) {
- corridaInfoService.borrarByCorrida(corrida);
- asientoExclusivoService.borrarByCorrida(corrida);
- disponibilidadService.borrarByCorrida(corrida);
- integracaoTotvsService.borrarByCorrida(corrida);
- corridaService.borrar(corrida);
- }
-
- private void salvaNovoEsquemaCorrida(Date dataDeFecInicioVigencia, List lsEC)
- throws InterruptedException {
- Calendar agora = Calendar.getInstance();
- agora.set(agora.get(Calendar.YEAR), agora.get(Calendar.MONTH), agora.get(Calendar.DATE),
- NumberUtils.INTEGER_ZERO, NumberUtils.INTEGER_ZERO, NumberUtils.INTEGER_ZERO);
-
- dataDeFecInicioVigencia.setSeconds(01);
- if (dataDeFecInicioVigencia.before(agora.getTime())) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.fecha"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK,
- Messagebox.EXCLAMATION);
- salvar = true;
- } else {
- if (lsEC.isEmpty()) {
- Boolean existeNumCorrida = true;
-
- EsquemaCorrida ecor = esquemaCorridaService.buscarPeloNumCorrida(esquemaCorrida.getNumCorrida());
- existeNumCorrida = ecor != null;
-
- if ((!existeNumCorrida) && !(esquemaCorrida.getNumCorrida().equals(esquemaCorrida.getNumCorridaPisoExtra()))) {
- if (porBloq.isChecked()) {
- Date des = de.getValue();
- Date has = hasta.getValue();
- has.setSeconds(1);
- EsquemaOperacional eo = new EsquemaOperacional();
- Integer numCorrida = esquemaCorrida.getNumCorrida();
- while (des.before(has)) {
- EsquemaCorrida ec = new EsquemaCorrida();
- eo.setActivo(Boolean.TRUE);
- eo.setFecmodif(Calendar.getInstance().getTime());
- eo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
-
- Date horaSalida = new Date();
- horaSalida.setHours(des.getHours());
- horaSalida.setMinutes(des.getMinutes());
- horaSalida.setSeconds(0);
-
- ec.setActivo(Boolean.TRUE);
- ec.setFecmodif(Calendar.getInstance().getTime());
- ec.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
- ec.setClaseServicio(esquemaCorrida.getClaseServicio());
- ec.setEmpresa(esquemaCorrida.getEmpresa());
- ec.setEmpresa1(esquemaCorrida.getEmpresa1());
-
- eo.setFecniciovigencia(esquemaCorrida.getEsquemaOperacional().getFecniciovigencia());
- eo.setFecfinvigencia(esquemaCorrida.getEsquemaOperacional().getFecfinvigencia());
-
- ec.setEsquemaOperacional(eo);
- ec.setMarca(esquemaCorrida.getMarca());
- ec.setRolOperativo(esquemaCorrida.getRolOperativo());
- ec.setDiagramaAutobusId(esquemaCorrida.getRolOperativo().getDiagramaAutobus().getDiagramaautobusId().intValue());
- ec.setRuta(esquemaCorrida.getRuta());
- ec.setInddomingo(esquemaCorrida.getInddomingo());
- ec.setIndjueves(esquemaCorrida.getIndjueves());
- ec.setIndlunes(esquemaCorrida.getIndlunes());
- ec.setIndmartes(esquemaCorrida.getIndmartes());
- ec.setIndmiercoles(esquemaCorrida.getIndmiercoles());
- ec.setIndsabado(esquemaCorrida.getIndsabado());
- ec.setIndviernes(esquemaCorrida.getIndviernes());
- ec.setStatusCorrida(esquemaCorrida.getStatusCorrida());
- ec.setTipocorrida(esquemaCorrida.getTipocorrida());
- ec.setCantparados(esquemaCorrida.getCantparados());
- ec.setInfoCorrida(esquemaCorrida.getInfoCorrida());
- ec.setHorasalida(horaSalida);
- ec.setIndGeneraFeriado(esquemaCorrida.getIndGeneraFeriado());
-
- ec.setPisoExtra(esquemaCorrida.getPisoExtra());
-
-
- // Salva
- Boolean existeNumCorridaBloco = true;
- while (existeNumCorridaBloco) {
- existeNumCorridaBloco = esquemaCorridaService.buscarNumCorrida(numCorrida, null,false);
- ec.setNumCorrida(numCorrida);
- numCorrida = numCorrida + 1;
- }
- ec = esquemaCorridaService.suscribir(ec);
- esquemaCorridaService.actualizaEsquemaTramo(lsParadaEsquema, ec);
-
- // Acrescenta Minutos na Hora
- des.setMinutes(des.getMinutes() + minutos.getValue());
- }
- } else {
- EsquemaOperacional eo = new EsquemaOperacional();
- eo.setFecmodif(new Date());
- eo.setUsuarioId(esquemaCorrida.getEsquemaOperacional().getUsuarioId());
- eo.setActivo(Boolean.TRUE);
- eo.setFecniciovigencia(fecniciovigencia.getValue());
- eo.setFecfinvigencia(fecfinvigencia.getValue());
- esquemaCorrida.setEsquemaOperacional(eo);
- esquemaCorridaService.suscribir(esquemaCorrida);
-
- esquemaCorridaService.actualizaEsquemaTramo(lsParadaEsquema, esquemaCorrida);
- }
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.suscribirOK"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK,
- Messagebox.INFORMATION);
- busquedaCorridaController.refreshLista();
- closeWindow();
- } else {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.NumCorrida"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.EXCLAMATION);
- salvar = true;
- }
- } else {
- Messagebox.show(Labels.getLabel("MSG.Registro.Existe"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK,
- Messagebox.EXCLAMATION);
- salvar = true;
- }
- }
- }
-
- @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{
- Datebox fecInicial = (Datebox) dialog.getFellow("fecInicio");
- dataInicialFiltroCorridaExistente = fecInicial.getValue();
- Datebox fecFinal = (Datebox) dialog.getFellow("fecFinal");
- dataFinalFiltroCorridaExistente = fecFinal.getValue();
- 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);;
- return;
- }
- if(DateUtil.isMenor(dataFinalFiltroCorridaExistente, dataInicialFiltroCorridaExistente)) {
- String msg = Labels.getLabel("MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataFinalMenorDataInicial");
- Messagebox.show(msg, Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION);;
- return;
- }
- 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")
- .concat(" " + esquemaCorrida.getRuta().getRutaId()+" ")
- .concat(Labels.getLabel("editarCatalogoDeRutaController.msg.rutaDesativadaIdPt2")));
- salvar = true;
- return false;
- }
-
-
- //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 false;
- }
-
- //Automacao Horario Extra
- if(esquemaCorrida.getIsAutomacaoHorarioExtra() && (txtHorasAutomacaoDE.getValue() == null || txtOcupacaoHorarioExtra.getValue() == null )) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.inserirInformacoesAutomacaoHorarioExtra"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION);
- salvar = true;
- return false;
- }
-
- String numCorridaString = txtNumCorrida.getValue().toString();
- Integer maxSizeNumCorrida = ApplicationProperties.getInstance().maxSizeNumCorrida();
- if (maxSizeNumCorrida != -1) {
- if (numCorridaString.length() > maxSizeNumCorrida) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.maxSizeNumCorrida").replace("@size", maxSizeNumCorrida.toString()),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK,
- Messagebox.EXCLAMATION);
- salvar = true;
- return false;
- }
- }
-
- if(esquemaCorrida.getIsAutomacaoHorarioExtra() && !validarCorridaExtraAutomatica()) {
- salvar = true;
- return false;
- }
- return true;
- }
-
- private Date buscarHora(Date horasalidaExtra) {
- if (horasalidaExtra != null) {
- GregorianCalendar gHoraSalida = new GregorianCalendar();
- gHoraSalida.setTime(horasalidaExtra);
- gHoraSalida.set(Calendar.SECOND, 0);
- gHoraSalida.set(Calendar.MILLISECOND, 0);
- gHoraSalida.set(Calendar.MONTH, 01);
- gHoraSalida.set(Calendar.DAY_OF_MONTH, 01);
- gHoraSalida.set(Calendar.YEAR, 1970);
-
- return gHoraSalida.getTime();
- }
-
- return null;
- }
-
- public void onClick$btnApagar(Event ev) {
- try {
- int resp = Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.borrarPergunta"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.YES | Messagebox.NO, Messagebox.QUESTION);
-
- if (resp == Messagebox.YES) {
- esquemaCorridaService.borrar(esquemaCorrida);
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.borrarOK"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.INFORMATION);
-
- esquemaCorridaList.removeItem(esquemaCorrida);
-
- closeWindow();
- }
- } catch (Exception ex) {
- log.error("", ex);
- }
- }
-
- public void onClick$btnAdicionarTramo(Event ev) {
- try {
- if (cmbTramo.getSelectedItem() != null) {
- String plataforma = txtPlataforma.getValue();
- String tipoPassagem = null;
-
- if (sentado.isChecked()) {
- tipoPassagem = "S";
- } else if (emPe.isChecked()) {
- tipoPassagem = "P";
- } else if (naoVende.isChecked()) {
- tipoPassagem = "N";
- } else {
- tipoPassagem = "A";
- }
-
-
-
- // Ruta Secuencia
- Parada paradaAlterada = (Parada) cmbTramo.getSelectedItem().getValue();
- List listParadaEsquemaComNovaParada = new ArrayList();
- lsEsquemaTramo = adicionarParadaEsquemaTramo(lsParadaEsquema,paradaAlterada , esquemaCorrida, (Ruta) cmbRuta.getSelectedItem().getValue(), plataforma, tipoPassagem, listParadaEsquemaComNovaParada);
- ItemEditarCorridaTramo itemEditarCorridaTramo = new ItemEditarCorridaTramo();
- itemEditarCorridaTramo.setLsEsquemaTramoNova(lsEsquemaTramo);
- itemEditarCorridaTramo.setAdicionado(true);
- itemEditarCorridaTramo.setParadaId(paradaAlterada!=null ? paradaAlterada.getParadaId():null);
- itemEditarCorridaTramo.setDescParada(paradaAlterada.getDescparada());
- esquemaCorrida.setEsquemaTramoList(lsEsquemaTramo);
- carregarParadaSecuencia(lsEsquemaTramo);
- cmbTramo.setSelectedItem(null);
- selecionarRutaSequenciaForaEsqCorrida();
-
- txtPlataforma.setValue("");
-
-
- }
- } catch (Exception e) {
- log.error("ESQ CORRIDA - Erro ao adicionar tramo: " + e, e);
- e.printStackTrace();
- onClick$btnAdicionarTramo(null);
- }
- }
-
- /**
- * Selecciona las paradas que no estan en la secuencia de la ruta
- */
- @SuppressWarnings("unchecked")
- private void selecionarRutaSequenciaForaEsqCorrida() {
- if (lsTramosRutaEsquemaCorrida == null) {
- lsTramosRutaEsquemaCorrida = new ArrayList();
- }
- lsTramosRutaEsquemaCorrida.clear();
-
- // Ruta Secuencia
- Ruta ruta = esquemaCorrida.getRuta();
- ruta = rutaService.obtenerID(ruta.getRutaId());
- lsRutaSecuencia = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta);
-
- // Selecciona solamente la secuencia de paradas de los tramos de la
- // secuencia de la ruta
- List lstPardasRuta = new ArrayList();
- for (RutaSecuencia rs : lsRutaSecuencia) {
- Tramo tramoRS = rs.getTramo();
- lstPardasRuta.add(tramoRS.getOrigem());
- }
- if (!lsRutaSecuencia.isEmpty()) {
- lstPardasRuta.add(lsRutaSecuencia.get(lsRutaSecuencia.size() - 1).getTramo().getDestino());
- }
-
- // Selecciona solamente la secuencia de paradas de lo esquemTramo
- List lstPardasTramos = new ArrayList();
- for (EsquemaTramo et : lsEsquemaTramo) {
- if (et.getTramo() != null) {
- Tramo tramoET = et.getTramo();
- lstPardasTramos.add(tramoET.getOrigem());
- }
- }
-
- if (!lsEsquemaTramo.isEmpty()) {
- lstPardasTramos.add(lsEsquemaTramo.get(lsEsquemaTramo.size() - 1).getTramo().getDestino());
- }
-
- if (lsTramos == null) {
- lsTramos = new ArrayList();
- }
- lsTramos.clear();
-
- lsTramos.addAll(CollectionUtils.subtract(lstPardasRuta, lstPardasTramos));
- BindingListModelList listModelTramo = new BindingListModelList(
- lsTramos, true);
- cmbTramo.setModel(listModelTramo);
- cmbParadaOrigem.setModel(new BindingListModelList( lstPardasRuta, true));
- cmbParadaDestino.setModel(new BindingListModelList( lstPardasRuta, true));
- }
-
- private void selecionarRuta() {
- // Ruta Secuencia
- Comboitem ciRuta = cmbRuta.getSelectedItem();
- Ruta ruta = null;
- if (ciRuta != null) {
- ruta = (Ruta) ciRuta.getValue();
- }
-
- try {
- if (ruta != null) {
- ruta = rutaService.obtenerID(ruta.getRutaId());
- lsRutaSecuencia = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta);
-
- lsEsquemaTramo = new ArrayList();
- esquemaTramoList.setData(lsParadaEsquema);
-
- for (RutaSecuencia rs : lsRutaSecuencia) {
- EsquemaTramo et = new EsquemaTramo();
- et.setActivo(Boolean.TRUE);
- et.setFecmodif(Calendar.getInstance().getTime());
- et.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
- et.setNumsecuencia(rs.getNumsecuencia());
- et.setTramo(rs.getTramo());
- et.setEsquemaCorrida(esquemaCorrida);
-
- // Somente quando muda a seleção da Ruta.
- lsEsquemaTramo.add(et);
- }
-
- esquemaCorrida.setEsquemaTramoList(lsEsquemaTramo);
- carregarParadaSecuencia(lsEsquemaTramo);
- selecionarRutaSequenciaForaEsqCorrida();
- esquemaTramoList.setData(lsParadaEsquema);
-
- lsRutaEmbarqueDesembarque = rutaEmbarqueDesembarqueService.obtenerPorRuta(ruta);
- if (esquemaCorrida.getEsquemacorridaId() == null) {
- for (RutaEmbarqueDesembarque rutaEmbarqueDesembarque : lsRutaEmbarqueDesembarque) {
- selectEsquemaCorridaEmbarqueDesembarque(rutaEmbarqueDesembarque);
- }
- }
- BindingListModelList listModelParadaEmbarqueDesembarque = new BindingListModelList(
- lsRutaEmbarqueDesembarque, true);
- cmbEmbarqueDesembarque.setModel(listModelParadaEmbarqueDesembarque);
-
- } else {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.RutaVazia"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.EXCLAMATION);
- }
- } catch (Exception ex) {
- log.error("", ex);
- }
- }
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- private void verTempoEstanciaTramo(EsquemaTramo et, ParadaEsquema pe, Short sequenciaSize) {
- if (et == null) {
- return;
- }
-
- Map args = new HashMap();
- args.put("esquemaTramo", et);
- args.put("paradaEsquema", pe);
- args.put("esquemaTramoList", esquemaTramoList);
- args.put("sequenciaSize", sequenciaSize);
-
- openWindow("/gui/esquema_operacional/tiempoEstanciaTramo.zul",
- Labels.getLabel("editarCatalogoDeRutaController.lhTiempoEstancia"), args, MODAL);
- }
-
- public void onChange$cmbRuta(Event ev) {
- selecionarRuta();
- }
-
- public void onClick$btnRemoverTramo(Event ev) {
- try {
- ParadaEsquema pe = new ParadaEsquema();
- try {
- pe = (ParadaEsquema) esquemaTramoList.getSelected();
- } catch (Exception e) {
- log.error("Erro ao aliminar ruta do esquemaTramo: " + e, e);
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.selectItem"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.EXCLAMATION);
- }
- if (pe != null) {
- boolean podeExcluir = false;
- if (lsParadaEsquema.size() > 2) {
- for (int i = 0; i < lsParadaEsquema.size(); i++) {
- if (lsParadaEsquema.get(i).getParada().equals(pe.getParada())) {
- ParadaEsquema paradaEsquema = lsParadaEsquema.get(i);
- lsParadaEsquema.remove(paradaEsquema);
- log.debug("Esquema Tramo Removida: " + paradaEsquema.getNumsecuencia() + " - " + paradaEsquema.getParada().getCveparada());
- esquemaTramoList.setData(lsParadaEsquema);
- podeExcluir = true;
- break;
- }
- }
- }
- if (podeExcluir) {
- String ok = esquemaTramoCorrecto(lsParadaEsquema);
- if (ok != null) {
- Messagebox.show(ok,
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.EXCLAMATION);
- return;
- }
- }
- } else {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.selectItem"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.EXCLAMATION);
- }
- lsEsquemaTramo = generaEsquemaTramoCorrecto(lsParadaEsquema, esquemaCorrida);
- selecionarRutaSequenciaForaEsqCorrida();
-
- } catch (Exception e) {
- log.error("Erro ao remover secuencia da ruta " + e.getMessage(), e);
- }
- }
-
- /**
- * Checo se el nuevo reajuste de secuencia quedo valido. O sea, checo se existe en tramo en la tabla ruta_combinacion
- *
- * @param lsParadaEsquema
- * - La nueva lista de secuecia (ya con el cambio hecho)
- * @return - True se esta correcto False se no esta correcto
- */
- private String esquemaTramoCorrecto(List lsParadaEsquema) {
- boolean hayTramo = true;
-
- Parada paradaOrigen = null;
- Parada paradaDestino = null;
-
- for (int i = 0; (i < lsParadaEsquema.size() - 1) && hayTramo; i++) {
- paradaOrigen = lsParadaEsquema.get(i).getParada();
- paradaDestino = lsParadaEsquema.get(i + 1).getParada();
-
- Tramo t = rutaCombinacionService.busqueda((Ruta) cmbRuta.getSelectedItem().getValue(), paradaOrigen, paradaDestino);
-
- hayTramo = (t == null) ? false : true;
- }
-
- return (hayTramo) ? null : "No existe el tramo: "
- + paradaOrigen.getDescparada() + " - "
- + paradaDestino.getDescparada();
- }
-
- /**
- * Hago la combinacion correcta en esquemacorrida asi como esta en la lista de parada
- *
- * @param listParadaEsquema
- * @param ec
- */
- private List generaEsquemaTramoCorrecto(
- List listParadaEsquema, EsquemaCorrida ec) {
- List result = new ArrayList();
-
- for (int i = 0; (i < listParadaEsquema.size() - 1); i++) {
- Parada paradaOrigen = listParadaEsquema.get(i).getParada();
- Parada paradaDestino = listParadaEsquema.get(i + 1).getParada();
-
- Tramo t = rutaCombinacionService.busqueda((Ruta) cmbRuta.getSelectedItem().getValue(), paradaOrigen, paradaDestino);
-
- EsquemaTramo et = new EsquemaTramo();
- et.setActivo(Boolean.TRUE);
- et.setEsquemaCorrida(ec);
- et.setFecmodif(Calendar.getInstance().getTime());
- et.setNumsecuencia((short) (i + 1));
- et.setTiempoEstancia(listParadaEsquema.get(i + 1).getTiempoEstancia());
- et.setTramo(t);
- et.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
-
- result.add(et);
- }
-
- return result;
- }
-
- private List adicionarParadaEsquemaTramo(
- List listParadaEsquema, Parada novaParada,
- EsquemaCorrida ec, Ruta ruta, String plataforma, String tipoPassagem, List listParadaEsquemaComNovaParada) {
- List result = new ArrayList();
-
- lsRutaSecuencia = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta);
-
-
-
-
- Short secuencia = 0;
- boolean nuevoAgregado = false;
- boolean noExisteTramoAsociado = listParadaEsquema.isEmpty();// es la
- // primera
- // vez
- Integer indiceSecuencia = null;
- for (int i = 0; i < lsRutaSecuencia.size(); i++) {
- RutaSecuencia rutaSecuencia = lsRutaSecuencia.get(i);
- if (rutaSecuencia.getTramo().getOrigem().equals(novaParada)) {
- ParadaEsquema paradaEsquema = new ParadaEsquema();
- paradaEsquema.setActivo(Boolean.TRUE);
- secuencia++;
- paradaEsquema.setNumsecuencia(secuencia);
- paradaEsquema.setParada(novaParada);
- paradaEsquema.setPlataforma(plataforma);
- paradaEsquema.setTipoPassagem(tipoPassagem);
- listParadaEsquemaComNovaParada.add(paradaEsquema);
- nuevoAgregado = true;
- indiceSecuencia = i;
- } else {
- if (!listParadaEsquema.isEmpty()) {
- if (rutaSecuencia.getTramo().getOrigem().equals(listParadaEsquema.get(0).getParada())) {
- secuencia++;
- listParadaEsquema.get(0).setNumsecuencia(secuencia);
- listParadaEsquemaComNovaParada.add(listParadaEsquema.get(0));
- listParadaEsquema.remove(0);
-
- }
- }
- }
- }
-
- if (noExisteTramoAsociado) {
- if (indiceSecuencia != null) {
- if ((lsRutaSecuencia.size() - 1) > indiceSecuencia) {
- RutaSecuencia rutaSecuencia = lsRutaSecuencia.get(indiceSecuencia);
- ParadaEsquema paradaEsquema = new ParadaEsquema();
- paradaEsquema.setActivo(Boolean.TRUE);
- secuencia++;
- paradaEsquema.setNumsecuencia(secuencia);
- paradaEsquema.setParada(rutaSecuencia.getTramo().getDestino());
- paradaEsquema.setPlataforma(plataforma);
- listParadaEsquemaComNovaParada.add(paradaEsquema);
- }
- }
- }
- if (!nuevoAgregado) {
- ParadaEsquema paradaEsquema = new ParadaEsquema();
- paradaEsquema.setActivo(Boolean.TRUE);
- secuencia++;
- paradaEsquema.setNumsecuencia(secuencia);
- paradaEsquema.setParada(novaParada);
- paradaEsquema.setPlataforma(plataforma);
- paradaEsquema.setTipoPassagem(tipoPassagem);
-
- listParadaEsquemaComNovaParada.add(paradaEsquema);
- }
- if (!listParadaEsquema.isEmpty()) {
- secuencia++;
- listParadaEsquema.get(0).setNumsecuencia(secuencia);
- listParadaEsquemaComNovaParada.add(listParadaEsquema.get(0));
- listParadaEsquema.remove(0);
- }
-
- for (int i = 0; (i < listParadaEsquemaComNovaParada.size() - 1); i++) {
- Parada paradaOrigen = listParadaEsquemaComNovaParada.get(i).getParada();
- Parada paradaDestino = listParadaEsquemaComNovaParada.get(i + 1).getParada();
-
- Tramo t = rutaCombinacionService.busqueda((Ruta) cmbRuta.getSelectedItem().getValue(), paradaOrigen, paradaDestino);
-
- if(t==null) {
- List lsr = rutaSecuenciaService.buscarSecuenciaOrdenado((Ruta) cmbRuta.getSelectedItem().getValue());
- for(RutaSecuencia s : lsr) {
- if(s.tieneOrigen(paradaOrigen.getParadaId()) && s.tieneDestino(paradaDestino.getParadaId())) {
- t = s.getTramo();
- break;
- }
- }
- }
-
- EsquemaTramo et = new EsquemaTramo();
- et.setActivo(Boolean.TRUE);
- et.setEsquemaCorrida(ec);
- et.setFecmodif(Calendar.getInstance().getTime());
- et.setNumsecuencia((short) (i + 1));
- et.setTiempoEstancia(listParadaEsquemaComNovaParada.get(i + 1).getTiempoEstancia());
- et.setTramo(t);
- et.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
- et.setPlataforma(listParadaEsquemaComNovaParada.get(i).getPlataforma());
- et.setTipoPassagem(listParadaEsquemaComNovaParada.get(i).getTipoPassagem());
-
- result.add(et);
- }
-
- return result;
- }
-
- public void onChange$cmbClase(InputEvent ev) {
-
- if (ev.isChangingBySelectBack()) {
- return;
- }
-
- llenarRutasPorClase();
- llenarMarcaPorClaseServicio();
- }
-
- private void llenarRutasPorClase() {
- if (esquemaCorrida.getClaseServicio() == null) {
- return;
- }
- cmbMarca.setConstraint("");
- if (cmbMarca.getSelectedItem() == null) {
- lsRuta = rutaService.buscarPorClaseServicio(esquemaCorrida.getClaseServicio());
- } else {
- lsRuta = rutaService.buscarPorClaseServicioEmpresa(esquemaCorrida.getClaseServicio(), ((Marca) cmbMarca.getSelectedItem().getValue()).getEmpresa());
- }
- cmbMarca.setConstraint("no empty");
-
- // caso o usuario tenha mudado a classeServicio da ruta
- if (esquemaCorrida.getEsquemacorridaId() != null && esquemaCorrida.getRuta() != null && !lsRuta.contains(esquemaCorrida.getRuta())) {
- lsRuta.add(esquemaCorrida.getRuta());
- }
-
- BindingListModelList l = new BindingListModelList(lsRuta, true);
- cmbRuta.setModel(l);
- }
-
- private void llenarMarcaPorClaseServicio() {
- if (esquemaCorrida.getClaseServicio() == null) {
- return;
- }
- lsMarca = marcaClaseServicioService.buscarPorEmpresasPermitidas(esquemaCorrida.getClaseServicio(), UsuarioLogado.getUsuarioLogado());
- BindingListModelList l = new BindingListModelList(lsMarca, true);
- cmbMarca.setModel(l);
- }
-
- public void onChange$cmbMarca(InputEvent ev) {
-
- if (ev.isChangingBySelectBack()) {
- return;
- }
- llenarRutasPorClaseMarca();
- }
-
- public void llenarRutasPorClaseMarca() {
- if (esquemaCorrida.getClaseServicio() == null
- || esquemaCorrida.getMarca() == null) {
- return;
- }
- lsRuta = rutaService.buscarPorClaseServicioEmpresa(esquemaCorrida.getClaseServicio(), esquemaCorrida.getMarca().getEmpresa());
- BindingListModelList l = new BindingListModelList(lsRuta, true);
- cmbRuta.setModel(l);
- lsEmpresa.clear();
- for (Empresa e : UsuarioLogado.getUsuarioLogado().getEmpresa()) {
- if (e.getEmpresaId().equals(((Marca) cmbMarca.getSelectedItem().getValue()).getEmpresa().getEmpresaId())) {
- lsEmpresa.add(e);
-
- break;
- }
- }
- BindingListModelList lb = new BindingListModelList(lsEmpresa, true);
- cmbEmpresaCorrida.setModel(lb);
-
- }
-
- public void onClick$porBloq(Event ev) {
- horasalida.setVisible(false);
- horasalidaLabel.setVisible(false);
- minutos.setVisible(true);
- minutosLabel1.setVisible(true);
- minutosLabel2.setVisible(true);
- de.setVisible(true);
- horaLabel1.setVisible(true);
- horaLabel2.setVisible(true);
- hasta.setVisible(true);
- horaLabel21.setVisible(true);
- horaLabel22.setVisible(true);
- }
-
- public void onClick$porHora(Event ev) {
- horasalida.setVisible(true);
- horasalidaLabel.setVisible(true);
- minutos.setVisible(false);
- minutosLabel1.setVisible(false);
- minutosLabel2.setVisible(false);
- de.setVisible(false);
- horaLabel1.setVisible(false);
- horaLabel2.setVisible(false);
- hasta.setVisible(false);
- horaLabel21.setVisible(false);
- horaLabel22.setVisible(false);
- }
-
- public void onClick$btnAsientos(Event ev) throws InterruptedException {
- Map args = new HashMap();
- args.put("esquemaCorrida", esquemaCorrida);
-
- if (esquemaCorrida.getEsquemacorridaId() == null) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.gravarServico"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.EXCLAMATION);
-
- return;
- }
-
- openWindow("/gui/esquema_operacional/editarCorridaAsiento.zul",
- Labels.getLabel("editarConfiguracionCorridaAsientoController.window.title"),
- args, MODAL);
-
- }
-
- public void onClick$chkDoblePiso(Event ev) {
- if (chkDoblePiso.isChecked()) {
- esquemaCorrida.setPisoExtra(Boolean.TRUE);
- lbNumCorridaPisoExtra.setVisible(Boolean.TRUE);
- txtNumCorridaPisoExtra.setVisible(Boolean.TRUE);
-
- lbNumCorridaPisoExtra2.setVisible(Boolean.TRUE);
- txtNumCorridaPisoExtra2.setVisible(Boolean.TRUE);
-
- } else {
- esquemaCorrida.setPisoExtra(Boolean.FALSE);
- lbNumCorridaPisoExtra.setVisible(Boolean.FALSE);
- txtNumCorridaPisoExtra.setVisible(Boolean.FALSE);
-
- lbNumCorridaPisoExtra2.setVisible(Boolean.FALSE);
- txtNumCorridaPisoExtra2.setVisible(Boolean.FALSE);
- }
- }
-
- public ClaseServicioService getClaseService() {
- return claseService;
- }
-
- public void setClaseService(ClaseServicioService claseService) {
- this.claseService = claseService;
- }
-
- public EsquemaCorridaService getEsquemaCorridaService() {
- return esquemaCorridaService;
- }
-
- public void setEsquemaCorridaService(
- EsquemaCorridaService esquemaCorridaService) {
- this.esquemaCorridaService = esquemaCorridaService;
- }
-
- public EsquemaCorrida getEsquemaCorrida() {
- return esquemaCorrida;
- }
-
- public void setEsquemaCorrida(EsquemaCorrida esquemaCorrida) {
- this.esquemaCorrida = esquemaCorrida;
- }
-
- public MyListbox getEsquemaCorridaList() {
- return esquemaCorridaList;
- }
-
- public void setEsquemaCorridaList(MyListbox esquemaCorridaList) {
- this.esquemaCorridaList = esquemaCorridaList;
- }
-
- public List getLsClase() {
- return lsClase;
- }
-
- public void setLsClase(List lsClase) {
- this.lsClase = lsClase;
- }
-
- public List getLsMarca() {
- return lsMarca;
- }
-
- public void setLsMarca(List lsMarca) {
- this.lsMarca = lsMarca;
- }
-
- public List getLsRuta() {
- return lsRuta;
- }
-
- public void setLsRuta(List lsRuta) {
- this.lsRuta = lsRuta;
- }
-
- public MarcaService getMarcaService() {
- return marcaService;
- }
-
- public void setMarcaService(MarcaService marcaService) {
- this.marcaService = marcaService;
- }
-
- public RutaService getRutaService() {
- return rutaService;
- }
-
- public void setRutaService(RutaService rutaService) {
- this.rutaService = rutaService;
- }
-
- public Combobox getCmbClase() {
- return cmbClase;
- }
-
- public void setCmbClase(Combobox cmbClase) {
- this.cmbClase = cmbClase;
- }
-
- 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 Datebox getFecfinvigencia() {
- return fecfinvigencia;
- }
-
- public void setFecfinvigencia(Datebox fecfinvigencia) {
- this.fecfinvigencia = fecfinvigencia;
- }
-
- public Datebox getFecniciovigencia() {
- return fecniciovigencia;
- }
-
- public void setFecniciovigencia(Datebox fecniciovigencia) {
- this.fecniciovigencia = fecniciovigencia;
- }
-
- public Timebox getHora() {
- return de;
- }
-
- public void setHora(Timebox hora) {
- this.de = hora;
- }
-
- public Timebox getHora2() {
- return hasta;
- }
-
- public void setHora2(Timebox hora2) {
- this.hasta = hora2;
- }
-
- public Timebox getHorasalida() {
- return horasalida;
- }
-
- public void setHorasalida(Timebox horasalida) {
- this.horasalida = horasalida;
- }
-
- public Spinner getMinutos() {
- return minutos;
- }
-
- public void setMinutos(Spinner minutos) {
- this.minutos = minutos;
- }
-
- public Combobox getCmbEmpresaCorrida() {
- return cmbEmpresaCorrida;
- }
-
- public void setCmbEmpresaCorrida(Combobox cmbEmpresaCorrida) {
- this.cmbEmpresaCorrida = cmbEmpresaCorrida;
- }
-
- public Combobox getCmbEmpresaIngresso() {
- return cmbEmpresaIngresso;
- }
-
- public void setCmbEmpresaIngresso(Combobox cmbEmpresaIngresso) {
- this.cmbEmpresaIngresso = cmbEmpresaIngresso;
- }
-
- public Combobox getCmbRolOperativo() {
- return cmbRolOperativo;
- }
-
- public void setCmbRolOperativo(Combobox cmbRolOperativo) {
- this.cmbRolOperativo = cmbRolOperativo;
- }
-
- public Combobox getCmbStatus() {
- return cmbStatus;
- }
-
- public void setCmbStatus(Combobox cmbStatus) {
- this.cmbStatus = cmbStatus;
- }
-
- public EmpresaService getEmpresaService() {
- return empresaService;
- }
-
- public void setEmpresaService(EmpresaService empresaService) {
- this.empresaService = empresaService;
- }
-
- public List getLsEmpresa() {
- return lsEmpresa;
- }
-
- public void setLsEmpresa(List lsEmpresa) {
- this.lsEmpresa = lsEmpresa;
- }
-
- public List getLsRutaSecuencia() {
- return lsRutaSecuencia;
- }
-
- public void setLsRutaSecuencia(List lsRutaSecuencia) {
- this.lsRutaSecuencia = lsRutaSecuencia;
- }
-
- public MyListbox getRutaSecuenciaList() {
- return esquemaTramoList;
- }
-
- public void setRutaSecuenciaList(MyListbox rutaSecuenciaList) {
- this.esquemaTramoList = rutaSecuenciaList;
- }
-
- public List getLsRolOperativo() {
- return lsRolOperativo;
- }
-
- public void setLsRolOperativo(List lsRolOperativo) {
- this.lsRolOperativo = lsRolOperativo;
- }
-
- public RolOperativoService getRolOperativoService() {
- return rolOperativoService;
- }
-
- public void setRolOperativoService(RolOperativoService rolOperativoService) {
- this.rolOperativoService = rolOperativoService;
- }
-
- public Radio getAutorizada() {
- return autorizada;
- }
-
- public void setAutorizada(Radio autorizada) {
- this.autorizada = autorizada;
- }
-
- public Radio getCancelada() {
- return cancelada;
- }
-
- public void setCancelada(Radio cancelada) {
- this.cancelada = cancelada;
- }
-
- public Radio getLatente() {
- return latente;
- }
-
- public void setLatente(Radio latente) {
- this.latente = latente;
- }
-
- public Combobox getCmbVia() {
- return cmbVia;
- }
-
- public void setCmbVia(Combobox cmbVia) {
- this.cmbVia = cmbVia;
- }
-
- public Button getBtnAsientos() {
- return btnAsientos;
- }
-
- public void setBtnAsientos(Button btnAsientos) {
- this.btnAsientos = btnAsientos;
- }
-
- public Radio getFletes() {
- return fletes;
- }
-
- public void setFletes(Radio fletes) {
- this.fletes = fletes;
- }
-
- public Radio getTransportePasajeros() {
- return transportePasajeros;
- }
-
- public void setTransportePasajeros(Radio transportePasajeros) {
- this.transportePasajeros = transportePasajeros;
- }
-
- public Radio getViajesEspeciales() {
- return viajesEspeciales;
- }
-
- public void setViajesEspeciales(Radio viajesEspeciales) {
- this.viajesEspeciales = viajesEspeciales;
- }
-
- public Combobox getCmbTramo() {
- return cmbTramo;
- }
-
- public void setCmbTramo(Combobox cmbTramo) {
- this.cmbTramo = cmbTramo;
- }
-
- public Timebox getDe() {
- return de;
- }
-
- public void setDe(Timebox de) {
- this.de = de;
- }
-
- public MyListbox getEsquemaTramoList() {
- return esquemaTramoList;
- }
-
- public void setEsquemaTramoList(MyListbox esquemaTramoList) {
- this.esquemaTramoList = esquemaTramoList;
- }
-
- public EsquemaTramoService getEsquemaTramoService() {
- return esquemaTramoService;
- }
-
- public void setEsquemaTramoService(EsquemaTramoService esquemaTramoService) {
- this.esquemaTramoService = esquemaTramoService;
- }
-
- public Timebox getHasta() {
- return hasta;
- }
-
- public void setHasta(Timebox hasta) {
- this.hasta = hasta;
- }
-
- public List getLsEsquemaTramo() {
- return lsEsquemaTramo;
- }
-
- public void setLsEsquemaTramo(List lsEsquemaTramo) {
- this.lsEsquemaTramo = lsEsquemaTramo;
- }
-
- public List getLsTramos() {
- return lsTramos;
- }
-
- public void setLsTramos(List lsTramos) {
- this.lsTramos = lsTramos;
- }
-
- public List getLsDivision() {
- return lsDivision;
- }
-
- public void setLsDivision(List lsDivision) {
- this.lsDivision = lsDivision;
- }
-
- public Combobox getCmbDivision() {
- return cmbDivision;
- }
-
- public void setCmbDivision(Combobox cmbDivision) {
- this.cmbDivision = cmbDivision;
- }
-
- public Label getLbDivision() {
- return lbDivision;
- }
-
- public void setLbDivision(Label lbDivision) {
- this.lbDivision = lbDivision;
- }
-
- public List getLsTramosRutaEsquemaCorrida() {
- return lsTramosRutaEsquemaCorrida;
- }
-
- public void setLsTramosRutaEsquemaCorrida(
- List lsTramosRutaEsquemaCorrida) {
- this.lsTramosRutaEsquemaCorrida = lsTramosRutaEsquemaCorrida;
- }
-
- public Radio getPorBloq() {
- return porBloq;
- }
-
- public void setPorBloq(Radio porBloq) {
- this.porBloq = porBloq;
- }
-
- public Button getBtnApagar() {
- return btnApagar;
- }
-
- public void setBtnApagar(Button btnApagar) {
- this.btnApagar = btnApagar;
- }
-
- public Checkbox getDiaSimDiaNao() {
- return diaSimDiaNao;
- }
-
- public void setDiaSimDiaNao(Checkbox diaSimDiaNao) {
- this.diaSimDiaNao = diaSimDiaNao;
- }
-
- public void onClick$btnApagarRebote(Event e) throws InterruptedException {
- esquemaCorrida.setEsquemaCorridaRebote(null);
- txtIdCorridaRebote.setValue("");
- }
-
- @SuppressWarnings({ "unchecked", "rawtypes" })
- public void onClick$btnAbrirEsquemaCorrida(Event e)
- throws InterruptedException {
- if (esquemaCorrida.getEsquemaCorridaRebote() == null) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.btnAbrirEsquemaCorrida.error"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.EXCLAMATION);
-
- return;
-
- }
-
- closeWindow();
-
- Map args = new HashMap();
-
- args.put("esquemaCorrida", esquemaCorrida.getEsquemaCorridaRebote());
- args.put("esquemaCorridaList", esquemaCorridaList);
-
- openWindow(
- "/gui/esquema_operacional/editarCorrida.zul",
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- args, MODAL);
- }
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- public void onClick$btnBuscarEsquemaCorrida(Event e) {
- Map argss = new HashMap();
-
- argss.put("esquemaCorrida", esquemaCorrida);
- argss.put("txtIdCorridaRebote", txtIdCorridaRebote);
-
- openWindow(
- "/gui/esquema_operacional/busquedaCorridaRebote.zul",
- Labels.getLabel("busquedaConfiguracionCorridaController.window.title"),
- argss, MODAL);
- }
-
- public void onChange$horasalida(Event e) {
- ((RenderConfiguracionCorridaTramo) esquemaTramoList.getItemRenderer()).alterarDataPartida(horasalida.getValue());
- esquemaCorrida.setEsquemaTramoList(lsEsquemaTramo);
- carregarParadaSecuencia(lsEsquemaTramo);
- selecionarRutaSequenciaForaEsqCorrida();
- }
-
-
-
- public void onClick$diaSimDiaNao(Event e) throws InterruptedException {
- habilitaDiasDaSemana(diaSimDiaNao.isChecked());
- }
-
- public void onClick$lun(Event e) throws InterruptedException {
- habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked());
- }
-
- public void onClick$mar(Event e) throws InterruptedException {
- habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked());
- }
-
- public void onClick$mie(Event e) throws InterruptedException {
- habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked());
- }
-
- public void onClick$jue(Event e) throws InterruptedException {
- habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked());
- }
-
- public void onClick$vie(Event e) throws InterruptedException {
- habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked());
- }
-
- public void onClick$sab(Event e) throws InterruptedException {
- habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked());
- }
-
- public void onClick$dom(Event e) throws InterruptedException {
- habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked());
- }
-
- private Boolean validarCorridaExtraAutomatica() throws InterruptedException {
- if(txtNumCorridaExtraAuto.getValue() == null) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.necessarioInformarCorridaExtra"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.OK, Messagebox.ERROR);
- return false;
- }
-
- EsquemaCorrida esquemaCorrida = esquemaCorridaService.obtenerByEsquemaCorrida(txtNumCorridaExtraAuto.getValue());
-
- if(esquemaCorrida != null) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.corridaJaExiste"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.OK, Messagebox.ERROR);
- return false;
- }
-
- return true;
- }
-
- private Boolean validarPisoExtra() throws InterruptedException {
- Boolean returnValue = true;
- EsquemaCorrida esquemaCorrida = esquemaCorridaService.obtenerByEsquemaCorrida(txtNumCorridaPisoExtra.getValue());
-
- EsquemaCorrida esquemaCorrida2 = null;
- Boolean isPisoExtra2 = txtNumCorridaPisoExtra2.getValue() != null;
-
- if(txtNumCorridaPisoExtra2.getValue() != null) {
- esquemaCorrida2 = esquemaCorridaService.obtenerByEsquemaCorrida(txtNumCorridaPisoExtra2.getValue());
- }
-
-
- if (esquemaCorrida == null || (isPisoExtra2 && esquemaCorrida2 == null)) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraExistente"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.ERROR);
- returnValue = false;
- } else if (this.esquemaCorrida.equals(esquemaCorrida) || (isPisoExtra2 && this.esquemaCorrida.equals(esquemaCorrida2))) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraIgualServico"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.ERROR);
- returnValue = false;
- } else if ((esquemaCorrida.getPisoExtra() != null && esquemaCorrida.getPisoExtra()) || (isPisoExtra2 && esquemaCorrida2.getPisoExtra() != null && esquemaCorrida2.getPisoExtra())) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraJaEPisoExtra"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.ERROR);
- returnValue = false;
- } else if (!esquemaCorrida.getMarca().equals(this.esquemaCorrida.getMarca()) || (isPisoExtra2 && !esquemaCorrida2.getMarca().equals(this.esquemaCorrida.getMarca()))) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraEmpresaDiferente"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.ERROR);
- returnValue = false;
- } else if (!esquemaCorrida.getRuta().getOrgaoConcedente().equals(this.esquemaCorrida.getRuta().getOrgaoConcedente())
- || (isPisoExtra2 && !esquemaCorrida2.getRuta().getOrgaoConcedente().equals(this.esquemaCorrida.getRuta().getOrgaoConcedente()))) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraOrgaoDiferente"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.ERROR);
- returnValue = false;
- } else if (validarEsquemaTramo(esquemaCorrida) || (isPisoExtra2 && validarEsquemaTramo(esquemaCorrida2))) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraLocalidadeDiferente"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.ERROR);
- returnValue = false;
- } else if(esquemaCorrida.equals(esquemaCorrida2)) {
- Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.pisoExtraIguais.label"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK, Messagebox.ERROR);
- returnValue = false;
- }
-
- if (!returnValue) {
- txtNumCorridaPisoExtra.setDisabled(false);
- txtNumCorridaPisoExtra2.setDisabled(false);
- }
-
- return returnValue;
- }
-
- public void onChange$txtNumCorridaPisoExtra() throws InterruptedException {
- validarPisoExtra();
- }
-
- public void onChange$txtNumCorridaPisoExtra2() throws InterruptedException {
- validarPisoExtra();
- }
-
- private boolean validarEsquemaTramo(EsquemaCorrida esquemaCorrida) {
-
- if (this.esquemaCorrida.getEsquemaTramoList().size() != esquemaCorrida.getEsquemaTramoList().size()) {
- return true;
- }
- for (int i = 0; i < this.esquemaCorrida.getEsquemaTramoList().size(); i++) {
- if( this.esquemaCorrida.getEsquemacorridaId() != null ){
- if (!tramoIsEqual(this.esquemaCorrida.getEsquemaTramoList().get(i).getTramo(), esquemaCorrida.getEsquemaTramoList().get(i).getTramo())) {
- return true;
- }
- }else{
- List ls = ordenaLista( esquemaCorrida.getEsquemaTramoList());
- if (!tramoIsEqual(this.esquemaCorrida.getEsquemaTramoList().get(i).getTramo(), ls.get(i).getTramo())) {
- return true;
- }
- }
- }
- return false;
- }
-
- private List ordenaLista(List ls){
- List myls = new ArrayList();
- for(int y = 1 ; y <= ls.size(); y++ ){
- for(int x = 1 ; x <= ls.size(); x++ ){
- if(ls.get(x-1).getNumsecuencia() == y ){
- myls.add(ls.get(x-1));
- break;
- }
- }
- }
- return myls;
- }
-
- public boolean naoValidaEsquemaCorridaVia() {
- Constante contante = constanteService.buscarPorNomeConstante("NAO_VALIDA_ESQUEMA_CORRIDA_VIA");
- String valorConstante = contante == null ? null : contante.getValorconstante();
-
- if (StringUtils.isBlank(valorConstante)) {
- return false;
- } else {
- if (BooleanUtils.toBoolean(valorConstante)) {
- return true;
- }
- return false;
- }
- }
-
- private boolean tramoIsEqual(Tramo este, Tramo outro) {
- if(este == null && outro == null){
- return true;
- }
- if(este == null && outro != null){
- return false;
- }
- if(este != null && outro == null){
- return false;
- }
- if (este.getDestino().equals(outro.getDestino())
- && este.getOrigem().equals(outro.getOrigem())) {
- if (naoValidaEsquemaCorridaVia()) {
- return true;
- } else if (este.getDesctramo().equals(outro.getDesctramo()) && este.getKmReal().equals(outro.getKmReal())
- && este.getVia().equals(outro.getVia())) {
- return true;
- }
- }
- return false;
- }
-
- private void habilitaDiasDaSemana(Boolean isChecked) {
- if (isChecked) {
- lun.setChecked(!isChecked);
- mar.setChecked(!isChecked);
- mie.setChecked(!isChecked);
- jue.setChecked(!isChecked);
- vie.setChecked(!isChecked);
- sab.setChecked(!isChecked);
- dom.setChecked(!isChecked);
-
- lun.setDisabled(isChecked);
- mar.setDisabled(isChecked);
- mie.setDisabled(isChecked);
- jue.setDisabled(isChecked);
- vie.setDisabled(isChecked);
- sab.setDisabled(isChecked);
- dom.setDisabled(isChecked);
- } else {
- lun.setChecked(Boolean.FALSE);
- mar.setChecked(Boolean.FALSE);
- mie.setChecked(Boolean.FALSE);
- jue.setChecked(Boolean.FALSE);
- vie.setChecked(Boolean.FALSE);
- sab.setChecked(Boolean.FALSE);
- dom.setChecked(Boolean.FALSE);
-
- lun.setDisabled(Boolean.FALSE);
- mar.setDisabled(Boolean.FALSE);
- mie.setDisabled(Boolean.FALSE);
- jue.setDisabled(Boolean.FALSE);
- vie.setDisabled(Boolean.FALSE);
- sab.setDisabled(Boolean.FALSE);
- dom.setDisabled(Boolean.FALSE);
- }
- }
-
- private void habilitarDiaSimDiaNao(Boolean isLun, Boolean isMar, Boolean isMie, Boolean isJue, Boolean isVie, Boolean isSab, Boolean isDom) {
- if (isLun || isMar || isMie || isJue || isVie || isSab || isDom) {
- diaSimDiaNao.setChecked(Boolean.FALSE);
- diaSimDiaNao.setDisabled(Boolean.TRUE);
- } else {
- diaSimDiaNao.setChecked(Boolean.FALSE);
- diaSimDiaNao.setDisabled(Boolean.FALSE);
- }
- }
-
- public List getLsEmpresaIngresso() {
- return lsEmpresaIngresso;
- }
-
- public void setLsEmpresaIngresso(List lsEmpresaIngresso) {
- this.lsEmpresaIngresso = lsEmpresaIngresso;
- }
-
- public List getLsAutoBus() {
- return lsAutoBus;
- }
-
- public void setLsAutoBus(List lsAutoBus) {
- this.lsAutoBus = lsAutoBus;
- }
-
- public void onClick$btnAdicionarEmbarqueDesembarque(Event ev) {
-
- Comboitem selectedItem = cmbEmbarqueDesembarque.getSelectedItem();
- if (selectedItem == null) {
- return;
- }
-
- RutaEmbarqueDesembarque rutaEmbarqueDesembarque = (RutaEmbarqueDesembarque) selectedItem.getValue();
-
- for (EsquemaCorridaEmbarqueDesembarque esquemaCorridaEmbarqueDesembarque : lsEsquemaCorridaEmbarqueDesembarqueSelected) {
- if (esquemaCorridaEmbarqueDesembarque.getParada().equals(rutaEmbarqueDesembarque)) {
- return;
- }
- }
-
- selectEsquemaCorridaEmbarqueDesembarque(rutaEmbarqueDesembarque);
-
- }
-
- private void selectEsquemaCorridaEmbarqueDesembarque(RutaEmbarqueDesembarque rutaEmbarqueDesembarque) {
- EsquemaCorridaEmbarqueDesembarque esquemaCorridaEmbarqueDesembarque = new EsquemaCorridaEmbarqueDesembarque();
- esquemaCorridaEmbarqueDesembarque.setParada(rutaEmbarqueDesembarque.getParada());
- esquemaCorridaEmbarqueDesembarque.setActivo(true);
- esquemaCorridaEmbarqueDesembarque.setEsquemaCorrida(esquemaCorrida);
- esquemaCorridaEmbarqueDesembarque.setEmbarque(BooleanUtils.isTrue(rutaEmbarqueDesembarque.getEmbarque())); // null safe
- esquemaCorridaEmbarqueDesembarque.setDesembarque(BooleanUtils.isTrue(rutaEmbarqueDesembarque.getDesembarque())); // null safe
- esquemaCorridaEmbarqueDesembarque.setLocalDesembarqueEmbarque(rutaEmbarqueDesembarque.getLocalDesembarqueEmbarque());
- esquemaCorridaEmbarqueDesembarque.setIsVisualizarNaAPI(cbVisualizaNaAPI.isChecked());
- lsEsquemaCorridaEmbarqueDesembarqueSelected.add(esquemaCorridaEmbarqueDesembarque);
-
- esquemaCorrida.setLsEsquemaCorridaEmbarqueDesembarque(lsEsquemaCorridaEmbarqueDesembarqueSelected);
- esquemaCorridaEmbarqueDesembarqueListbox.setData(lsEsquemaCorridaEmbarqueDesembarqueSelected);
- }
-
- public void onClick$btnRemoverEmbarqueDesembarque(Event ev) throws InterruptedException {
-
- EsquemaCorridaEmbarqueDesembarque esquemaCorridaEmbarqueDesembarque = (EsquemaCorridaEmbarqueDesembarque) esquemaCorridaEmbarqueDesembarqueListbox.getSelected();
-
- if (esquemaCorridaEmbarqueDesembarque != null) {
- lsEsquemaCorridaEmbarqueDesembarqueSelected.remove(esquemaCorridaEmbarqueDesembarque);
- lsEsquemaCorridaEmbarqueDesembarqueBorrar.add(esquemaCorridaEmbarqueDesembarque);
-
- esquemaCorrida.setLsEsquemaCorridaEmbarqueDesembarque(lsEsquemaCorridaEmbarqueDesembarqueSelected);
- esquemaCorridaEmbarqueDesembarqueListbox.setData(lsEsquemaCorridaEmbarqueDesembarqueSelected);
- }
-
- }
-
- public List getLsRutaEmbarqueDesembarque() {
- return lsRutaEmbarqueDesembarque;
- }
-
- public void setLsRutaEmbarqueDesembarque(List lsRutaEmbarqueDesembarque) {
- this.lsRutaEmbarqueDesembarque = lsRutaEmbarqueDesembarque;
- }
-
- public Boolean getEmbarqueDesembarqueDisabled() {
- return embarqueDesembarqueDisabled;
- }
-
- public Boolean getEmbarque() {
- return embarque;
- }
-
- public void setEmbarque(Boolean embarque) {
- this.embarque = embarque;
- }
-
- public Boolean getDesembarque() {
- return desembarque;
- }
-
- public void setDesembarque(Boolean desembarque) {
- this.desembarque = desembarque;
- }
-
- public List getLsEmbarqueDesembarque() {
- return lsEmbarqueDesembarque;
- }
-
- public void setLsEmbarqueDesembarque(List lsEmbarqueDesembarque) {
- this.lsEmbarqueDesembarque = lsEmbarqueDesembarque;
- }
-
- public void onSelect$cmbEmbarqueDesembarque(Event ev) {
- Comboitem selectedItem = cmbEmbarqueDesembarque.getSelectedItem();
- if (selectedItem == null) {
- return;
- }
-
- preencherLocalEmbarqueDesembarque();
-
- RutaEmbarqueDesembarque rutaEmbarqueDesembarque = (RutaEmbarqueDesembarque) selectedItem.getValue();
- Comboitem ci = new Comboitem(rutaEmbarqueDesembarque.getLocalDesembarqueEmbarque().toString());
- ci.setAttribute("value", rutaEmbarqueDesembarque.getLocalDesembarqueEmbarque());
- ci.setValue(rutaEmbarqueDesembarque.getLocalDesembarqueEmbarque());
- ci.setParent(cmbLocalEmbarqueDesembarque);
- cmbLocalEmbarqueDesembarque.setSelectedItem(ci);
-
- cbEmbarque.setChecked(rutaEmbarqueDesembarque.getEmbarque());
- cbDesembarque.setChecked(rutaEmbarqueDesembarque.getDesembarque());
- }
-
- private void preencherLocalEmbarqueDesembarque(){
- for (RutaEmbarqueDesembarque rutaEmbarqueDesembarque : lsRutaEmbarqueDesembarque) {
- lsEmbarqueDesembarque.add(rutaEmbarqueDesembarque.getLocalDesembarqueEmbarque());
- }
- }
-
- public Combobox getCmbRolOperativoServicoExtra() {
- return cmbRolOperativoServicoExtra;
- }
-
- public void setCmbRolOperativoServicoExtra(Combobox cmbRolOperativoServicoExtra) {
- this.cmbRolOperativoServicoExtra = cmbRolOperativoServicoExtra;
- }
-
- public Boolean getIsVisualizarNaAPI() {
- return isVisualizarNaAPI;
- }
-
- public void setIsVisualizarNaAPI(Boolean isVisualizarNaAPI) {
- this.isVisualizarNaAPI = isVisualizarNaAPI;
- }
-
- @SuppressWarnings("unchecked")
- public void onClick$btnAdicionarTramoInformacaoCorrida(Event ev) {
-
- try {
- cmbParadaOrigem.getValue();
- cmbParadaDestino.getValue();
- txtMensagemTrecho.getValue();
-
- Parada origem = (Parada) cmbParadaOrigem.getSelectedItem().getValue();
- Parada destino = (Parada) cmbParadaDestino.getSelectedItem().getValue();
-
- boolean existe = false;
- for (EsquemaCorridaInfo esquemaCorridaInfo : (List)lstTrechosInformacaoCorridaListbox.getListData()) {
- if(esquemaCorridaInfo.getOrigem().getDescparada().equals(origem.getDescparada()) && esquemaCorridaInfo.getDestino().getDescparada().equals(destino.getDescparada())) {
- existe = true;
- }
- }
- if(!existe) {
- EsquemaCorridaInfo esquemaCorridaInfo = new EsquemaCorridaInfo();
- esquemaCorridaInfo.setOrigem(origem);
- esquemaCorridaInfo.setDestino(destino);
- esquemaCorridaInfo.setActivo(true);
- esquemaCorridaInfo.setInfoCorrida(txtMensagemTrecho.getValue());
- esquemaCorridaInfo.setEsquemaCorrida(esquemaCorrida);
- esquemaCorridaInfo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
- esquemaCorridaInfo.setFecmodif(Calendar.getInstance().getTime());
- esquemaCorridaInfo.setActivo(Boolean.TRUE);
- lsEsquemaCorridaInfoSelected.add(esquemaCorridaInfo);
- esquemaCorrida.setLsEsquemaCorridaInfo(lsEsquemaCorridaInfoSelected);
- lstTrechosInformacaoCorridaListbox.setData(lsEsquemaCorridaInfoSelected);
-
- }else {
- Messagebox.show(Labels.getLabel("MSG.Registro.Existe"),
- Labels.getLabel("editarConfiguracionCorridaController.window.title"),
- Messagebox.OK,
- Messagebox.EXCLAMATION);
- }
-
-
- } catch (Exception e) {
- log.error("ESQ CORRIDA INFO TRMO - Erro ao adicionar tramo: " + e, e);
- e.printStackTrace();
- onClick$btnAdicionarTramo(null);
- }
- }
-
- public void onClick$btnRemoverEsquemaCorridaInfoTramo(Event ev) throws InterruptedException {
-
- EsquemaCorridaInfo esquemaCorridaInfo = (EsquemaCorridaInfo) lstTrechosInformacaoCorridaListbox.getSelected();
-
- if (esquemaCorridaInfo != null) {
- lsEsquemaCorridaInfoSelected.remove(esquemaCorridaInfo);
- lsEsquemaCorridaInfoBorrar.add(esquemaCorridaInfo);
- esquemaCorrida.setLsEsquemaCorridaInfo(null);
- lstTrechosInformacaoCorridaListbox.setData(lsEsquemaCorridaInfoSelected);
- }
-
- }
-
- public Button getBtnCancelarRetomar() {
- return btnCancelarRetomar;
- }
-
- public void setBtnCancelarRetomar(Button btnCancelarRetomar) {
- this.btnCancelarRetomar = btnCancelarRetomar;
- }
-
- private void alterarBotaoRetomarCancelar() {
- if (esquemaCorrida.getIndCorridaDesativada()) {
- btnCancelarRetomar.setTooltiptext(Labels.getLabel("editarCatalogoDeRutaController.btnRetomarCancelar.tooltipRetomar"));
- btnCancelarRetomar.setImage("/gui/img/back.png");
- } else {
- btnCancelarRetomar.setTooltiptext(Labels.getLabel("editarCatalogoDeRutaController.btnRetomarCancelar.tooltipCancelar"));
- btnCancelarRetomar.setImage("/gui/img/forbidden.png");
- }
- }
-
- public void onClick$btnCancelarRetomar(Event ev) throws Exception {
- if (!esquemaCorrida.getIndCorridaDesativada()) {
- esquemaCorrida.setIndCorridaDesativada(true);// cancelar
- } else {
- esquemaCorrida.setIndCorridaDesativada(false);// retomar
- }
-
- if(esquemaCorrida.getEsquemacorridaId() != null) {
- esquemaCorridaService.actualizacion(esquemaCorrida);
- }
-
- alterarBotaoRetomarCancelar();
- }
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+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;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.BooleanUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.math.NumberUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.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;
+import org.zkoss.zk.ui.Component;
+import org.zkoss.zk.ui.Executions;
+import org.zkoss.zk.ui.SuspendNotAllowedException;
+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.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.Label;
+import org.zkoss.zul.Radio;
+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.Constante;
+import com.rjconsultores.ventaboletos.entidad.Corrida;
+import com.rjconsultores.ventaboletos.entidad.CorridaTramo;
+import com.rjconsultores.ventaboletos.entidad.Division;
+import com.rjconsultores.ventaboletos.entidad.Empresa;
+import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento;
+import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
+import com.rjconsultores.ventaboletos.entidad.EsquemaCorridaEmbarqueDesembarque;
+import com.rjconsultores.ventaboletos.entidad.EsquemaCorridaInfo;
+import com.rjconsultores.ventaboletos.entidad.EsquemaOperacional;
+import com.rjconsultores.ventaboletos.entidad.EsquemaTramo;
+import com.rjconsultores.ventaboletos.entidad.Marca;
+import com.rjconsultores.ventaboletos.entidad.Parada;
+import com.rjconsultores.ventaboletos.entidad.ParadaEsquema;
+import com.rjconsultores.ventaboletos.entidad.RolOperativo;
+import com.rjconsultores.ventaboletos.entidad.Ruta;
+import com.rjconsultores.ventaboletos.entidad.RutaEmbarqueDesembarque;
+import com.rjconsultores.ventaboletos.entidad.RutaSecuencia;
+import com.rjconsultores.ventaboletos.entidad.Tramo;
+import com.rjconsultores.ventaboletos.entidad.TramoServicio;
+import com.rjconsultores.ventaboletos.service.AsientoExclusivoService;
+import com.rjconsultores.ventaboletos.service.AutobusService;
+import com.rjconsultores.ventaboletos.service.BoletoService;
+import com.rjconsultores.ventaboletos.service.ClaseServicioService;
+import com.rjconsultores.ventaboletos.service.ConstanteService;
+import com.rjconsultores.ventaboletos.service.CorridaInfoService;
+import com.rjconsultores.ventaboletos.service.CorridaService;
+import com.rjconsultores.ventaboletos.service.CorridaTramoService;
+import com.rjconsultores.ventaboletos.service.DisponibilidadService;
+import com.rjconsultores.ventaboletos.service.DivisionService;
+import com.rjconsultores.ventaboletos.service.EmpresaService;
+import com.rjconsultores.ventaboletos.service.EsquemaCorridaEmbarqueDesembarqueService;
+import com.rjconsultores.ventaboletos.service.EsquemaCorridaInfoService;
+import com.rjconsultores.ventaboletos.service.EsquemaCorridaService;
+import com.rjconsultores.ventaboletos.service.EsquemaTramoService;
+import com.rjconsultores.ventaboletos.service.IntegracaoTotvsService;
+import com.rjconsultores.ventaboletos.service.MarcaClaseServicioService;
+import com.rjconsultores.ventaboletos.service.MarcaService;
+import com.rjconsultores.ventaboletos.service.RolOperativoService;
+import com.rjconsultores.ventaboletos.service.RutaCombinacionService;
+import com.rjconsultores.ventaboletos.service.RutaEmbarqueDesembarqueService;
+import com.rjconsultores.ventaboletos.service.RutaSecuenciaService;
+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;
+import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConfiguracionCorridaTramo;
+import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCorridaInfomacaoTramo;
+import com.rjconsultores.ventaboletos.web.utilerias.render.RenderEsquemaCorridaEmbarqueDesembarque;
+
+/**
+ *
+ * @author Rafius
+ */
+@Controller("editarCorridaController")
+@Scope("prototype")
+public class EditarCorridaController extends MyGenericForwardComposer {
+
+ private static final int PERIODO_MAXIMO_90_DIAS = 90;
+ private static Logger log = LogManager.getLogger(EditarCorridaController.class);
+ private static final long serialVersionUID = 1L;
+ //Services
+ @Autowired
+ private EsquemaCorridaService esquemaCorridaService;
+ @Autowired
+ private EsquemaTramoService esquemaTramoService;
+ @Autowired
+ private MarcaService marcaService;
+ @Autowired
+ private ClaseServicioService claseService;
+ @Autowired
+ private RutaService rutaService;
+ @Autowired
+ private RutaCombinacionService rutaCombinacionService;
+ @Autowired
+ private RutaSecuenciaService rutaSecuenciaService;
+ @Autowired
+ private EmpresaService empresaService;
+ @Autowired
+ private MarcaClaseServicioService marcaClaseServicioService;
+ @Autowired
+ private AutobusService autobusService;
+ @Autowired
+ private RolOperativoService rolOperativoService;
+ @Autowired
+ private BusquedaCorridaController busquedaCorridaController;
+ @Autowired
+ private TramoServicioService tramoServicioService;
+ @Autowired
+ CorridaService corridaService;
+ @Autowired
+ private CorridaInfoService corridaInfoService;
+ @Autowired
+ private AsientoExclusivoService asientoExclusivoService;
+ @Autowired
+ private DisponibilidadService disponibilidadService;
+ @Autowired
+ private IntegracaoTotvsService integracaoTotvsService;
+ @Autowired
+ BoletoService boletoService;
+ @Autowired
+ private RutaEmbarqueDesembarqueService rutaEmbarqueDesembarqueService;
+ @Autowired
+ private EsquemaCorridaEmbarqueDesembarqueService esquemaCorridaEmbarqueDesembarqueService;
+
+ private DivisionService divisionService;
+ @Autowired
+ private EsquemaCorridaInfoService esquemaCorridaInfoService;
+
+ @Autowired
+ private ConstanteService constanteService;
+ @Autowired
+ private CorridaTramoService corridaTramoService;
+
+ //Radio
+ private Radio porBloq;
+ private Radio latente;
+ private Radio autorizada;
+ private Radio cancelada;
+ private Radio sentado;
+ private Radio emPe;
+ private Radio naoVende;
+ 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;
+ private MyListbox lstTrechosInformacaoCorridaListbox;
+ //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;
+ private Combobox cmbParadaOrigem;
+ private Combobox cmbParadaDestino;
+ //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;
+ private Textbox txtMensagemTrecho;
+ //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;
+ private List lsMarca;
+ private List lsClase;
+ private List lsRuta;
+ private List lsRutaSecuencia;
+ private List lsEsquemaTramo;
+ private List lsEsquemaTramoOriginal;
+ private List lsAutoBus;
+ private List lsRolOperativo;
+ private List lsTramosRutaEsquemaCorrida;
+ private List lsTramos;
+ private List lsParadaEsquema;
+ private List lsParadaEsquemaOrignal;
+ private List lsRutaEmbarqueDesembarque = new ArrayList();
+ private List lsEsquemaCorridaEmbarqueDesembarqueSelected = new ArrayList();
+ private List lsEsquemaCorridaEmbarqueDesembarqueBorrar = new ArrayList();
+ private List lsEsquemaCorridaInfoSelected;
+ private List lsEsquemaCorridaInfoBorrar;
+ 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;
+ //Outros objetos
+ private EsquemaCorrida esquemaCorrida;
+ private Date dataInicialFiltroCorridaExistente;
+ private Date dataFinalFiltroCorridaExistente;
+
+
+ private Button btnCancelarRetomar;
+
+ @Override
+ public void doAfterCompose(Component comp) throws Exception {
+ super.doAfterCompose(comp);
+ lsEmbarqueDesembarque = new ArrayList();
+ isPrimeiraVez = true;
+ salvar = true;
+ cmbRuta.setItemRenderer(new MyComboRutaRenderer());
+ popularCombobox(cmbIndGeneraFeriado);
+
+ esquemaCorridaEmbarqueDesembarqueListbox.setItemRenderer(new RenderEsquemaCorridaEmbarqueDesembarque());
+ lstTrechosInformacaoCorridaListbox.setItemRenderer(new RenderCorridaInfomacaoTramo());
+
+ esquemaCorrida = (EsquemaCorrida) Executions.getCurrent().getArg().get("esquemaCorrida");
+ if (esquemaCorrida.getEsquemacorridaId() != null) {
+ esquemaCorrida = esquemaCorridaService.obtenerID(esquemaCorrida.getEsquemacorridaId());
+ esquemaCorrida.getEsquemaTramoList();
+ }
+ esquemaCorridaList = (MyListbox) Executions.getCurrent().getArg().get("esquemaCorridaList");
+ busquedaCorridaController = (BusquedaCorridaController) Executions.getCurrent().getArg().get("busquedaCorridaController");
+
+ Boolean ehEsquemaAgrupacion = (Boolean) Executions.getCurrent().getArg().get("ehEsquemaAgrupacion") == null ? Boolean.FALSE : (Boolean) Executions.getCurrent().getArg().get("ehEsquemaAgrupacion");
+
+ lsParadaEsquema = new ArrayList();
+
+ lsEmpresa = new ArrayList();
+ lsEmpresa.addAll(UsuarioLogado.getUsuarioLogado().getEmpresa());
+
+ lsEmpresaIngresso = new ArrayList();
+ lsEmpresaIngresso.addAll(UsuarioLogado.getUsuarioLogado().getEmpresa());
+
+ lsClase = claseService.buscarTodosExceto(-1);
+
+ lsRolOperativo = rolOperativoService.obtenerTodos();
+
+ lsAutoBus = autobusService.obtenerTodos();
+
+ lsEsquemaCorridaInfoSelected = new ArrayList();
+ lsEsquemaCorridaInfoBorrar = new ArrayList();
+
+ if (esquemaCorrida.getEsquemacorridaId() != null) {
+
+ // 01 - não se pode mudar dados básicos da corrida.
+ // 02 - Segundo a Lety os campos CLASE, MARCA E EMPRESAS...
+ // Poderão ser editados pelo usuario.
+ // RUTA permanece inalterado.
+
+ if (esquemaCorrida.getRuta() != null) {
+ lsRutaEmbarqueDesembarque = rutaEmbarqueDesembarqueService.obtenerPorRuta(esquemaCorrida.getRuta());
+ }
+ lsEsquemaCorridaEmbarqueDesembarqueSelected = esquemaCorridaEmbarqueDesembarqueService.obtenerPorEsquemaCorrida(esquemaCorrida);
+ lsEsquemaCorridaInfoSelected = esquemaCorridaInfoService.obtenerPorEsquemaCorrida(esquemaCorrida);
+
+ esquemaCorridaEmbarqueDesembarqueListbox.setData(lsEsquemaCorridaEmbarqueDesembarqueSelected);
+ lstTrechosInformacaoCorridaListbox.setData(lsEsquemaCorridaInfoSelected);
+
+ if (esquemaCorrida.getRuta() != null) {
+ embarqueDesembarqueDisabled = false;
+ }
+
+ if (ehEsquemaAgrupacion) {
+ fecniciovigencia.setDisabled(Boolean.TRUE);
+ fecfinvigencia.setDisabled(Boolean.TRUE);
+ txtQtdeDiasGeracao.setDisabled(Boolean.TRUE);
+ horasalida.setDisabled(Boolean.TRUE);
+ cmbIndGeneraFeriado.setDisabled(Boolean.TRUE);
+ chkDoblePiso.setDisabled(Boolean.TRUE);
+
+ lun.setDisabled(Boolean.TRUE);
+ mar.setDisabled(Boolean.TRUE);
+ mie.setDisabled(Boolean.TRUE);
+ jue.setDisabled(Boolean.TRUE);
+ vie.setDisabled(Boolean.TRUE);
+ sab.setDisabled(Boolean.TRUE);
+ dom.setDisabled(Boolean.TRUE);
+
+ }
+
+ cmbClase.setDisabled(Boolean.TRUE);
+ cmbMarca.setDisabled(Boolean.TRUE);
+ cmbRuta.setDisabled(Boolean.TRUE);
+ cmbEmpresaCorrida.setDisabled(Boolean.TRUE);
+ cmbEmpresaIngresso.setDisabled(Boolean.TRUE);
+ txtNumCorrida.setDisabled(Boolean.TRUE);
+ chkCorridaExtra.setDisabled(Boolean.TRUE);
+
+ if (esquemaCorrida.getIndGeneraFeriado() != null) {
+ if (esquemaCorrida.getIndGeneraFeriado().equals("S")) {
+ cmbIndGeneraFeriado.setSelectedIndex(0);
+ } else if (esquemaCorrida.getIndGeneraFeriado().equals("F")) {
+ cmbIndGeneraFeriado.setSelectedIndex(1);
+ } else if (esquemaCorrida.getIndGeneraFeriado().equals("N")) {
+ cmbIndGeneraFeriado.setSelectedIndex(2);
+ }
+ }
+
+ if (esquemaCorrida.getPisoExtra() != null && esquemaCorrida.getPisoExtra()) {
+ chkDoblePiso.setChecked(true);
+ lbNumCorridaPisoExtra.setVisible(Boolean.TRUE);
+ txtNumCorridaPisoExtra.setVisible(Boolean.TRUE);
+
+ lbNumCorridaPisoExtra2.setVisible(Boolean.TRUE);
+ txtNumCorridaPisoExtra2.setVisible(Boolean.TRUE);
+ }
+
+ //FlexBus
+ txtHorasParaConfirmacao.setValue(esquemaCorrida.getHorasParaConfirmacao());
+ txtMinutosParaConfirmacao.setValue(esquemaCorrida.getMinutosParaConfirmacao());
+ txtOcupacaoMinima.setValue(esquemaCorrida.getOcupacaoMinima());
+
+ //Automatizacao de horario extra
+ txtOcupacaoHorarioExtra.setValue(esquemaCorrida.getTaxaOcupacao());
+ txtHorasAutomacaoDE.setValue(esquemaCorrida.getHorasAutomacaoHEDe());
+ txtMinutosAutomacaoDE.setValue(esquemaCorrida.getMinutosAutomacaoHEDe());
+ txtHorasAutomacaoATE.setValue(esquemaCorrida.getHorasAutomacaoHEAte());
+ txtMinutosAutomacaoATE.setValue(esquemaCorrida.getMinutosAutomacaoHEAte());
+ }
+
+ // Llena los valores de los combos
+ llenarRutasPorClase();
+ llenarMarcaPorClaseServicio();
+
+ esquemaTramoList.setItemRenderer(new RenderConfiguracionCorridaTramo(esquemaCorrida.getHorasalida()));
+ esquemaTramoList.addEventListener("onDoubleClick", new EventListener() {
+
+ @Override
+ public void onEvent(Event event) throws Exception {
+ ParadaEsquema pe = (ParadaEsquema) esquemaTramoList.getSelected();
+ EsquemaTramo esquemaTramo = null;
+
+ for (EsquemaTramo et : lsEsquemaTramo) {
+ Short numSec = et.getNumsecuencia();
+
+ if (numSec.equals(pe.getNumsecuencia())) {
+ esquemaTramo = et;
+ esquemaTramo.setPlataforma(pe.getPlataforma());
+ }
+ }
+
+ verTempoEstanciaTramo(esquemaTramo, pe, (short) esquemaTramoList.getItemCount());
+ }
+ });
+
+ try {
+ lsEsquemaTramo = new ArrayList();
+
+ if (esquemaCorrida.getEsquemacorridaId() == null) {
+ EsquemaOperacional eo = new EsquemaOperacional();
+ eo.setActivo(Boolean.TRUE);
+ eo.setFecmodif(Calendar.getInstance().getTime());
+ eo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
+ esquemaCorrida.setEsquemaOperacional(eo);
+
+ transportePasajeros.setChecked(Boolean.TRUE);
+ } else {
+ esquemaCorridaService.obtenerID(esquemaCorrida.getEsquemacorridaId());
+
+ esquemaCorrida.getEsquemaOperacional();
+
+ porBloq.setVisible(false);
+
+ if (esquemaCorrida.getStatusCorrida() != null) {
+ if (esquemaCorrida.getStatusCorrida().equals("L")) {
+ latente.setChecked(true);
+ } else if (esquemaCorrida.getStatusCorrida().equals("A")) {
+ autorizada.setChecked(true);
+ } else {
+ cancelada.setChecked(true);
+ }
+
+ if (esquemaCorrida.getTipocorrida().equals("F")) {
+ fletes.setChecked(true);
+ } else if (esquemaCorrida.getTipocorrida().equals("S")) {
+ viajesEspeciales.setChecked(true);
+ } else {
+ transportePasajeros.setChecked(true);
+ }
+
+ }
+ lsEsquemaTramo = esquemaTramoService.obtenerPorEsquemaCorridaOrderNumSec(esquemaCorrida);
+ lsEsquemaTramoOriginal = new ArrayList();
+ for (EsquemaTramo esquemaTramo : lsEsquemaTramoOriginal) {
+ lsEsquemaTramoOriginal.add(esquemaTramo.clone());
+ }
+ //lsEsquemaTramoOriginal.addAll(lsEsquemaTramo);
+ carregarParadaSecuencia(lsEsquemaTramo);
+ lsParadaEsquemaOrignal = new ArrayList();
+ for (ParadaEsquema paradaEsquema : lsParadaEsquema) {
+ lsParadaEsquemaOrignal.add(paradaEsquema.clone());
+ }
+ //lsParadaEsquemaOrignal.addAll(lsParadaEsquema);
+ selecionarRutaSequenciaForaEsqCorrida();
+ }
+
+ fecniciovigencia.focus();
+
+ horasalida.setVisible(true);
+ horasalidaLabel.setVisible(true);
+ minutos.setVisible(false);
+ minutosLabel1.setVisible(false);
+ minutosLabel2.setVisible(false);
+ de.setVisible(false);
+ horaLabel1.setVisible(false);
+ horaLabel2.setVisible(false);
+ hasta.setVisible(false);
+ horaLabel21.setVisible(false);
+ horaLabel22.setVisible(false);
+
+ if (esquemaCorrida.getEsquemacorridaId() == null) {
+ btnApagar.setVisible(Boolean.FALSE);
+ }
+
+ if (esquemaCorrida.getEsquemaCorridaRebote() != null) {
+ txtIdCorridaRebote.setValue(esquemaCorrida.getEsquemaCorridaRebote().getEsquemacorridaId().toString());
+
+ }
+
+ exibirDivision();
+ setSelecaoCboBPE();
+ alterarBotaoRetomarCancelar();
+
+ } catch (Exception ex) {
+ log.error("Error al editar una corrida", ex);
+ Messagebox.show(Labels.getLabel("MSG.Error"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.ERROR);
+ }
+ }
+
+ public void selecionarHorarioNãoImpBPE() {
+ if (rdImprimeBPE.isChecked()) {
+ horaFimNaoImpBpe.setReadonly(true);
+ horaFimNaoImpBpe.setDisabled(true);
+ horaIniNaoImpBpe.setReadonly(true);
+ horaIniNaoImpBpe.setDisabled(true);
+ } else if (rdNaoImprimeBPE.isChecked()) {
+ horaFimNaoImpBpe.setReadonly(false);
+ horaFimNaoImpBpe.setDisabled(false);
+ horaIniNaoImpBpe.setReadonly(false);
+ horaIniNaoImpBpe.setDisabled(false);
+ }
+ }
+
+ private void setSelecaoCboBPE() {
+ if (esquemaCorrida.getIndNaoImprimeBpe() == null || esquemaCorrida.getIndNaoImprimeBpe().equals("0")) {
+ rdImprimeBPE.setChecked(true);
+ } else {
+ rdNaoImprimeBPE.setChecked(true);
+ }
+ selecionarHorarioNãoImpBPE();
+ }
+
+ public void onClick$rdgNaoImprimeViaBPE(Event event) {
+ String option = rdImprimeBPE.isChecked() ? "0" : "1";
+
+ if (option.equals("0")) {
+ esquemaCorrida.setIndNaoImprimeBpe("0");
+ } else if (option.equals("1")) {
+ esquemaCorrida.setIndNaoImprimeBpe("1");
+ }
+ setSelecaoCboBPE();
+ }
+
+ public void onClick$btnCopiar(Event ev) {
+ try {
+ if (esquemaCorrida.getEsquemacorridaId() != null) {
+ // Carregar campos lazy
+ esquemaCorrida = esquemaCorridaService.obtenerID(esquemaCorrida.getEsquemacorridaId());
+ esquemaCorrida.clonar();
+ esquemaCorrida = esquemaCorrida.getCloneObject();
+
+ txtNumCorrida.setConstraint("");
+ txtNumCorrida.setDisabled(false);
+ txtNumCorrida.setText("");
+ txtNumCorrida.setConstraint("no empty");
+ chkCorridaExtra.setDisabled(Boolean.FALSE);
+
+ esquemaCorrida.setEsquemacorridaId(null);
+ esquemaCorrida.setNumCorrida(null);
+ for (EsquemaTramo esquemaTramo : esquemaCorrida.getEsquemaTramoList()) {
+ esquemaTramo.setEsquematramoId(null);
+ esquemaTramo.setEsquemaCorrida(esquemaCorrida);
+ }
+
+ for (EsquemaAsiento esquemaAsiento : esquemaCorrida.getEsquemaAsientoList()) {
+ esquemaAsiento.setEsquemaasientoId(null);
+ esquemaAsiento.setEsquemaCorrida(esquemaCorrida);
+ }
+
+ for (EsquemaCorridaEmbarqueDesembarque esquemaCorridaEmbarqueDesembarque : esquemaCorrida.getLsEsquemaCorridaEmbarqueDesembarque()) {
+ esquemaCorridaEmbarqueDesembarque.setEsquemaCorridaEmbarqueDesembarqueId(null);
+ esquemaCorridaEmbarqueDesembarque.setEsquemaCorrida(esquemaCorrida);
+ }
+
+ tratarEsquemaTramoList();
+ }
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ }
+ }
+
+ private void tratarEsquemaTramoList() {
+ lsEsquemaTramo.clear();
+ lsEsquemaTramo.addAll(esquemaCorrida.getEsquemaTramoList());
+ Collections.sort(lsEsquemaTramo);
+ esquemaCorrida.setEsquemaTramoList(lsEsquemaTramo);
+ }
+
+ public void clearCombobox(Combobox combobox) {
+
+ int size = combobox.getItemCount();
+
+ for (int i = size - 1; i >= 0; i--) {
+ combobox.removeItemAt(i);
+ }
+ }
+
+ public void popularCombobox(Combobox cmb) throws Exception {
+
+ clearCombobox(cmb);
+ for (EsquemaCorrida.GerarFeriado p : EsquemaCorrida.GerarFeriado.values()) {
+ Comboitem comboItem = new Comboitem(p.descricao());
+ comboItem.setValue(p.valor());
+ comboItem.setParent(cmb);
+ }
+
+ cmb.setSelectedIndex(0);
+
+ }
+
+ private void exibirDivision() {
+ if (ApplicationProperties.getInstance().isCustomHabilitado(CustomEnum.EXIBIR_DIVISION_CONFIGURACION_CORRIDA.getDescricao())) {
+
+ lsDivision = divisionService.obtenerTodos();
+
+ lbDivision.setVisible(Boolean.TRUE);
+ cmbDivision.setVisible(Boolean.TRUE);
+
+ }
+ }
+
+ private void addTramoPardaEsquema(Parada parada, Short numsecuencia, Date tiempoEstancia, String plataforma, Date excepcionRecorrido, Date defautRecorrido, String tipoPassagem) {
+ ParadaEsquema ps = new ParadaEsquema();
+ ps.setParada(parada);
+ ps.setNumsecuencia(numsecuencia);
+ ps.setTiempoEstancia(tiempoEstancia);
+ ps.setPlataforma(plataforma);
+ ps.setExcepcionRecorrido(excepcionRecorrido);
+ ps.setPadraoRecorrido(defautRecorrido);
+ ps.setTipoPassagem(tipoPassagem);
+
+ lsParadaEsquema.add(ps);
+ }
+
+ @SuppressWarnings("unused")
+ private void carregarParadaSecuencia(List lsEsquemaTramo) {
+
+ ClaseServicio clase = esquemaCorrida.getClaseServicio();
+
+ lsParadaEsquema.clear();
+ if (!lsEsquemaTramo.isEmpty()) {
+ List lsEsquemaTramoTodos = new ArrayList();
+ if (esquemaCorrida.getEsquemacorridaId() != null) {
+ lsEsquemaTramoTodos = esquemaTramoService.obtenerAtivosDesativosPorEsquemaCorrida(esquemaCorrida);
+ }
+
+ Short numsecuencia = 0;
+
+ for (int i = 0; i < lsEsquemaTramo.size(); i++) {
+
+ EsquemaTramo rs = lsEsquemaTramo.get(i);
+
+ Tramo tramo = rs.getTramo();
+ numsecuencia = rs.getNumsecuencia();
+ Date tiempoEstancia = null;
+ if ((i != 0) && (i != (lsEsquemaTramo.size()))) {
+ tiempoEstancia = lsEsquemaTramo.get(i).getTiempoEstancia();
+ }
+
+ Date excepcionRecorrido = null;
+ if (i != (lsEsquemaTramo.size())) {
+ excepcionRecorrido = lsEsquemaTramo.get(i).getExcepcionRecorrido();
+ }
+
+ Date defautRecorrido = null;
+ if (clase != null) {
+ List lsTramoServicio = tramoServicioService.buscarPorTramoServico(tramo, clase);
+
+ if (i != (lsEsquemaTramo.size())) {
+ if (!lsTramoServicio.isEmpty()) {
+ // soh eh permitido gravar um por classe, get(0):
+ defautRecorrido = lsTramoServicio.get(0).getTiemporecorrido();
+ }
+ }
+ }
+ String tipoPassagem ="";
+
+ Parada paradaOrigem = tramo.getOrigem();
+ tipoPassagem = rs.getTipoPassagem();
+ String plataforma = rs.getPlataforma();
+ // So adicionar a parada se o EsquemaTramo estiver ativo.
+ if (rs.getActivo()) {
+ addTramoPardaEsquema(paradaOrigem, numsecuencia, tiempoEstancia, plataforma, excepcionRecorrido, defautRecorrido, tipoPassagem);
+ }
+ }
+
+ EsquemaTramo esquemaTramoFinal = lsEsquemaTramo.get(lsEsquemaTramo.size() - 1);
+
+ Parada paradaDestino = esquemaTramoFinal.getTramo().getDestino();
+ String tipoPassagem = "";
+ String plataforma = txtPlataforma.getValue();
+
+ if(!isPrimeiraVez){
+ if (sentado.isChecked()) {
+ tipoPassagem = "S";
+ } else if (emPe.isChecked()) {
+ tipoPassagem = "P";
+ } else if (naoVende.isChecked()) {
+ tipoPassagem = "N";
+ } else {
+ tipoPassagem = "A";
+ }
+ }
+ isPrimeiraVez = false;
+ Integer num = numsecuencia.intValue() + 1;
+
+ addTramoPardaEsquema(paradaDestino, num.shortValue(), null, plataforma, null, null,tipoPassagem);
+ }
+
+ esquemaTramoList.setData(lsParadaEsquema);
+ }
+
+ Boolean salvar = true;
+
+ @SuppressWarnings({ "deprecation", "unchecked" })
+ public void onClick$btnSalvar(Event ev) throws InterruptedException {
+
+ if(!salvar){
+ return;
+ }
+
+ salvar = false;
+ txtNumCorrida.getValue();
+ Date dataDeFecInicioVigencia = fecniciovigencia.getValue();
+ Date dataAteFecfinvigencia = fecfinvigencia.getValue();
+
+ if(!realizaValidacoes()) {
+ return;
+ }
+
+ for (EsquemaCorridaEmbarqueDesembarque esquemaCorridaEmbarqueDesembarque : lsEsquemaCorridaEmbarqueDesembarqueBorrar) {
+ if (esquemaCorridaEmbarqueDesembarque.getEsquemaCorridaEmbarqueDesembarqueId() != null) {
+ esquemaCorridaEmbarqueDesembarqueService.borrar(esquemaCorridaEmbarqueDesembarque);
+ }
+ }
+
+ for (EsquemaCorridaInfo esquemaCorridaInfo : lsEsquemaCorridaInfoBorrar) {
+ if (esquemaCorridaInfo.getEsquemaCorridaInfoId() != null) {
+ esquemaCorridaInfoService.borrar(esquemaCorridaInfo);
+ }
+ }
+ //Imprimir ou não recibo BPE na embarcada
+ validaNaoImprimeBpe(dataAteFecfinvigencia);
+
+
+ try {
+
+ dataAteFecfinvigencia.setSeconds(59);
+
+ if(!validaEsquemaTramo(dataDeFecInicioVigencia, dataAteFecfinvigencia)) {
+ return;
+ } else {
+ salvaEsquemaCorrida(dataDeFecInicioVigencia);
+ }
+
+ } catch (WrongValueException ex) {
+ throw (WrongValueException) ex;
+ } catch (Exception ex) {
+ log.error("", ex);
+ Messagebox.show(Labels.getLabel("MSG.Error").concat(" - ").concat(ex.toString()),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.ERROR);
+ }
+ }
+
+ private void validaNaoImprimeBpe(Date dataAteFecfinvigencia) {
+ boolean isNaoImprimeBPE = esquemaCorrida.getIndNaoImprimeBpe() == null ? false : esquemaCorrida.getIndNaoImprimeBpe().equals("1");
+ if(isNaoImprimeBPE) {
+ Date dataDeNaoImpBpe = horaIniNaoImpBpe.getValue();
+ Date dataAteNaoImpBpe = horaFimNaoImpBpe.getValue();
+ boolean isHoraValida = horaIniNaoImpBpe.getValue() == null || horaFimNaoImpBpe.getValue() == null ? false : true;
+ if(isHoraValida) {
+ dataDeNaoImpBpe.setSeconds(59);
+ dataAteFecfinvigencia.setSeconds(59);
+ if(dataDeNaoImpBpe.after(dataAteNaoImpBpe)) {
+ esquemaCorrida.setHoraIniNaoImpBPE(buscarHora(dataAteNaoImpBpe));
+ esquemaCorrida.setHoraFimNaoImpBPE(buscarHora(dataDeNaoImpBpe));
+ } else if(dataDeNaoImpBpe.before(dataAteNaoImpBpe)) {
+ esquemaCorrida.setHoraIniNaoImpBPE(buscarHora(dataDeNaoImpBpe));
+ esquemaCorrida.setHoraFimNaoImpBPE(buscarHora(dataAteNaoImpBpe));
+ } else {
+ esquemaCorrida.setIndNaoImprimeBpe("0");
+ setSelecaoCboBPE();
+ }
+ } else {
+ esquemaCorrida.setIndNaoImprimeBpe("0");
+ setSelecaoCboBPE();
+ }
+ }
+
+ if (chkDoblePiso.isChecked()) {
+ txtNumCorridaPisoExtra.getValue();
+ txtNumCorridaPisoExtra2.getValue();
+ }
+ }
+
+ private boolean validaEsquemaTramo(Date dataDeFecInicioVigencia, Date dataAteFecfinvigencia ) throws InterruptedException {
+ Comboitem ciRuta = cmbRuta.getSelectedItem();
+ Ruta ruta = null;
+ if (ciRuta != null) {
+ ruta = (Ruta) ciRuta.getValue();
+ }
+
+ if (chkDoblePiso.isChecked() && !validarPisoExtra()) {
+ salvar = true;
+ return false;
+ }
+
+ if (dataDeFecInicioVigencia.after(dataAteFecfinvigencia)) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.busquedaPeriodo"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.EXCLAMATION);
+ return false;
+ }
+
+ if(ruta==null) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.RutaVazia"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.EXCLAMATION);
+ return false;
+ }
+
+ if(lsEsquemaTramo.isEmpty()) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.RutaSemTramos"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.EXCLAMATION);
+ return false;
+
+ }
+
+ if (esquemaCorrida.getClaseServicio() == null) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.Clase"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK,
+ Messagebox.EXCLAMATION);
+ salvar = true;
+ return false;
+ } else if (esquemaCorrida.getMarca() == null) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.Marca"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK,
+ Messagebox.EXCLAMATION);
+ salvar = true;
+ return false;
+ } else if (esquemaCorrida.getRuta() == null) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.Ruta"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK,
+ Messagebox.EXCLAMATION);
+ salvar = true;
+ } else if (esquemaCorrida.getEmpresa() == null) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.Empresa"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK,
+ Messagebox.EXCLAMATION);
+ salvar = true;
+ return false;
+ } else if (esquemaCorrida.getEmpresa1() == null) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.Empresa1"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK,
+ Messagebox.EXCLAMATION);
+ salvar = true;
+ return false;
+ } else if (esquemaCorrida.getRolOperativo() == null) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.Rol"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK,
+ Messagebox.EXCLAMATION);
+ salvar = true;
+ return false;
+ }
+
+ return true;
+ }
+
+ private void salvaEsquemaCorrida(Date dataDeFecInicioVigencia) throws InterruptedException {
+ //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);
+ }
+
+ //Automacao Horario Extra
+ if(esquemaCorrida.getIsAutomacaoHorarioExtra()) {
+ esquemaCorrida.setHorasAutomacaoHEDe(txtHorasAutomacaoDE.getValue() == null ? 0 : txtHorasAutomacaoDE.getValue());
+ esquemaCorrida.setMinutosAutomacaoHEDe(txtMinutosAutomacaoDE.getValue() == null ? 0 : txtMinutosAutomacaoDE.getValue());
+ esquemaCorrida.setHorasAutomacaoHEAte(txtHorasAutomacaoATE.getValue() == null ? 0 : txtHorasAutomacaoATE.getValue());
+ esquemaCorrida.setMinutosAutomacaoHEAte(txtMinutosAutomacaoATE.getValue() == null ? 0 : txtMinutosAutomacaoATE.getValue());
+ esquemaCorrida.setTaxaOcupacao(txtOcupacaoHorarioExtra.getValue() == null ? 0 : txtOcupacaoHorarioExtra.getValue() );
+ esquemaCorrida.setNumCorridaServicoExtra(txtNumCorridaExtraAuto.getValue());
+
+ esquemaCorrida.setHorasalidaExtra(buscarHora(esquemaCorrida.getHorasalidaExtra()));
+ }
+
+ if (porBloq.isChecked()) {
+ de.getValue();
+ hasta.getValue();
+ minutos.getValue();
+ } else {
+ horasalida.getValue();
+ }
+
+ esquemaCorrida.setInfoCorrida(txtInfoCorrida.getValue());
+ esquemaCorrida.setIndCorridaExtra(chkCorridaExtra.isChecked());
+ esquemaCorrida.setNumCorrida(txtNumCorrida.getValue());
+ esquemaCorrida.setActivo(Boolean.TRUE);
+ esquemaCorrida.setFecmodif(Calendar.getInstance().getTime());
+ esquemaCorrida.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
+ esquemaCorrida.setIndBloqueiaWebAposSaida(chkBloqueiaCorridaWebAposSaida.isChecked());
+
+ esquemaCorrida.setDiagramaAutobusId(esquemaCorrida.getRolOperativo().getDiagramaAutobus().getDiagramaautobusId().intValue());
+
+ if (cmbIndGeneraFeriado.getSelectedItem() != null) {
+ esquemaCorrida.setIndGeneraFeriado((String) cmbIndGeneraFeriado.getSelectedItem().getValue());
+ }
+
+ if (latente.isChecked()) {
+ esquemaCorrida.setStatusCorrida("L");
+ } else if (autorizada.isChecked()) {
+ esquemaCorrida.setStatusCorrida("A");
+ } else {
+ esquemaCorrida.setStatusCorrida("C");
+ }
+
+ if (fletes.isChecked()) {
+ esquemaCorrida.setTipocorrida("F");
+ } else if (viajesEspeciales.isChecked()) {
+ esquemaCorrida.setTipocorrida("S");
+ } else if (transportePasajeros.isChecked()) {
+ esquemaCorrida.setTipocorrida("P");
+ }
+
+ // nao gravar segundos:
+ esquemaCorrida.setHorasalida(buscarHora(esquemaCorrida.getHorasalida()));
+
+ List lsEC = Collections.EMPTY_LIST;
+
+ if (esquemaCorrida.getEsquemacorridaId() == null) {
+ salvaNovoEsquemaCorrida(dataDeFecInicioVigencia, lsEC);
+ } else {
+ atualizaDadosEsquemaCorrida(lsEC);
+ }
+ }
+
+ private void atualizaDadosEsquemaCorrida(List lsEC) throws InterruptedException {
+ boolean podeSalvar = false;
+ if ((lsEC.isEmpty())) {
+ podeSalvar = true;
+ } else {
+ for (EsquemaCorrida ec : lsEC) {
+ if (ec.getEsquemacorridaId().equals(esquemaCorrida.getEsquemacorridaId())) {
+ podeSalvar = true;
+ }
+ }
+ }
+ if (podeSalvar) {
+ if (!chkDoblePiso.isChecked()) {
+ esquemaCorrida.setNumCorridaPisoExtra(null);
+ }
+ esquemaCorridaService.actualizacion(esquemaCorrida);
+ esquemaCorridaService.actualizaEsquemaTramo(lsParadaEsquema, esquemaCorrida);
+ if(Boolean.TRUE.equals(isAlteraCorridaJaGerada)) {
+ validaRealizaGeracaoCorrida();
+ }
+
+ esquemaCorridaList.updateItem(esquemaCorrida);
+
+ } else {
+ Messagebox.show(Labels.getLabel("MSG.Registro.Existe"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK,
+ Messagebox.EXCLAMATION);
+ salvar = true;
+ }
+
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.suscribirOK"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK,
+ Messagebox.INFORMATION);
+
+ closeWindow();
+ }
+
+ private void validaRealizaGeracaoCorrida() {
+ try {
+ LocalDate inicioLocalDate = dataInicialFiltroCorridaExistente.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+ LocalDate fimLocalDate = dataFinalFiltroCorridaExistente.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1);
+ List tarefaSucesso = new ArrayList();
+ List tarefaErros = new ArrayList();
+ for (LocalDate date = inicioLocalDate; date.isBefore(fimLocalDate); date = date.plusDays(1)) {
+ Date dataIter = Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant());
+ try {
+
+ List lsParadaEsquemaRemovidas = new ArrayList();
+ List lsParadaEsquemaEditadas =new ArrayList();
+ preencheParadaEsquemaRemovidaEEditada(lsParadaEsquemaRemovidas, lsParadaEsquemaEditadas);
+
+ List lsParadaEsquemaAdicionadasRemovidasOuEditadas = new ArrayList() ;
+ if(lsParadaEsquemaEditadas!=null) {
+ lsParadaEsquemaAdicionadasRemovidasOuEditadas.addAll(lsParadaEsquemaEditadas);
+ }
+ if(lsParadaEsquemaRemovidas!=null) {
+ lsParadaEsquemaAdicionadasRemovidasOuEditadas.addAll(lsParadaEsquemaRemovidas);
+ }
+
+ List localidadeComVenda =null;
+ for (ParadaEsquema paradaEsquema : lsParadaEsquemaAdicionadasRemovidasOuEditadas) {
+ if(boletoService.isExisteBoletoPorCorridaOrigemIdOuDestinoId(esquemaCorrida.getNumCorrida(), dataIter, paradaEsquema.getParada().getParadaId(), paradaEsquema.getParada().getParadaId())) {
+ if(localidadeComVenda == null) {
+ localidadeComVenda = new ArrayList();
+ }
+ localidadeComVenda.add(paradaEsquema);
+ String msgErro = "Trecho com origem/destino: " + paradaEsquema.getParada().getDescparada() + " não pode ser alterdo" + ". Existem vendas para essa localidade da 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);
+ }
+
+ }
+ List corridaTramoList = null;
+ //Se nenhuma localidade editada tem venda, recria todos os corridas tramos da corrida
+ if(localidadeComVenda==null || localidadeComVenda.isEmpty()) {
+ corridaTramoList = corridaTramoService.recriaCorridaTramo(esquemaCorrida, dataIter, lsEsquemaTramo );
+ String msgSucesso = "Corrida para a data " + DateUtil.getStringDate(dataIter) + " gerada com sucesso";
+ TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgSucesso, "OK", "OK" );
+ tarefaSucesso.add(tarefa);
+
+ }else {
+ List lsEsquemaTramoIter = new ArrayList();
+ List localidadeComVendaIter = new ArrayList();
+ localidadeComVendaIter.addAll(lsParadaEsquema);
+ for (ParadaEsquema paradaEsquemaComVenda : localidadeComVenda) {
+ List listParadaEsquemaComNovaParada = new ArrayList();
+ lsEsquemaTramoIter = adicionarParadaEsquemaTramo(localidadeComVendaIter,paradaEsquemaComVenda.getParada() , esquemaCorrida, (Ruta) cmbRuta.getSelectedItem().getValue(), paradaEsquemaComVenda.getPlataforma(), paradaEsquemaComVenda.getTipoPassagem(), listParadaEsquemaComNovaParada);
+ localidadeComVendaIter = listParadaEsquemaComNovaParada;
+ }
+ corridaTramoList = corridaTramoService.recriaCorridaTramo(esquemaCorrida, dataIter, lsEsquemaTramoIter );
+ }
+
+ //Valida e apaga corrida caso exista
+ TarefaGeracaoCorridaVO tarefaErro= validaApagaCorridaAgerar(esquemaCorrida.getNumCorrida(), dataIter);
+ if(tarefaErro !=null) {
+ tarefaErros.add(tarefaErro);
+ continue;
+ }
+
+ //Valida e apaga corrida piso extra caso exista
+ if(esquemaCorrida.getNumCorridaPisoExtra()!=null) {
+ tarefaErro= validaApagaCorridaAgerar(esquemaCorrida.getNumCorridaPisoExtra(), dataIter);
+ if(tarefaErro !=null) {
+ tarefaErros.add(tarefaErro);
+ }
+ }
+
+ // Gerar corrida novamente.
+ List esquemaCorridaList = new ArrayList();
+ esquemaCorridaList.add(esquemaCorrida);
+ corridaService.generarCorrida(dataIter, esquemaCorridaList, false, corridaTramoList);
+
+
+
+ }catch (Exception e) {
+ String msgErro = "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());
+ }
+ }
+
+
+ /**
+ * Preenche a lista de paradas removidas e a lista de paradas Editadas
+ *
+ * @param lsParadaEsquemaRemovidas
+ * @param lsParadaEsquemaEditadas
+ */
+ private void preencheParadaEsquemaRemovidaEEditada(List lsParadaEsquemaRemovidas, List lsParadaEsquemaEditadas) {
+ for (ParadaEsquema paradaEsquemaAntiga : lsParadaEsquemaOrignal) {
+ boolean isParadaEsquemaNaoRemovida = false;
+ for (ParadaEsquema paradaEsquemaNova : lsParadaEsquema) {
+ if(paradaEsquemaNova.equals(paradaEsquemaAntiga)) {
+ isParadaEsquemaNaoRemovida = true;
+ ParadaEsquema paradaEsquemaEditada = validaParadaEsquemaEditada(paradaEsquemaAntiga, paradaEsquemaNova);
+ if(paradaEsquemaEditada !=null) {
+ if(lsParadaEsquemaEditadas==null) {
+ lsParadaEsquemaEditadas = new ArrayList();
+ }
+ lsParadaEsquemaEditadas.add(paradaEsquemaEditada);
+ }
+ break;
+ }
+ }
+ //Se isParadaEsquemaNaoRemovida=false a parada esquema foi removida, adiciona na lista.
+ if(!isParadaEsquemaNaoRemovida) {
+ if(lsParadaEsquemaRemovidas == null) {
+ lsParadaEsquemaRemovidas = new ArrayList();
+ }
+ lsParadaEsquemaRemovidas.add(paradaEsquemaAntiga);
+ }
+ }
+ }
+
+ /**
+ * Se editou retorna a parada se não retorna nulo
+ * @param paradaEsquemaAntiga
+ * @param paradaEsquemaNova
+ * @return
+ */
+ private ParadaEsquema validaParadaEsquemaEditada(ParadaEsquema paradaEsquemaAntiga, ParadaEsquema paradaEsquemaNova ) {
+ boolean isParadaEsquemaEditada = false;
+ //verifica se editou tiempoEstancia
+ if(paradaEsquemaAntiga.getTiempoEstancia()!=null && paradaEsquemaNova.getTiempoEstancia()!=null
+ && !paradaEsquemaAntiga.getTiempoEstancia().equals(paradaEsquemaNova.getTiempoEstancia())) {
+ isParadaEsquemaEditada = true;
+ }
+ //verifica se editou excepcionRecorrido
+ if(paradaEsquemaAntiga.getExcepcionRecorrido()!=null && paradaEsquemaNova.getExcepcionRecorrido()!=null
+ && !paradaEsquemaAntiga.getExcepcionRecorrido().equals(paradaEsquemaNova.getExcepcionRecorrido())) {
+ isParadaEsquemaEditada = true;
+ }
+ //Verifica se editou Tipo passagem
+ if(paradaEsquemaAntiga.getTipoPassagem()!=null && paradaEsquemaNova.getTipoPassagem()!=null
+ && !paradaEsquemaAntiga.getTipoPassagem().equals(paradaEsquemaNova.getTipoPassagem())) {
+ isParadaEsquemaEditada = true;
+ }
+ //Verifica se editou Tipo PLataforma
+ if(paradaEsquemaAntiga.getPlataforma()!=null && paradaEsquemaNova.getPlataforma()!=null
+ && !paradaEsquemaAntiga.getPlataforma().equals(paradaEsquemaNova.getPlataforma())) {
+ isParadaEsquemaEditada = true;
+ }
+ //Se editou retorna a parada se não retorna nulo
+ if(isParadaEsquemaEditada) {
+ return paradaEsquemaNova;
+
+ }
+ return null;
+ }
+
+ private TarefaGeracaoCorridaVO validaApagaCorridaAgerar(Integer corridaId, Date dataIter) {
+
+ //2 - Apagar corrida caso não exista venda
+ Corrida.Id id = new Corrida.Id(corridaId, dataIter);
+ //3 - Gerar nova corrida somente se a corrida estiver ativa
+ Corrida corrida = corridaService.buscarCorridaAtivaPorId(id);
+
+ if(corrida==null) {
+ String msgErro = "Não econtrado corrida ativa e habilitada:" + esquemaCorrida.getNumCorrida() + " para a data:" + DateUtil.getStringDate(dataIter);
+ log.error("Geração de corrida via Conf. " + msgErro);
+ return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
+ }
+
+ try {
+ inativaCorridaETabelasRelacionadas(corrida);
+ }catch (Exception e) {
+ String msgErro = "Erro ao inativar corrida e tabelas relacionadas. Favor verificar ";
+ log.error("Geração de corrida via Conf. " + msgErro, e);
+ return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
+
+ }
+ return null;
+ }
+
+ /**
+ * Inativa a corrida e a realção dela com as seguintes tabelas: Corrida_Info, ASIENTO_EXCLUSIVO, Disponibilidad, INTEGRACAO_TOTVS_CORRIDA e corrida
+ * @param corrida
+ */
+ private void inativaCorridaETabelasRelacionadas(Corrida corrida) {
+ corridaInfoService.borrarByCorrida(corrida);
+ asientoExclusivoService.borrarByCorrida(corrida);
+ disponibilidadService.borrarByCorrida(corrida);
+ integracaoTotvsService.borrarByCorrida(corrida);
+ corridaService.borrar(corrida);
+ }
+
+ private void salvaNovoEsquemaCorrida(Date dataDeFecInicioVigencia, List lsEC)
+ throws InterruptedException {
+ Calendar agora = Calendar.getInstance();
+ agora.set(agora.get(Calendar.YEAR), agora.get(Calendar.MONTH), agora.get(Calendar.DATE),
+ NumberUtils.INTEGER_ZERO, NumberUtils.INTEGER_ZERO, NumberUtils.INTEGER_ZERO);
+
+ dataDeFecInicioVigencia.setSeconds(01);
+ if (dataDeFecInicioVigencia.before(agora.getTime())) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.fecha"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK,
+ Messagebox.EXCLAMATION);
+ salvar = true;
+ } else {
+ if (lsEC.isEmpty()) {
+ Boolean existeNumCorrida = true;
+
+ EsquemaCorrida ecor = esquemaCorridaService.buscarPeloNumCorrida(esquemaCorrida.getNumCorrida());
+ existeNumCorrida = ecor != null;
+
+ if ((!existeNumCorrida) && !(esquemaCorrida.getNumCorrida().equals(esquemaCorrida.getNumCorridaPisoExtra()))) {
+ if (porBloq.isChecked()) {
+ Date des = de.getValue();
+ Date has = hasta.getValue();
+ has.setSeconds(1);
+ EsquemaOperacional eo = new EsquemaOperacional();
+ Integer numCorrida = esquemaCorrida.getNumCorrida();
+ while (des.before(has)) {
+ EsquemaCorrida ec = new EsquemaCorrida();
+ eo.setActivo(Boolean.TRUE);
+ eo.setFecmodif(Calendar.getInstance().getTime());
+ eo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
+
+ Date horaSalida = new Date();
+ horaSalida.setHours(des.getHours());
+ horaSalida.setMinutes(des.getMinutes());
+ horaSalida.setSeconds(0);
+
+ ec.setActivo(Boolean.TRUE);
+ ec.setFecmodif(Calendar.getInstance().getTime());
+ ec.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
+ ec.setClaseServicio(esquemaCorrida.getClaseServicio());
+ ec.setEmpresa(esquemaCorrida.getEmpresa());
+ ec.setEmpresa1(esquemaCorrida.getEmpresa1());
+
+ eo.setFecniciovigencia(esquemaCorrida.getEsquemaOperacional().getFecniciovigencia());
+ eo.setFecfinvigencia(esquemaCorrida.getEsquemaOperacional().getFecfinvigencia());
+
+ ec.setEsquemaOperacional(eo);
+ ec.setMarca(esquemaCorrida.getMarca());
+ ec.setRolOperativo(esquemaCorrida.getRolOperativo());
+ ec.setDiagramaAutobusId(esquemaCorrida.getRolOperativo().getDiagramaAutobus().getDiagramaautobusId().intValue());
+ ec.setRuta(esquemaCorrida.getRuta());
+ ec.setInddomingo(esquemaCorrida.getInddomingo());
+ ec.setIndjueves(esquemaCorrida.getIndjueves());
+ ec.setIndlunes(esquemaCorrida.getIndlunes());
+ ec.setIndmartes(esquemaCorrida.getIndmartes());
+ ec.setIndmiercoles(esquemaCorrida.getIndmiercoles());
+ ec.setIndsabado(esquemaCorrida.getIndsabado());
+ ec.setIndviernes(esquemaCorrida.getIndviernes());
+ ec.setStatusCorrida(esquemaCorrida.getStatusCorrida());
+ ec.setTipocorrida(esquemaCorrida.getTipocorrida());
+ ec.setCantparados(esquemaCorrida.getCantparados());
+ ec.setInfoCorrida(esquemaCorrida.getInfoCorrida());
+ ec.setHorasalida(horaSalida);
+ ec.setIndGeneraFeriado(esquemaCorrida.getIndGeneraFeriado());
+
+ ec.setPisoExtra(esquemaCorrida.getPisoExtra());
+
+
+ // Salva
+ Boolean existeNumCorridaBloco = true;
+ while (existeNumCorridaBloco) {
+ existeNumCorridaBloco = esquemaCorridaService.buscarNumCorrida(numCorrida, null,false);
+ ec.setNumCorrida(numCorrida);
+ numCorrida = numCorrida + 1;
+ }
+ ec = esquemaCorridaService.suscribir(ec);
+ esquemaCorridaService.actualizaEsquemaTramo(lsParadaEsquema, ec);
+
+ // Acrescenta Minutos na Hora
+ des.setMinutes(des.getMinutes() + minutos.getValue());
+ }
+ } else {
+ EsquemaOperacional eo = new EsquemaOperacional();
+ eo.setFecmodif(new Date());
+ eo.setUsuarioId(esquemaCorrida.getEsquemaOperacional().getUsuarioId());
+ eo.setActivo(Boolean.TRUE);
+ eo.setFecniciovigencia(fecniciovigencia.getValue());
+ eo.setFecfinvigencia(fecfinvigencia.getValue());
+ esquemaCorrida.setEsquemaOperacional(eo);
+ esquemaCorridaService.suscribir(esquemaCorrida);
+
+ esquemaCorridaService.actualizaEsquemaTramo(lsParadaEsquema, esquemaCorrida);
+ }
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.suscribirOK"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK,
+ Messagebox.INFORMATION);
+ busquedaCorridaController.refreshLista();
+ closeWindow();
+ } else {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.NumCorrida"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.EXCLAMATION);
+ salvar = true;
+ }
+ } else {
+ Messagebox.show(Labels.getLabel("MSG.Registro.Existe"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK,
+ Messagebox.EXCLAMATION);
+ salvar = true;
+ }
+ }
+ }
+
+ @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{
+ Datebox fecInicial = (Datebox) dialog.getFellow("fecInicio");
+ dataInicialFiltroCorridaExistente = fecInicial.getValue();
+ Datebox fecFinal = (Datebox) dialog.getFellow("fecFinal");
+ dataFinalFiltroCorridaExistente = fecFinal.getValue();
+ 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);;
+ return;
+ }
+ if(DateUtil.isMenor(dataFinalFiltroCorridaExistente, dataInicialFiltroCorridaExistente)) {
+ String msg = Labels.getLabel("MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataFinalMenorDataInicial");
+ Messagebox.show(msg, Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION);;
+ return;
+ }
+ 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")
+ .concat(" " + esquemaCorrida.getRuta().getRutaId()+" ")
+ .concat(Labels.getLabel("editarCatalogoDeRutaController.msg.rutaDesativadaIdPt2")));
+ salvar = true;
+ return false;
+ }
+
+
+ //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 false;
+ }
+
+ //Automacao Horario Extra
+ if(esquemaCorrida.getIsAutomacaoHorarioExtra() && (txtHorasAutomacaoDE.getValue() == null || txtOcupacaoHorarioExtra.getValue() == null )) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.inserirInformacoesAutomacaoHorarioExtra"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION);
+ salvar = true;
+ return false;
+ }
+
+ String numCorridaString = txtNumCorrida.getValue().toString();
+ Integer maxSizeNumCorrida = ApplicationProperties.getInstance().maxSizeNumCorrida();
+ if (maxSizeNumCorrida != -1) {
+ if (numCorridaString.length() > maxSizeNumCorrida) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.maxSizeNumCorrida").replace("@size", maxSizeNumCorrida.toString()),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK,
+ Messagebox.EXCLAMATION);
+ salvar = true;
+ return false;
+ }
+ }
+
+ if(esquemaCorrida.getIsAutomacaoHorarioExtra() && !validarCorridaExtraAutomatica()) {
+ salvar = true;
+ return false;
+ }
+ return true;
+ }
+
+ private Date buscarHora(Date horasalidaExtra) {
+ if (horasalidaExtra != null) {
+ GregorianCalendar gHoraSalida = new GregorianCalendar();
+ gHoraSalida.setTime(horasalidaExtra);
+ gHoraSalida.set(Calendar.SECOND, 0);
+ gHoraSalida.set(Calendar.MILLISECOND, 0);
+ gHoraSalida.set(Calendar.MONTH, 01);
+ gHoraSalida.set(Calendar.DAY_OF_MONTH, 01);
+ gHoraSalida.set(Calendar.YEAR, 1970);
+
+ return gHoraSalida.getTime();
+ }
+
+ return null;
+ }
+
+ public void onClick$btnApagar(Event ev) {
+ try {
+ int resp = Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.borrarPergunta"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.YES | Messagebox.NO, Messagebox.QUESTION);
+
+ if (resp == Messagebox.YES) {
+ esquemaCorridaService.borrar(esquemaCorrida);
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.borrarOK"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.INFORMATION);
+
+ esquemaCorridaList.removeItem(esquemaCorrida);
+
+ closeWindow();
+ }
+ } catch (Exception ex) {
+ log.error("", ex);
+ }
+ }
+
+ public void onClick$btnAdicionarTramo(Event ev) {
+ try {
+ if (cmbTramo.getSelectedItem() != null) {
+ String plataforma = txtPlataforma.getValue();
+ String tipoPassagem = null;
+
+ if (sentado.isChecked()) {
+ tipoPassagem = "S";
+ } else if (emPe.isChecked()) {
+ tipoPassagem = "P";
+ } else if (naoVende.isChecked()) {
+ tipoPassagem = "N";
+ } else {
+ tipoPassagem = "A";
+ }
+
+
+
+ // Ruta Secuencia
+ Parada paradaAlterada = (Parada) cmbTramo.getSelectedItem().getValue();
+ List listParadaEsquemaComNovaParada = new ArrayList();
+ lsEsquemaTramo = adicionarParadaEsquemaTramo(lsParadaEsquema,paradaAlterada , esquemaCorrida, (Ruta) cmbRuta.getSelectedItem().getValue(), plataforma, tipoPassagem, listParadaEsquemaComNovaParada);
+ esquemaCorrida.setEsquemaTramoList(lsEsquemaTramo);
+ carregarParadaSecuencia(lsEsquemaTramo);
+ cmbTramo.setSelectedItem(null);
+ selecionarRutaSequenciaForaEsqCorrida();
+
+ txtPlataforma.setValue("");
+
+
+ }
+ } catch (Exception e) {
+ log.error("ESQ CORRIDA - Erro ao adicionar tramo: " + e, e);
+ e.printStackTrace();
+ onClick$btnAdicionarTramo(null);
+ }
+ }
+
+ /**
+ * Selecciona las paradas que no estan en la secuencia de la ruta
+ */
+ @SuppressWarnings("unchecked")
+ private void selecionarRutaSequenciaForaEsqCorrida() {
+ if (lsTramosRutaEsquemaCorrida == null) {
+ lsTramosRutaEsquemaCorrida = new ArrayList();
+ }
+ lsTramosRutaEsquemaCorrida.clear();
+
+ // Ruta Secuencia
+ Ruta ruta = esquemaCorrida.getRuta();
+ ruta = rutaService.obtenerID(ruta.getRutaId());
+ lsRutaSecuencia = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta);
+
+ // Selecciona solamente la secuencia de paradas de los tramos de la
+ // secuencia de la ruta
+ List lstPardasRuta = new ArrayList();
+ for (RutaSecuencia rs : lsRutaSecuencia) {
+ Tramo tramoRS = rs.getTramo();
+ lstPardasRuta.add(tramoRS.getOrigem());
+ }
+ if (!lsRutaSecuencia.isEmpty()) {
+ lstPardasRuta.add(lsRutaSecuencia.get(lsRutaSecuencia.size() - 1).getTramo().getDestino());
+ }
+
+ // Selecciona solamente la secuencia de paradas de lo esquemTramo
+ List lstPardasTramos = new ArrayList();
+ for (EsquemaTramo et : lsEsquemaTramo) {
+ if (et.getTramo() != null) {
+ Tramo tramoET = et.getTramo();
+ lstPardasTramos.add(tramoET.getOrigem());
+ }
+ }
+
+ if (!lsEsquemaTramo.isEmpty()) {
+ lstPardasTramos.add(lsEsquemaTramo.get(lsEsquemaTramo.size() - 1).getTramo().getDestino());
+ }
+
+ if (lsTramos == null) {
+ lsTramos = new ArrayList();
+ }
+ lsTramos.clear();
+
+ lsTramos.addAll(CollectionUtils.subtract(lstPardasRuta, lstPardasTramos));
+ BindingListModelList listModelTramo = new BindingListModelList(
+ lsTramos, true);
+ cmbTramo.setModel(listModelTramo);
+ cmbParadaOrigem.setModel(new BindingListModelList( lstPardasRuta, true));
+ cmbParadaDestino.setModel(new BindingListModelList( lstPardasRuta, true));
+ }
+
+ private void selecionarRuta() {
+ // Ruta Secuencia
+ Comboitem ciRuta = cmbRuta.getSelectedItem();
+ Ruta ruta = null;
+ if (ciRuta != null) {
+ ruta = (Ruta) ciRuta.getValue();
+ }
+
+ try {
+ if (ruta != null) {
+ ruta = rutaService.obtenerID(ruta.getRutaId());
+ lsRutaSecuencia = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta);
+
+ lsEsquemaTramo = new ArrayList();
+ esquemaTramoList.setData(lsParadaEsquema);
+
+ for (RutaSecuencia rs : lsRutaSecuencia) {
+ EsquemaTramo et = new EsquemaTramo();
+ et.setActivo(Boolean.TRUE);
+ et.setFecmodif(Calendar.getInstance().getTime());
+ et.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
+ et.setNumsecuencia(rs.getNumsecuencia());
+ et.setTramo(rs.getTramo());
+ et.setEsquemaCorrida(esquemaCorrida);
+
+ // Somente quando muda a seleção da Ruta.
+ lsEsquemaTramo.add(et);
+ }
+
+ esquemaCorrida.setEsquemaTramoList(lsEsquemaTramo);
+ carregarParadaSecuencia(lsEsquemaTramo);
+ selecionarRutaSequenciaForaEsqCorrida();
+ esquemaTramoList.setData(lsParadaEsquema);
+
+ lsRutaEmbarqueDesembarque = rutaEmbarqueDesembarqueService.obtenerPorRuta(ruta);
+ if (esquemaCorrida.getEsquemacorridaId() == null) {
+ for (RutaEmbarqueDesembarque rutaEmbarqueDesembarque : lsRutaEmbarqueDesembarque) {
+ selectEsquemaCorridaEmbarqueDesembarque(rutaEmbarqueDesembarque);
+ }
+ }
+ BindingListModelList listModelParadaEmbarqueDesembarque = new BindingListModelList(
+ lsRutaEmbarqueDesembarque, true);
+ cmbEmbarqueDesembarque.setModel(listModelParadaEmbarqueDesembarque);
+
+ } else {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.RutaVazia"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.EXCLAMATION);
+ }
+ } catch (Exception ex) {
+ log.error("", ex);
+ }
+ }
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ private void verTempoEstanciaTramo(EsquemaTramo et, ParadaEsquema pe, Short sequenciaSize) {
+ if (et == null) {
+ return;
+ }
+
+ Map args = new HashMap();
+ args.put("esquemaTramo", et);
+ args.put("paradaEsquema", pe);
+ args.put("esquemaTramoList", esquemaTramoList);
+ args.put("sequenciaSize", sequenciaSize);
+
+ openWindow("/gui/esquema_operacional/tiempoEstanciaTramo.zul",
+ Labels.getLabel("editarCatalogoDeRutaController.lhTiempoEstancia"), args, MODAL);
+ }
+
+ public void onChange$cmbRuta(Event ev) {
+ selecionarRuta();
+ }
+
+ public void onClick$btnRemoverTramo(Event ev) {
+ try {
+ ParadaEsquema pe = new ParadaEsquema();
+ try {
+ pe = (ParadaEsquema) esquemaTramoList.getSelected();
+ } catch (Exception e) {
+ log.error("Erro ao aliminar ruta do esquemaTramo: " + e, e);
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.selectItem"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.EXCLAMATION);
+ }
+ if (pe != null) {
+ boolean podeExcluir = false;
+ if (lsParadaEsquema.size() > 2) {
+ for (int i = 0; i < lsParadaEsquema.size(); i++) {
+ if (lsParadaEsquema.get(i).getParada().equals(pe.getParada())) {
+ ParadaEsquema paradaEsquema = lsParadaEsquema.get(i);
+ lsParadaEsquema.remove(paradaEsquema);
+ log.debug("Esquema Tramo Removida: " + paradaEsquema.getNumsecuencia() + " - " + paradaEsquema.getParada().getCveparada());
+ esquemaTramoList.setData(lsParadaEsquema);
+ podeExcluir = true;
+ break;
+ }
+ }
+ }
+ if (podeExcluir) {
+ String ok = esquemaTramoCorrecto(lsParadaEsquema);
+ if (ok != null) {
+ Messagebox.show(ok,
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.EXCLAMATION);
+ return;
+ }
+ }
+ } else {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.selectItem"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.EXCLAMATION);
+ }
+ lsEsquemaTramo = generaEsquemaTramoCorrecto(lsParadaEsquema, esquemaCorrida);
+ selecionarRutaSequenciaForaEsqCorrida();
+
+ } catch (Exception e) {
+ log.error("Erro ao remover secuencia da ruta " + e.getMessage(), e);
+ }
+ }
+
+ /**
+ * Checo se el nuevo reajuste de secuencia quedo valido. O sea, checo se existe en tramo en la tabla ruta_combinacion
+ *
+ * @param lsParadaEsquema
+ * - La nueva lista de secuecia (ya con el cambio hecho)
+ * @return - True se esta correcto False se no esta correcto
+ */
+ private String esquemaTramoCorrecto(List lsParadaEsquema) {
+ boolean hayTramo = true;
+
+ Parada paradaOrigen = null;
+ Parada paradaDestino = null;
+
+ for (int i = 0; (i < lsParadaEsquema.size() - 1) && hayTramo; i++) {
+ paradaOrigen = lsParadaEsquema.get(i).getParada();
+ paradaDestino = lsParadaEsquema.get(i + 1).getParada();
+
+ Tramo t = rutaCombinacionService.busqueda((Ruta) cmbRuta.getSelectedItem().getValue(), paradaOrigen, paradaDestino);
+
+ hayTramo = (t == null) ? false : true;
+ }
+
+ return (hayTramo) ? null : "No existe el tramo: "
+ + paradaOrigen.getDescparada() + " - "
+ + paradaDestino.getDescparada();
+ }
+
+ /**
+ * Hago la combinacion correcta en esquemacorrida asi como esta en la lista de parada
+ *
+ * @param listParadaEsquema
+ * @param ec
+ */
+ private List generaEsquemaTramoCorrecto(
+ List listParadaEsquema, EsquemaCorrida ec) {
+ List result = new ArrayList();
+
+ for (int i = 0; (i < listParadaEsquema.size() - 1); i++) {
+ Parada paradaOrigen = listParadaEsquema.get(i).getParada();
+ Parada paradaDestino = listParadaEsquema.get(i + 1).getParada();
+
+ Tramo t = rutaCombinacionService.busqueda((Ruta) cmbRuta.getSelectedItem().getValue(), paradaOrigen, paradaDestino);
+
+ EsquemaTramo et = new EsquemaTramo();
+ et.setActivo(Boolean.TRUE);
+ et.setEsquemaCorrida(ec);
+ et.setFecmodif(Calendar.getInstance().getTime());
+ et.setNumsecuencia((short) (i + 1));
+ et.setTiempoEstancia(listParadaEsquema.get(i + 1).getTiempoEstancia());
+ et.setTramo(t);
+ et.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
+
+ result.add(et);
+ }
+
+ return result;
+ }
+
+ private List adicionarParadaEsquemaTramo(
+ List listParadaEsquema, Parada novaParada,
+ EsquemaCorrida ec, Ruta ruta, String plataforma, String tipoPassagem, List listParadaEsquemaComNovaParada) {
+ List result = new ArrayList();
+
+ lsRutaSecuencia = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta);
+
+
+
+
+ Short secuencia = 0;
+ boolean nuevoAgregado = false;
+ boolean noExisteTramoAsociado = listParadaEsquema.isEmpty();// es la
+ // primera
+ // vez
+ Integer indiceSecuencia = null;
+ for (int i = 0; i < lsRutaSecuencia.size(); i++) {
+ RutaSecuencia rutaSecuencia = lsRutaSecuencia.get(i);
+ if (rutaSecuencia.getTramo().getOrigem().equals(novaParada)) {
+ ParadaEsquema paradaEsquema = new ParadaEsquema();
+ paradaEsquema.setActivo(Boolean.TRUE);
+ secuencia++;
+ paradaEsquema.setNumsecuencia(secuencia);
+ paradaEsquema.setParada(novaParada);
+ paradaEsquema.setPlataforma(plataforma);
+ paradaEsquema.setTipoPassagem(tipoPassagem);
+ listParadaEsquemaComNovaParada.add(paradaEsquema);
+ nuevoAgregado = true;
+ indiceSecuencia = i;
+ } else {
+ if (!listParadaEsquema.isEmpty()) {
+ if (rutaSecuencia.getTramo().getOrigem().equals(listParadaEsquema.get(0).getParada())) {
+ secuencia++;
+ listParadaEsquema.get(0).setNumsecuencia(secuencia);
+ listParadaEsquemaComNovaParada.add(listParadaEsquema.get(0));
+ listParadaEsquema.remove(0);
+
+ }
+ }
+ }
+ }
+
+ if (noExisteTramoAsociado) {
+ if (indiceSecuencia != null) {
+ if ((lsRutaSecuencia.size() - 1) > indiceSecuencia) {
+ RutaSecuencia rutaSecuencia = lsRutaSecuencia.get(indiceSecuencia);
+ ParadaEsquema paradaEsquema = new ParadaEsquema();
+ paradaEsquema.setActivo(Boolean.TRUE);
+ secuencia++;
+ paradaEsquema.setNumsecuencia(secuencia);
+ paradaEsquema.setParada(rutaSecuencia.getTramo().getDestino());
+ paradaEsquema.setPlataforma(plataforma);
+ listParadaEsquemaComNovaParada.add(paradaEsquema);
+ }
+ }
+ }
+ if (!nuevoAgregado) {
+ ParadaEsquema paradaEsquema = new ParadaEsquema();
+ paradaEsquema.setActivo(Boolean.TRUE);
+ secuencia++;
+ paradaEsquema.setNumsecuencia(secuencia);
+ paradaEsquema.setParada(novaParada);
+ paradaEsquema.setPlataforma(plataforma);
+ paradaEsquema.setTipoPassagem(tipoPassagem);
+
+ listParadaEsquemaComNovaParada.add(paradaEsquema);
+ }
+ if (!listParadaEsquema.isEmpty()) {
+ secuencia++;
+ listParadaEsquema.get(0).setNumsecuencia(secuencia);
+ listParadaEsquemaComNovaParada.add(listParadaEsquema.get(0));
+ listParadaEsquema.remove(0);
+ }
+
+ for (int i = 0; (i < listParadaEsquemaComNovaParada.size() - 1); i++) {
+ Parada paradaOrigen = listParadaEsquemaComNovaParada.get(i).getParada();
+ Parada paradaDestino = listParadaEsquemaComNovaParada.get(i + 1).getParada();
+
+ Tramo t = rutaCombinacionService.busqueda((Ruta) cmbRuta.getSelectedItem().getValue(), paradaOrigen, paradaDestino);
+
+ if(t==null) {
+ List lsr = rutaSecuenciaService.buscarSecuenciaOrdenado((Ruta) cmbRuta.getSelectedItem().getValue());
+ for(RutaSecuencia s : lsr) {
+ if(s.tieneOrigen(paradaOrigen.getParadaId()) && s.tieneDestino(paradaDestino.getParadaId())) {
+ t = s.getTramo();
+ break;
+ }
+ }
+ }
+
+ EsquemaTramo et = new EsquemaTramo();
+ et.setActivo(Boolean.TRUE);
+ et.setEsquemaCorrida(ec);
+ et.setFecmodif(Calendar.getInstance().getTime());
+ et.setNumsecuencia((short) (i + 1));
+ et.setTiempoEstancia(listParadaEsquemaComNovaParada.get(i + 1).getTiempoEstancia());
+ et.setTramo(t);
+ et.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
+ et.setPlataforma(listParadaEsquemaComNovaParada.get(i).getPlataforma());
+ et.setTipoPassagem(listParadaEsquemaComNovaParada.get(i).getTipoPassagem());
+
+ result.add(et);
+ }
+
+ return result;
+ }
+
+ public void onChange$cmbClase(InputEvent ev) {
+
+ if (ev.isChangingBySelectBack()) {
+ return;
+ }
+
+ llenarRutasPorClase();
+ llenarMarcaPorClaseServicio();
+ }
+
+ private void llenarRutasPorClase() {
+ if (esquemaCorrida.getClaseServicio() == null) {
+ return;
+ }
+ cmbMarca.setConstraint("");
+ if (cmbMarca.getSelectedItem() == null) {
+ lsRuta = rutaService.buscarPorClaseServicio(esquemaCorrida.getClaseServicio());
+ } else {
+ lsRuta = rutaService.buscarPorClaseServicioEmpresa(esquemaCorrida.getClaseServicio(), ((Marca) cmbMarca.getSelectedItem().getValue()).getEmpresa());
+ }
+ cmbMarca.setConstraint("no empty");
+
+ // caso o usuario tenha mudado a classeServicio da ruta
+ if (esquemaCorrida.getEsquemacorridaId() != null && esquemaCorrida.getRuta() != null && !lsRuta.contains(esquemaCorrida.getRuta())) {
+ lsRuta.add(esquemaCorrida.getRuta());
+ }
+
+ BindingListModelList l = new BindingListModelList(lsRuta, true);
+ cmbRuta.setModel(l);
+ }
+
+ private void llenarMarcaPorClaseServicio() {
+ if (esquemaCorrida.getClaseServicio() == null) {
+ return;
+ }
+ lsMarca = marcaClaseServicioService.buscarPorEmpresasPermitidas(esquemaCorrida.getClaseServicio(), UsuarioLogado.getUsuarioLogado());
+ BindingListModelList l = new BindingListModelList(lsMarca, true);
+ cmbMarca.setModel(l);
+ }
+
+ public void onChange$cmbMarca(InputEvent ev) {
+
+ if (ev.isChangingBySelectBack()) {
+ return;
+ }
+ llenarRutasPorClaseMarca();
+ }
+
+ public void llenarRutasPorClaseMarca() {
+ if (esquemaCorrida.getClaseServicio() == null
+ || esquemaCorrida.getMarca() == null) {
+ return;
+ }
+ lsRuta = rutaService.buscarPorClaseServicioEmpresa(esquemaCorrida.getClaseServicio(), esquemaCorrida.getMarca().getEmpresa());
+ BindingListModelList l = new BindingListModelList(lsRuta, true);
+ cmbRuta.setModel(l);
+ lsEmpresa.clear();
+ for (Empresa e : UsuarioLogado.getUsuarioLogado().getEmpresa()) {
+ if (e.getEmpresaId().equals(((Marca) cmbMarca.getSelectedItem().getValue()).getEmpresa().getEmpresaId())) {
+ lsEmpresa.add(e);
+
+ break;
+ }
+ }
+ BindingListModelList lb = new BindingListModelList(lsEmpresa, true);
+ cmbEmpresaCorrida.setModel(lb);
+
+ }
+
+ public void onClick$porBloq(Event ev) {
+ horasalida.setVisible(false);
+ horasalidaLabel.setVisible(false);
+ minutos.setVisible(true);
+ minutosLabel1.setVisible(true);
+ minutosLabel2.setVisible(true);
+ de.setVisible(true);
+ horaLabel1.setVisible(true);
+ horaLabel2.setVisible(true);
+ hasta.setVisible(true);
+ horaLabel21.setVisible(true);
+ horaLabel22.setVisible(true);
+ }
+
+ public void onClick$porHora(Event ev) {
+ horasalida.setVisible(true);
+ horasalidaLabel.setVisible(true);
+ minutos.setVisible(false);
+ minutosLabel1.setVisible(false);
+ minutosLabel2.setVisible(false);
+ de.setVisible(false);
+ horaLabel1.setVisible(false);
+ horaLabel2.setVisible(false);
+ hasta.setVisible(false);
+ horaLabel21.setVisible(false);
+ horaLabel22.setVisible(false);
+ }
+
+ public void onClick$btnAsientos(Event ev) throws InterruptedException {
+ Map args = new HashMap();
+ args.put("esquemaCorrida", esquemaCorrida);
+
+ if (esquemaCorrida.getEsquemacorridaId() == null) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.gravarServico"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.EXCLAMATION);
+
+ return;
+ }
+
+ openWindow("/gui/esquema_operacional/editarCorridaAsiento.zul",
+ Labels.getLabel("editarConfiguracionCorridaAsientoController.window.title"),
+ args, MODAL);
+
+ }
+
+ public void onClick$chkDoblePiso(Event ev) {
+ if (chkDoblePiso.isChecked()) {
+ esquemaCorrida.setPisoExtra(Boolean.TRUE);
+ lbNumCorridaPisoExtra.setVisible(Boolean.TRUE);
+ txtNumCorridaPisoExtra.setVisible(Boolean.TRUE);
+
+ lbNumCorridaPisoExtra2.setVisible(Boolean.TRUE);
+ txtNumCorridaPisoExtra2.setVisible(Boolean.TRUE);
+
+ } else {
+ esquemaCorrida.setPisoExtra(Boolean.FALSE);
+ lbNumCorridaPisoExtra.setVisible(Boolean.FALSE);
+ txtNumCorridaPisoExtra.setVisible(Boolean.FALSE);
+
+ lbNumCorridaPisoExtra2.setVisible(Boolean.FALSE);
+ txtNumCorridaPisoExtra2.setVisible(Boolean.FALSE);
+ }
+ }
+
+ public ClaseServicioService getClaseService() {
+ return claseService;
+ }
+
+ public void setClaseService(ClaseServicioService claseService) {
+ this.claseService = claseService;
+ }
+
+ public EsquemaCorridaService getEsquemaCorridaService() {
+ return esquemaCorridaService;
+ }
+
+ public void setEsquemaCorridaService(
+ EsquemaCorridaService esquemaCorridaService) {
+ this.esquemaCorridaService = esquemaCorridaService;
+ }
+
+ public EsquemaCorrida getEsquemaCorrida() {
+ return esquemaCorrida;
+ }
+
+ public void setEsquemaCorrida(EsquemaCorrida esquemaCorrida) {
+ this.esquemaCorrida = esquemaCorrida;
+ }
+
+ public MyListbox getEsquemaCorridaList() {
+ return esquemaCorridaList;
+ }
+
+ public void setEsquemaCorridaList(MyListbox esquemaCorridaList) {
+ this.esquemaCorridaList = esquemaCorridaList;
+ }
+
+ public List getLsClase() {
+ return lsClase;
+ }
+
+ public void setLsClase(List lsClase) {
+ this.lsClase = lsClase;
+ }
+
+ public List getLsMarca() {
+ return lsMarca;
+ }
+
+ public void setLsMarca(List lsMarca) {
+ this.lsMarca = lsMarca;
+ }
+
+ public List getLsRuta() {
+ return lsRuta;
+ }
+
+ public void setLsRuta(List lsRuta) {
+ this.lsRuta = lsRuta;
+ }
+
+ public MarcaService getMarcaService() {
+ return marcaService;
+ }
+
+ public void setMarcaService(MarcaService marcaService) {
+ this.marcaService = marcaService;
+ }
+
+ public RutaService getRutaService() {
+ return rutaService;
+ }
+
+ public void setRutaService(RutaService rutaService) {
+ this.rutaService = rutaService;
+ }
+
+ public Combobox getCmbClase() {
+ return cmbClase;
+ }
+
+ public void setCmbClase(Combobox cmbClase) {
+ this.cmbClase = cmbClase;
+ }
+
+ 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 Datebox getFecfinvigencia() {
+ return fecfinvigencia;
+ }
+
+ public void setFecfinvigencia(Datebox fecfinvigencia) {
+ this.fecfinvigencia = fecfinvigencia;
+ }
+
+ public Datebox getFecniciovigencia() {
+ return fecniciovigencia;
+ }
+
+ public void setFecniciovigencia(Datebox fecniciovigencia) {
+ this.fecniciovigencia = fecniciovigencia;
+ }
+
+ public Timebox getHora() {
+ return de;
+ }
+
+ public void setHora(Timebox hora) {
+ this.de = hora;
+ }
+
+ public Timebox getHora2() {
+ return hasta;
+ }
+
+ public void setHora2(Timebox hora2) {
+ this.hasta = hora2;
+ }
+
+ public Timebox getHorasalida() {
+ return horasalida;
+ }
+
+ public void setHorasalida(Timebox horasalida) {
+ this.horasalida = horasalida;
+ }
+
+ public Spinner getMinutos() {
+ return minutos;
+ }
+
+ public void setMinutos(Spinner minutos) {
+ this.minutos = minutos;
+ }
+
+ public Combobox getCmbEmpresaCorrida() {
+ return cmbEmpresaCorrida;
+ }
+
+ public void setCmbEmpresaCorrida(Combobox cmbEmpresaCorrida) {
+ this.cmbEmpresaCorrida = cmbEmpresaCorrida;
+ }
+
+ public Combobox getCmbEmpresaIngresso() {
+ return cmbEmpresaIngresso;
+ }
+
+ public void setCmbEmpresaIngresso(Combobox cmbEmpresaIngresso) {
+ this.cmbEmpresaIngresso = cmbEmpresaIngresso;
+ }
+
+ public Combobox getCmbRolOperativo() {
+ return cmbRolOperativo;
+ }
+
+ public void setCmbRolOperativo(Combobox cmbRolOperativo) {
+ this.cmbRolOperativo = cmbRolOperativo;
+ }
+
+ public Combobox getCmbStatus() {
+ return cmbStatus;
+ }
+
+ public void setCmbStatus(Combobox cmbStatus) {
+ this.cmbStatus = cmbStatus;
+ }
+
+ public EmpresaService getEmpresaService() {
+ return empresaService;
+ }
+
+ public void setEmpresaService(EmpresaService empresaService) {
+ this.empresaService = empresaService;
+ }
+
+ public List getLsEmpresa() {
+ return lsEmpresa;
+ }
+
+ public void setLsEmpresa(List lsEmpresa) {
+ this.lsEmpresa = lsEmpresa;
+ }
+
+ public List getLsRutaSecuencia() {
+ return lsRutaSecuencia;
+ }
+
+ public void setLsRutaSecuencia(List lsRutaSecuencia) {
+ this.lsRutaSecuencia = lsRutaSecuencia;
+ }
+
+ public MyListbox getRutaSecuenciaList() {
+ return esquemaTramoList;
+ }
+
+ public void setRutaSecuenciaList(MyListbox rutaSecuenciaList) {
+ this.esquemaTramoList = rutaSecuenciaList;
+ }
+
+ public List getLsRolOperativo() {
+ return lsRolOperativo;
+ }
+
+ public void setLsRolOperativo(List lsRolOperativo) {
+ this.lsRolOperativo = lsRolOperativo;
+ }
+
+ public RolOperativoService getRolOperativoService() {
+ return rolOperativoService;
+ }
+
+ public void setRolOperativoService(RolOperativoService rolOperativoService) {
+ this.rolOperativoService = rolOperativoService;
+ }
+
+ public Radio getAutorizada() {
+ return autorizada;
+ }
+
+ public void setAutorizada(Radio autorizada) {
+ this.autorizada = autorizada;
+ }
+
+ public Radio getCancelada() {
+ return cancelada;
+ }
+
+ public void setCancelada(Radio cancelada) {
+ this.cancelada = cancelada;
+ }
+
+ public Radio getLatente() {
+ return latente;
+ }
+
+ public void setLatente(Radio latente) {
+ this.latente = latente;
+ }
+
+ public Combobox getCmbVia() {
+ return cmbVia;
+ }
+
+ public void setCmbVia(Combobox cmbVia) {
+ this.cmbVia = cmbVia;
+ }
+
+ public Button getBtnAsientos() {
+ return btnAsientos;
+ }
+
+ public void setBtnAsientos(Button btnAsientos) {
+ this.btnAsientos = btnAsientos;
+ }
+
+ public Radio getFletes() {
+ return fletes;
+ }
+
+ public void setFletes(Radio fletes) {
+ this.fletes = fletes;
+ }
+
+ public Radio getTransportePasajeros() {
+ return transportePasajeros;
+ }
+
+ public void setTransportePasajeros(Radio transportePasajeros) {
+ this.transportePasajeros = transportePasajeros;
+ }
+
+ public Radio getViajesEspeciales() {
+ return viajesEspeciales;
+ }
+
+ public void setViajesEspeciales(Radio viajesEspeciales) {
+ this.viajesEspeciales = viajesEspeciales;
+ }
+
+ public Combobox getCmbTramo() {
+ return cmbTramo;
+ }
+
+ public void setCmbTramo(Combobox cmbTramo) {
+ this.cmbTramo = cmbTramo;
+ }
+
+ public Timebox getDe() {
+ return de;
+ }
+
+ public void setDe(Timebox de) {
+ this.de = de;
+ }
+
+ public MyListbox getEsquemaTramoList() {
+ return esquemaTramoList;
+ }
+
+ public void setEsquemaTramoList(MyListbox esquemaTramoList) {
+ this.esquemaTramoList = esquemaTramoList;
+ }
+
+ public EsquemaTramoService getEsquemaTramoService() {
+ return esquemaTramoService;
+ }
+
+ public void setEsquemaTramoService(EsquemaTramoService esquemaTramoService) {
+ this.esquemaTramoService = esquemaTramoService;
+ }
+
+ public Timebox getHasta() {
+ return hasta;
+ }
+
+ public void setHasta(Timebox hasta) {
+ this.hasta = hasta;
+ }
+
+ public List getLsEsquemaTramo() {
+ return lsEsquemaTramo;
+ }
+
+ public void setLsEsquemaTramo(List lsEsquemaTramo) {
+ this.lsEsquemaTramo = lsEsquemaTramo;
+ }
+
+ public List getLsTramos() {
+ return lsTramos;
+ }
+
+ public void setLsTramos(List lsTramos) {
+ this.lsTramos = lsTramos;
+ }
+
+ public List getLsDivision() {
+ return lsDivision;
+ }
+
+ public void setLsDivision(List lsDivision) {
+ this.lsDivision = lsDivision;
+ }
+
+ public Combobox getCmbDivision() {
+ return cmbDivision;
+ }
+
+ public void setCmbDivision(Combobox cmbDivision) {
+ this.cmbDivision = cmbDivision;
+ }
+
+ public Label getLbDivision() {
+ return lbDivision;
+ }
+
+ public void setLbDivision(Label lbDivision) {
+ this.lbDivision = lbDivision;
+ }
+
+ public List getLsTramosRutaEsquemaCorrida() {
+ return lsTramosRutaEsquemaCorrida;
+ }
+
+ public void setLsTramosRutaEsquemaCorrida(
+ List lsTramosRutaEsquemaCorrida) {
+ this.lsTramosRutaEsquemaCorrida = lsTramosRutaEsquemaCorrida;
+ }
+
+ public Radio getPorBloq() {
+ return porBloq;
+ }
+
+ public void setPorBloq(Radio porBloq) {
+ this.porBloq = porBloq;
+ }
+
+ public Button getBtnApagar() {
+ return btnApagar;
+ }
+
+ public void setBtnApagar(Button btnApagar) {
+ this.btnApagar = btnApagar;
+ }
+
+ public Checkbox getDiaSimDiaNao() {
+ return diaSimDiaNao;
+ }
+
+ public void setDiaSimDiaNao(Checkbox diaSimDiaNao) {
+ this.diaSimDiaNao = diaSimDiaNao;
+ }
+
+ public void onClick$btnApagarRebote(Event e) throws InterruptedException {
+ esquemaCorrida.setEsquemaCorridaRebote(null);
+ txtIdCorridaRebote.setValue("");
+ }
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public void onClick$btnAbrirEsquemaCorrida(Event e)
+ throws InterruptedException {
+ if (esquemaCorrida.getEsquemaCorridaRebote() == null) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.btnAbrirEsquemaCorrida.error"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.EXCLAMATION);
+
+ return;
+
+ }
+
+ closeWindow();
+
+ Map args = new HashMap();
+
+ args.put("esquemaCorrida", esquemaCorrida.getEsquemaCorridaRebote());
+ args.put("esquemaCorridaList", esquemaCorridaList);
+
+ openWindow(
+ "/gui/esquema_operacional/editarCorrida.zul",
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ args, MODAL);
+ }
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ public void onClick$btnBuscarEsquemaCorrida(Event e) {
+ Map argss = new HashMap();
+
+ argss.put("esquemaCorrida", esquemaCorrida);
+ argss.put("txtIdCorridaRebote", txtIdCorridaRebote);
+
+ openWindow(
+ "/gui/esquema_operacional/busquedaCorridaRebote.zul",
+ Labels.getLabel("busquedaConfiguracionCorridaController.window.title"),
+ argss, MODAL);
+ }
+
+ public void onChange$horasalida(Event e) {
+ ((RenderConfiguracionCorridaTramo) esquemaTramoList.getItemRenderer()).alterarDataPartida(horasalida.getValue());
+ esquemaCorrida.setEsquemaTramoList(lsEsquemaTramo);
+ carregarParadaSecuencia(lsEsquemaTramo);
+ selecionarRutaSequenciaForaEsqCorrida();
+ }
+
+
+
+ public void onClick$diaSimDiaNao(Event e) throws InterruptedException {
+ habilitaDiasDaSemana(diaSimDiaNao.isChecked());
+ }
+
+ public void onClick$lun(Event e) throws InterruptedException {
+ habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked());
+ }
+
+ public void onClick$mar(Event e) throws InterruptedException {
+ habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked());
+ }
+
+ public void onClick$mie(Event e) throws InterruptedException {
+ habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked());
+ }
+
+ public void onClick$jue(Event e) throws InterruptedException {
+ habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked());
+ }
+
+ public void onClick$vie(Event e) throws InterruptedException {
+ habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked());
+ }
+
+ public void onClick$sab(Event e) throws InterruptedException {
+ habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked());
+ }
+
+ public void onClick$dom(Event e) throws InterruptedException {
+ habilitarDiaSimDiaNao(lun.isChecked(), mar.isChecked(), mie.isChecked(), jue.isChecked(), vie.isChecked(), sab.isChecked(), dom.isChecked());
+ }
+
+ private Boolean validarCorridaExtraAutomatica() throws InterruptedException {
+ if(txtNumCorridaExtraAuto.getValue() == null) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.necessarioInformarCorridaExtra"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.OK, Messagebox.ERROR);
+ return false;
+ }
+
+ EsquemaCorrida esquemaCorrida = esquemaCorridaService.obtenerByEsquemaCorrida(txtNumCorridaExtraAuto.getValue());
+
+ if(esquemaCorrida != null) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.corridaJaExiste"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.OK, Messagebox.ERROR);
+ return false;
+ }
+
+ return true;
+ }
+
+ private Boolean validarPisoExtra() throws InterruptedException {
+ Boolean returnValue = true;
+ EsquemaCorrida esquemaCorrida = esquemaCorridaService.obtenerByEsquemaCorrida(txtNumCorridaPisoExtra.getValue());
+
+ EsquemaCorrida esquemaCorrida2 = null;
+ Boolean isPisoExtra2 = txtNumCorridaPisoExtra2.getValue() != null;
+
+ if(txtNumCorridaPisoExtra2.getValue() != null) {
+ esquemaCorrida2 = esquemaCorridaService.obtenerByEsquemaCorrida(txtNumCorridaPisoExtra2.getValue());
+ }
+
+
+ if (esquemaCorrida == null || (isPisoExtra2 && esquemaCorrida2 == null)) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraExistente"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.ERROR);
+ returnValue = false;
+ } else if (this.esquemaCorrida.equals(esquemaCorrida) || (isPisoExtra2 && this.esquemaCorrida.equals(esquemaCorrida2))) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraIgualServico"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.ERROR);
+ returnValue = false;
+ } else if ((esquemaCorrida.getPisoExtra() != null && esquemaCorrida.getPisoExtra()) || (isPisoExtra2 && esquemaCorrida2.getPisoExtra() != null && esquemaCorrida2.getPisoExtra())) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraJaEPisoExtra"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.ERROR);
+ returnValue = false;
+ } else if (!esquemaCorrida.getMarca().equals(this.esquemaCorrida.getMarca()) || (isPisoExtra2 && !esquemaCorrida2.getMarca().equals(this.esquemaCorrida.getMarca()))) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraEmpresaDiferente"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.ERROR);
+ returnValue = false;
+ } else if (!esquemaCorrida.getRuta().getOrgaoConcedente().equals(this.esquemaCorrida.getRuta().getOrgaoConcedente())
+ || (isPisoExtra2 && !esquemaCorrida2.getRuta().getOrgaoConcedente().equals(this.esquemaCorrida.getRuta().getOrgaoConcedente()))) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraOrgaoDiferente"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.ERROR);
+ returnValue = false;
+ } else if (validarEsquemaTramo(esquemaCorrida) || (isPisoExtra2 && validarEsquemaTramo(esquemaCorrida2))) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.servicoPisoExtraLocalidadeDiferente"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.ERROR);
+ returnValue = false;
+ } else if(esquemaCorrida.equals(esquemaCorrida2)) {
+ Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.pisoExtraIguais.label"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK, Messagebox.ERROR);
+ returnValue = false;
+ }
+
+ if (!returnValue) {
+ txtNumCorridaPisoExtra.setDisabled(false);
+ txtNumCorridaPisoExtra2.setDisabled(false);
+ }
+
+ return returnValue;
+ }
+
+ public void onChange$txtNumCorridaPisoExtra() throws InterruptedException {
+ validarPisoExtra();
+ }
+
+ public void onChange$txtNumCorridaPisoExtra2() throws InterruptedException {
+ validarPisoExtra();
+ }
+
+ private boolean validarEsquemaTramo(EsquemaCorrida esquemaCorrida) {
+
+ if (this.esquemaCorrida.getEsquemaTramoList().size() != esquemaCorrida.getEsquemaTramoList().size()) {
+ return true;
+ }
+ for (int i = 0; i < this.esquemaCorrida.getEsquemaTramoList().size(); i++) {
+ if( this.esquemaCorrida.getEsquemacorridaId() != null ){
+ if (!tramoIsEqual(this.esquemaCorrida.getEsquemaTramoList().get(i).getTramo(), esquemaCorrida.getEsquemaTramoList().get(i).getTramo())) {
+ return true;
+ }
+ }else{
+ List ls = ordenaLista( esquemaCorrida.getEsquemaTramoList());
+ if (!tramoIsEqual(this.esquemaCorrida.getEsquemaTramoList().get(i).getTramo(), ls.get(i).getTramo())) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private List ordenaLista(List ls){
+ List myls = new ArrayList();
+ for(int y = 1 ; y <= ls.size(); y++ ){
+ for(int x = 1 ; x <= ls.size(); x++ ){
+ if(ls.get(x-1).getNumsecuencia() == y ){
+ myls.add(ls.get(x-1));
+ break;
+ }
+ }
+ }
+ return myls;
+ }
+
+ public boolean naoValidaEsquemaCorridaVia() {
+ Constante contante = constanteService.buscarPorNomeConstante("NAO_VALIDA_ESQUEMA_CORRIDA_VIA");
+ String valorConstante = contante == null ? null : contante.getValorconstante();
+
+ if (StringUtils.isBlank(valorConstante)) {
+ return false;
+ } else {
+ if (BooleanUtils.toBoolean(valorConstante)) {
+ return true;
+ }
+ return false;
+ }
+ }
+
+ private boolean tramoIsEqual(Tramo este, Tramo outro) {
+ if(este == null && outro == null){
+ return true;
+ }
+ if(este == null && outro != null){
+ return false;
+ }
+ if(este != null && outro == null){
+ return false;
+ }
+ if (este.getDestino().equals(outro.getDestino())
+ && este.getOrigem().equals(outro.getOrigem())) {
+ if (naoValidaEsquemaCorridaVia()) {
+ return true;
+ } else if (este.getDesctramo().equals(outro.getDesctramo()) && este.getKmReal().equals(outro.getKmReal())
+ && este.getVia().equals(outro.getVia())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private void habilitaDiasDaSemana(Boolean isChecked) {
+ if (isChecked) {
+ lun.setChecked(!isChecked);
+ mar.setChecked(!isChecked);
+ mie.setChecked(!isChecked);
+ jue.setChecked(!isChecked);
+ vie.setChecked(!isChecked);
+ sab.setChecked(!isChecked);
+ dom.setChecked(!isChecked);
+
+ lun.setDisabled(isChecked);
+ mar.setDisabled(isChecked);
+ mie.setDisabled(isChecked);
+ jue.setDisabled(isChecked);
+ vie.setDisabled(isChecked);
+ sab.setDisabled(isChecked);
+ dom.setDisabled(isChecked);
+ } else {
+ lun.setChecked(Boolean.FALSE);
+ mar.setChecked(Boolean.FALSE);
+ mie.setChecked(Boolean.FALSE);
+ jue.setChecked(Boolean.FALSE);
+ vie.setChecked(Boolean.FALSE);
+ sab.setChecked(Boolean.FALSE);
+ dom.setChecked(Boolean.FALSE);
+
+ lun.setDisabled(Boolean.FALSE);
+ mar.setDisabled(Boolean.FALSE);
+ mie.setDisabled(Boolean.FALSE);
+ jue.setDisabled(Boolean.FALSE);
+ vie.setDisabled(Boolean.FALSE);
+ sab.setDisabled(Boolean.FALSE);
+ dom.setDisabled(Boolean.FALSE);
+ }
+ }
+
+ private void habilitarDiaSimDiaNao(Boolean isLun, Boolean isMar, Boolean isMie, Boolean isJue, Boolean isVie, Boolean isSab, Boolean isDom) {
+ if (isLun || isMar || isMie || isJue || isVie || isSab || isDom) {
+ diaSimDiaNao.setChecked(Boolean.FALSE);
+ diaSimDiaNao.setDisabled(Boolean.TRUE);
+ } else {
+ diaSimDiaNao.setChecked(Boolean.FALSE);
+ diaSimDiaNao.setDisabled(Boolean.FALSE);
+ }
+ }
+
+ public List getLsEmpresaIngresso() {
+ return lsEmpresaIngresso;
+ }
+
+ public void setLsEmpresaIngresso(List lsEmpresaIngresso) {
+ this.lsEmpresaIngresso = lsEmpresaIngresso;
+ }
+
+ public List getLsAutoBus() {
+ return lsAutoBus;
+ }
+
+ public void setLsAutoBus(List lsAutoBus) {
+ this.lsAutoBus = lsAutoBus;
+ }
+
+ public void onClick$btnAdicionarEmbarqueDesembarque(Event ev) {
+
+ Comboitem selectedItem = cmbEmbarqueDesembarque.getSelectedItem();
+ if (selectedItem == null) {
+ return;
+ }
+
+ RutaEmbarqueDesembarque rutaEmbarqueDesembarque = (RutaEmbarqueDesembarque) selectedItem.getValue();
+
+ for (EsquemaCorridaEmbarqueDesembarque esquemaCorridaEmbarqueDesembarque : lsEsquemaCorridaEmbarqueDesembarqueSelected) {
+ if (esquemaCorridaEmbarqueDesembarque.getParada().equals(rutaEmbarqueDesembarque)) {
+ return;
+ }
+ }
+
+ selectEsquemaCorridaEmbarqueDesembarque(rutaEmbarqueDesembarque);
+
+ }
+
+ private void selectEsquemaCorridaEmbarqueDesembarque(RutaEmbarqueDesembarque rutaEmbarqueDesembarque) {
+ EsquemaCorridaEmbarqueDesembarque esquemaCorridaEmbarqueDesembarque = new EsquemaCorridaEmbarqueDesembarque();
+ esquemaCorridaEmbarqueDesembarque.setParada(rutaEmbarqueDesembarque.getParada());
+ esquemaCorridaEmbarqueDesembarque.setActivo(true);
+ esquemaCorridaEmbarqueDesembarque.setEsquemaCorrida(esquemaCorrida);
+ esquemaCorridaEmbarqueDesembarque.setEmbarque(BooleanUtils.isTrue(rutaEmbarqueDesembarque.getEmbarque())); // null safe
+ esquemaCorridaEmbarqueDesembarque.setDesembarque(BooleanUtils.isTrue(rutaEmbarqueDesembarque.getDesembarque())); // null safe
+ esquemaCorridaEmbarqueDesembarque.setLocalDesembarqueEmbarque(rutaEmbarqueDesembarque.getLocalDesembarqueEmbarque());
+ esquemaCorridaEmbarqueDesembarque.setIsVisualizarNaAPI(cbVisualizaNaAPI.isChecked());
+ lsEsquemaCorridaEmbarqueDesembarqueSelected.add(esquemaCorridaEmbarqueDesembarque);
+
+ esquemaCorrida.setLsEsquemaCorridaEmbarqueDesembarque(lsEsquemaCorridaEmbarqueDesembarqueSelected);
+ esquemaCorridaEmbarqueDesembarqueListbox.setData(lsEsquemaCorridaEmbarqueDesembarqueSelected);
+ }
+
+ public void onClick$btnRemoverEmbarqueDesembarque(Event ev) throws InterruptedException {
+
+ EsquemaCorridaEmbarqueDesembarque esquemaCorridaEmbarqueDesembarque = (EsquemaCorridaEmbarqueDesembarque) esquemaCorridaEmbarqueDesembarqueListbox.getSelected();
+
+ if (esquemaCorridaEmbarqueDesembarque != null) {
+ lsEsquemaCorridaEmbarqueDesembarqueSelected.remove(esquemaCorridaEmbarqueDesembarque);
+ lsEsquemaCorridaEmbarqueDesembarqueBorrar.add(esquemaCorridaEmbarqueDesembarque);
+
+ esquemaCorrida.setLsEsquemaCorridaEmbarqueDesembarque(lsEsquemaCorridaEmbarqueDesembarqueSelected);
+ esquemaCorridaEmbarqueDesembarqueListbox.setData(lsEsquemaCorridaEmbarqueDesembarqueSelected);
+ }
+
+ }
+
+ public List getLsRutaEmbarqueDesembarque() {
+ return lsRutaEmbarqueDesembarque;
+ }
+
+ public void setLsRutaEmbarqueDesembarque(List lsRutaEmbarqueDesembarque) {
+ this.lsRutaEmbarqueDesembarque = lsRutaEmbarqueDesembarque;
+ }
+
+ public Boolean getEmbarqueDesembarqueDisabled() {
+ return embarqueDesembarqueDisabled;
+ }
+
+ public Boolean getEmbarque() {
+ return embarque;
+ }
+
+ public void setEmbarque(Boolean embarque) {
+ this.embarque = embarque;
+ }
+
+ public Boolean getDesembarque() {
+ return desembarque;
+ }
+
+ public void setDesembarque(Boolean desembarque) {
+ this.desembarque = desembarque;
+ }
+
+ public List getLsEmbarqueDesembarque() {
+ return lsEmbarqueDesembarque;
+ }
+
+ public void setLsEmbarqueDesembarque(List lsEmbarqueDesembarque) {
+ this.lsEmbarqueDesembarque = lsEmbarqueDesembarque;
+ }
+
+ public void onSelect$cmbEmbarqueDesembarque(Event ev) {
+ Comboitem selectedItem = cmbEmbarqueDesembarque.getSelectedItem();
+ if (selectedItem == null) {
+ return;
+ }
+
+ preencherLocalEmbarqueDesembarque();
+
+ RutaEmbarqueDesembarque rutaEmbarqueDesembarque = (RutaEmbarqueDesembarque) selectedItem.getValue();
+ Comboitem ci = new Comboitem(rutaEmbarqueDesembarque.getLocalDesembarqueEmbarque().toString());
+ ci.setAttribute("value", rutaEmbarqueDesembarque.getLocalDesembarqueEmbarque());
+ ci.setValue(rutaEmbarqueDesembarque.getLocalDesembarqueEmbarque());
+ ci.setParent(cmbLocalEmbarqueDesembarque);
+ cmbLocalEmbarqueDesembarque.setSelectedItem(ci);
+
+ cbEmbarque.setChecked(rutaEmbarqueDesembarque.getEmbarque());
+ cbDesembarque.setChecked(rutaEmbarqueDesembarque.getDesembarque());
+ }
+
+ private void preencherLocalEmbarqueDesembarque(){
+ for (RutaEmbarqueDesembarque rutaEmbarqueDesembarque : lsRutaEmbarqueDesembarque) {
+ lsEmbarqueDesembarque.add(rutaEmbarqueDesembarque.getLocalDesembarqueEmbarque());
+ }
+ }
+
+ public Combobox getCmbRolOperativoServicoExtra() {
+ return cmbRolOperativoServicoExtra;
+ }
+
+ public void setCmbRolOperativoServicoExtra(Combobox cmbRolOperativoServicoExtra) {
+ this.cmbRolOperativoServicoExtra = cmbRolOperativoServicoExtra;
+ }
+
+ public Boolean getIsVisualizarNaAPI() {
+ return isVisualizarNaAPI;
+ }
+
+ public void setIsVisualizarNaAPI(Boolean isVisualizarNaAPI) {
+ this.isVisualizarNaAPI = isVisualizarNaAPI;
+ }
+
+ @SuppressWarnings("unchecked")
+ public void onClick$btnAdicionarTramoInformacaoCorrida(Event ev) {
+
+ try {
+ cmbParadaOrigem.getValue();
+ cmbParadaDestino.getValue();
+ txtMensagemTrecho.getValue();
+
+ Parada origem = (Parada) cmbParadaOrigem.getSelectedItem().getValue();
+ Parada destino = (Parada) cmbParadaDestino.getSelectedItem().getValue();
+
+ boolean existe = false;
+ for (EsquemaCorridaInfo esquemaCorridaInfo : (List)lstTrechosInformacaoCorridaListbox.getListData()) {
+ if(esquemaCorridaInfo.getOrigem().getDescparada().equals(origem.getDescparada()) && esquemaCorridaInfo.getDestino().getDescparada().equals(destino.getDescparada())) {
+ existe = true;
+ }
+ }
+ if(!existe) {
+ EsquemaCorridaInfo esquemaCorridaInfo = new EsquemaCorridaInfo();
+ esquemaCorridaInfo.setOrigem(origem);
+ esquemaCorridaInfo.setDestino(destino);
+ esquemaCorridaInfo.setActivo(true);
+ esquemaCorridaInfo.setInfoCorrida(txtMensagemTrecho.getValue());
+ esquemaCorridaInfo.setEsquemaCorrida(esquemaCorrida);
+ esquemaCorridaInfo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
+ esquemaCorridaInfo.setFecmodif(Calendar.getInstance().getTime());
+ esquemaCorridaInfo.setActivo(Boolean.TRUE);
+ lsEsquemaCorridaInfoSelected.add(esquemaCorridaInfo);
+ esquemaCorrida.setLsEsquemaCorridaInfo(lsEsquemaCorridaInfoSelected);
+ lstTrechosInformacaoCorridaListbox.setData(lsEsquemaCorridaInfoSelected);
+
+ }else {
+ Messagebox.show(Labels.getLabel("MSG.Registro.Existe"),
+ Labels.getLabel("editarConfiguracionCorridaController.window.title"),
+ Messagebox.OK,
+ Messagebox.EXCLAMATION);
+ }
+
+
+ } catch (Exception e) {
+ log.error("ESQ CORRIDA INFO TRMO - Erro ao adicionar tramo: " + e, e);
+ e.printStackTrace();
+ onClick$btnAdicionarTramo(null);
+ }
+ }
+
+ public void onClick$btnRemoverEsquemaCorridaInfoTramo(Event ev) throws InterruptedException {
+
+ EsquemaCorridaInfo esquemaCorridaInfo = (EsquemaCorridaInfo) lstTrechosInformacaoCorridaListbox.getSelected();
+
+ if (esquemaCorridaInfo != null) {
+ lsEsquemaCorridaInfoSelected.remove(esquemaCorridaInfo);
+ lsEsquemaCorridaInfoBorrar.add(esquemaCorridaInfo);
+ esquemaCorrida.setLsEsquemaCorridaInfo(null);
+ lstTrechosInformacaoCorridaListbox.setData(lsEsquemaCorridaInfoSelected);
+ }
+
+ }
+
+ public Button getBtnCancelarRetomar() {
+ return btnCancelarRetomar;
+ }
+
+ public void setBtnCancelarRetomar(Button btnCancelarRetomar) {
+ this.btnCancelarRetomar = btnCancelarRetomar;
+ }
+
+ private void alterarBotaoRetomarCancelar() {
+ if (esquemaCorrida.getIndCorridaDesativada()) {
+ btnCancelarRetomar.setTooltiptext(Labels.getLabel("editarCatalogoDeRutaController.btnRetomarCancelar.tooltipRetomar"));
+ btnCancelarRetomar.setImage("/gui/img/back.png");
+ } else {
+ btnCancelarRetomar.setTooltiptext(Labels.getLabel("editarCatalogoDeRutaController.btnRetomarCancelar.tooltipCancelar"));
+ btnCancelarRetomar.setImage("/gui/img/forbidden.png");
+ }
+ }
+
+ public void onClick$btnCancelarRetomar(Event ev) throws Exception {
+ if (!esquemaCorrida.getIndCorridaDesativada()) {
+ esquemaCorrida.setIndCorridaDesativada(true);// cancelar
+ } else {
+ esquemaCorrida.setIndCorridaDesativada(false);// retomar
+ }
+
+ if(esquemaCorrida.getEsquemacorridaId() != null) {
+ esquemaCorridaService.actualizacion(esquemaCorrida);
+ }
+
+ alterarBotaoRetomarCancelar();
+ }
}
\ No newline at end of file
diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/TiempoEstanciaEsquemaTramoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/TiempoEstanciaEsquemaTramoController.java
index cac0ea140..b6e07eece 100644
--- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/TiempoEstanciaEsquemaTramoController.java
+++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/TiempoEstanciaEsquemaTramoController.java
@@ -21,7 +21,6 @@ import org.zkoss.zul.api.Spinner;
import com.rjconsultores.ventaboletos.entidad.EsquemaTramo;
import com.rjconsultores.ventaboletos.entidad.ParadaEsquema;
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
-import com.rjconsultores.ventaboletos.vo.esquemaoperacional.ItemEditarCorridaTramo;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
@@ -48,7 +47,6 @@ public class TiempoEstanciaEsquemaTramoController extends MyGenericForwardCompos
private Radio emPe;
private Radio ambos;
private Radio naoVende;
- public ItemEditarCorridaTramo itemEditarCorridaTramo;
// private Boolean primeraSequencia;
@@ -100,8 +98,7 @@ public class TiempoEstanciaEsquemaTramoController extends MyGenericForwardCompos
paradaEsquema = (ParadaEsquema) Executions.getCurrent().getArg().get("paradaEsquema");
esquemaTramoList = (MyListbox) Executions.getCurrent().getArg().get("esquemaTramoList");
sequenciaSize = (Short) Executions.getCurrent().getArg().get("sequenciaSize");
- itemEditarCorridaTramo = (ItemEditarCorridaTramo) Executions.getCurrent().getArg().get("itemEditarCorridaTramo");
-
+
if (paradaEsquema.getNumsecuencia().equals(Short.valueOf("1"))) {
spHora.setDisabled(true);
spMinuto.setDisabled(true);
@@ -170,7 +167,6 @@ public class TiempoEstanciaEsquemaTramoController extends MyGenericForwardCompos
esquemaTramo.setTiempoEstancia(tiempoEstancia);
paradaEsquema.setTiempoEstancia(tiempoEstancia);
}
- itemEditarCorridaTramo.setTempoEstancia(tiempoEstancia);
}
Date excepcionRecorrido = DateUtil.getFecInicio(spHoraExcepcion.getValue() == null? 0:spHoraExcepcion.getValue(), spMinutoExcepcion.getValue()== null? 0:spMinutoExcepcion.getValue()).getTime();
@@ -181,14 +177,9 @@ public class TiempoEstanciaEsquemaTramoController extends MyGenericForwardCompos
esquemaTramo.setExcepcionRecorrido(excepcionRecorrido);
paradaEsquema.setExcepcionRecorrido(excepcionRecorrido);
}
- itemEditarCorridaTramo.setTempoExcecao(excepcionRecorrido);
if (!paradaEsquema.getNumsecuencia().equals(sequenciaSize)) {
String plataforma = txtPlataforma.getValue();
- if(plataforma!=null && !plataforma.equals(paradaEsquema.getPlataforma()) ) {
- itemEditarCorridaTramo.setPlataforma(plataforma);
- itemEditarCorridaTramo.setTramoEditado(true);
- }
esquemaTramo.setPlataforma(plataforma);
paradaEsquema.setPlataforma(plataforma);
@@ -202,10 +193,7 @@ public class TiempoEstanciaEsquemaTramoController extends MyGenericForwardCompos
} else {
tipoPassagem = "A";
}
- if(tipoPassagem!=null && !tipoPassagem.equals(paradaEsquema.getTipoPassagem())) {
- itemEditarCorridaTramo.setTipoPassagem(tipoPassagem);
- itemEditarCorridaTramo.setTramoEditado(true);
- }
+
esquemaTramo.setTipoPassagem(tipoPassagem);
paradaEsquema.setTipoPassagem(tipoPassagem);
}