Merge pull request 'fixes bug #AL-2734' (!244) from AL-2734 into master

Reviewed-on: http://18.235.188.113:3000/adm/VentaBoletosAdm/pulls/244
Reviewed-by: Gleison da Cruz <gleison.cruz@totvs.com.br>
master 1.11.8
pinheiro 2023-08-14 18:50:53 +00:00
commit 21655d6605
10 changed files with 597 additions and 100 deletions

View File

@ -4,11 +4,11 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId> <groupId>br.com.rjconsultores</groupId>
<artifactId>ventaboletosadm</artifactId> <artifactId>ventaboletosadm</artifactId>
<version>1.11.7</version> <version>1.11.8</version>
<packaging>war</packaging> <packaging>war</packaging>
<properties> <properties>
<modelWeb.version>1.8.0</modelWeb.version> <modelWeb.version>1.8.1</modelWeb.version>
<flyway.version>1.6.4</flyway.version> <flyway.version>1.6.4</flyway.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

View File

@ -4,6 +4,8 @@
*/ */
package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional; package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collections; import java.util.Collections;
@ -19,6 +21,7 @@ import org.apache.commons.lang.math.NumberUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.zkoss.util.resource.Labels; import org.zkoss.util.resource.Labels;
import org.zkoss.zhtml.Messagebox; import org.zkoss.zhtml.Messagebox;
@ -37,13 +40,14 @@ import org.zkoss.zul.Datebox;
import org.zkoss.zul.Intbox; import org.zkoss.zul.Intbox;
import org.zkoss.zul.Label; import org.zkoss.zul.Label;
import org.zkoss.zul.Radio; import org.zkoss.zul.Radio;
import org.zkoss.zul.Radiogroup;
import org.zkoss.zul.Spinner; import org.zkoss.zul.Spinner;
import org.zkoss.zul.Textbox; import org.zkoss.zul.Textbox;
import org.zkoss.zul.Timebox; import org.zkoss.zul.Timebox;
import org.zkoss.zul.Window;
import com.rjconsultores.ventaboletos.entidad.Autobus; import com.rjconsultores.ventaboletos.entidad.Autobus;
import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Corrida;
import com.rjconsultores.ventaboletos.entidad.Division; import com.rjconsultores.ventaboletos.entidad.Division;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento; import com.rjconsultores.ventaboletos.entidad.EsquemaAsiento;
@ -61,6 +65,7 @@ import com.rjconsultores.ventaboletos.entidad.RutaSecuencia;
import com.rjconsultores.ventaboletos.entidad.Tramo; import com.rjconsultores.ventaboletos.entidad.Tramo;
import com.rjconsultores.ventaboletos.entidad.TramoServicio; import com.rjconsultores.ventaboletos.entidad.TramoServicio;
import com.rjconsultores.ventaboletos.service.AutobusService; import com.rjconsultores.ventaboletos.service.AutobusService;
import com.rjconsultores.ventaboletos.service.BoletoService;
import com.rjconsultores.ventaboletos.service.ClaseServicioService; import com.rjconsultores.ventaboletos.service.ClaseServicioService;
import com.rjconsultores.ventaboletos.service.CorridaService; import com.rjconsultores.ventaboletos.service.CorridaService;
import com.rjconsultores.ventaboletos.service.DivisionService; import com.rjconsultores.ventaboletos.service.DivisionService;
@ -78,7 +83,9 @@ import com.rjconsultores.ventaboletos.service.RutaService;
import com.rjconsultores.ventaboletos.service.TramoServicioService; import com.rjconsultores.ventaboletos.service.TramoServicioService;
import com.rjconsultores.ventaboletos.utilerias.ApplicationProperties; import com.rjconsultores.ventaboletos.utilerias.ApplicationProperties;
import com.rjconsultores.ventaboletos.utilerias.CustomEnum; import com.rjconsultores.ventaboletos.utilerias.CustomEnum;
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; 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.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
import com.rjconsultores.ventaboletos.web.utilerias.render.MyComboRutaRenderer; import com.rjconsultores.ventaboletos.web.utilerias.render.MyComboRutaRenderer;
@ -93,9 +100,10 @@ import com.rjconsultores.ventaboletos.web.utilerias.render.RenderEsquemaCorridaE
@Scope("prototype") @Scope("prototype")
public class EditarCorridaController extends MyGenericForwardComposer { public class EditarCorridaController extends MyGenericForwardComposer {
private static final int PERIODO_MAXIMO_90_DIAS = 90;
private static Logger log = Logger.getLogger(EditarCorridaController.class); private static Logger log = Logger.getLogger(EditarCorridaController.class);
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
//Services
@Autowired @Autowired
private EsquemaCorridaService esquemaCorridaService; private EsquemaCorridaService esquemaCorridaService;
@Autowired @Autowired
@ -125,10 +133,104 @@ public class EditarCorridaController extends MyGenericForwardComposer {
@Autowired @Autowired
CorridaService corridaService; CorridaService corridaService;
@Autowired @Autowired
BoletoService boletoService;
@Autowired
private RutaEmbarqueDesembarqueService rutaEmbarqueDesembarqueService; private RutaEmbarqueDesembarqueService rutaEmbarqueDesembarqueService;
@Autowired @Autowired
private EsquemaCorridaEmbarqueDesembarqueService esquemaCorridaEmbarqueDesembarqueService; private EsquemaCorridaEmbarqueDesembarqueService esquemaCorridaEmbarqueDesembarqueService;
private DivisionService divisionService; private DivisionService divisionService;
//Radio
private Radio porBloq;
private Radio latente;
private Radio autorizada;
private Radio cancelada;
private Radio sentado;
private Radio emPe;
private Radio fletes;
private Radio viajesEspeciales;
private Radio transportePasajeros;
private Radio rdImprimeBPE;
private Radio rdNaoImprimeBPE;
//MyListbox
private MyListbox esquemaCorridaList;
private MyListbox esquemaTramoList;
private MyListbox esquemaCorridaEmbarqueDesembarqueListbox;
//Datebox
private Datebox fecniciovigencia;
private Datebox fecfinvigencia;
//Spinner
private Spinner minutos;
private Spinner txtHorasParaConfirmacao;
private Spinner txtMinutosParaConfirmacao;
private Spinner txtHorasAutomacaoDE;
private Spinner txtMinutosAutomacaoDE;
private Spinner txtHorasAutomacaoATE;
private Spinner txtMinutosAutomacaoATE;
//Intbox
private Intbox txtNumCorrida;
private Intbox txtNumCorridaPisoExtra;
private Intbox txtNumCorridaPisoExtra2;
private Intbox txtQtdeDiasGeracao;
private Intbox txtOcupacaoMinima;
private Intbox txtOcupacaoHorarioExtra;
private Intbox txtNumCorridaExtraAuto;
//Combobox
private Combobox cmbClase;
private Combobox cmbMarca;
private Combobox cmbRuta;
private Combobox cmbEmpresaCorrida;
private Combobox cmbEmpresaIngresso;
private Combobox cmbRolOperativo;
private Combobox cmbStatus;
private Combobox cmbVia;
private Combobox cmbTramo;
private Combobox cmbDivision;
private Combobox cmbIndGeneraFeriado;
private Combobox cmbEmbarqueDesembarque;
private Combobox cmbLocalEmbarqueDesembarque;
private Combobox cmbRolOperativoServicoExtra;
//Button
private Button btnAsientos;
private Button btnApagar;
//Timebox
private Timebox horasalida;
private Timebox de;
private Timebox hasta;
private Timebox horaIniNaoImpBpe;
private Timebox horaFimNaoImpBpe;
//Label
private Label horasalidaLabel;
private Label minutosLabel1;
private Label minutosLabel2;
private Label horaLabel1;
private Label horaLabel2;
private Label horaLabel21;
private Label horaLabel22;
private Label lbDivision;
private Label lbNumCorridaPisoExtra;
private Label lbNumCorridaPisoExtra2;
//Textbox
private Textbox txtIdCorridaRebote;
private Textbox txtPlataforma;
private Textbox txtInfoCorrida;
//Checkbox
private Checkbox chkDoblePiso;
private Checkbox chkCorridaExtra;
private Checkbox lun;
private Checkbox mar;
private Checkbox mie;
private Checkbox jue;
private Checkbox vie;
private Checkbox sab;
private Checkbox dom;
private Checkbox cbEmbarque;
private Checkbox cbDesembarque;
private Checkbox cbVisualizaNaAPI;
private Checkbox chkBloqueiaCorridaWebAposSaida;
private Checkbox diaSimDiaNao;
//List
private List<Division> lsDivision; private List<Division> lsDivision;
private List<Empresa> lsEmpresa; private List<Empresa> lsEmpresa;
private List<Empresa> lsEmpresaIngresso; private List<Empresa> lsEmpresaIngresso;
@ -142,105 +244,22 @@ public class EditarCorridaController extends MyGenericForwardComposer {
private List<RutaSecuencia> lsTramosRutaEsquemaCorrida; private List<RutaSecuencia> lsTramosRutaEsquemaCorrida;
private List<Parada> lsTramos; private List<Parada> lsTramos;
private List<ParadaEsquema> lsParadaEsquema; private List<ParadaEsquema> lsParadaEsquema;
private Radio porBloq;
private Radio latente;
private Radio autorizada;
private Radio cancelada;
private Radio sentado;
private Radio emPe;
private Radio fletes;
private Radio viajesEspeciales;
private Radio transportePasajeros;
private Radio rdImprimeBPE;
private Radio rdNaoImprimeBPE;
private Checkbox chkDoblePiso;
private EsquemaCorrida esquemaCorrida;
private MyListbox esquemaCorridaList;
private MyListbox esquemaTramoList;
private MyListbox esquemaCorridaEmbarqueDesembarqueListbox;
private Datebox fecniciovigencia;
private Datebox fecfinvigencia;
private Intbox txtNumCorrida;
private Textbox txtInfoCorrida;
private Checkbox chkCorridaExtra;
private Intbox txtNumCorridaPisoExtra;
private Intbox txtNumCorridaPisoExtra2;
private Intbox txtQtdeDiasGeracao;
private Combobox cmbClase;
private Combobox cmbMarca;
private Combobox cmbRuta;
private Combobox cmbEmpresaCorrida;
private Combobox cmbEmpresaIngresso;
private Combobox cmbRolOperativo;
private Combobox cmbStatus;
private Combobox cmbVia;
private Combobox cmbTramo;
private Combobox cmbDivision;
private Combobox cmbIndGeneraFeriado;
private Combobox cmbEmbarqueDesembarque;
private Button btnAsientos;
private Timebox horasalida;
private Timebox de;
private Timebox hasta;
private Timebox horaIniNaoImpBpe;
private Timebox horaFimNaoImpBpe;
private Spinner minutos;
private Label horasalidaLabel;
private Label minutosLabel1;
private Label minutosLabel2;
private Label horaLabel1;
private Label horaLabel2;
private Label horaLabel21;
private Label horaLabel22;
private Label lbDivision;
private Label lbNumCorridaPisoExtra;
private Label lbNumCorridaPisoExtra2;
private Button btnApagar;
private Textbox txtIdCorridaRebote;
private Textbox txtPlataforma;
private Checkbox lun;
private Checkbox mar;
private Checkbox mie;
private Checkbox jue;
private Checkbox vie;
private Checkbox sab;
private Checkbox dom;
@SuppressWarnings("unused")
private boolean isClone = false;
private Checkbox diaSimDiaNao;
private Boolean embarqueDesembarqueDisabled = true;
private boolean isPrimeiraVez = true;
private List<RutaEmbarqueDesembarque> lsRutaEmbarqueDesembarque = new ArrayList<RutaEmbarqueDesembarque>(); private List<RutaEmbarqueDesembarque> lsRutaEmbarqueDesembarque = new ArrayList<RutaEmbarqueDesembarque>();
private List<EsquemaCorridaEmbarqueDesembarque> lsEsquemaCorridaEmbarqueDesembarqueSelected = new ArrayList<EsquemaCorridaEmbarqueDesembarque>(); private List<EsquemaCorridaEmbarqueDesembarque> lsEsquemaCorridaEmbarqueDesembarqueSelected = new ArrayList<EsquemaCorridaEmbarqueDesembarque>();
private List<EsquemaCorridaEmbarqueDesembarque> lsEsquemaCorridaEmbarqueDesembarqueBorrar = new ArrayList<EsquemaCorridaEmbarqueDesembarque>(); private List<EsquemaCorridaEmbarqueDesembarque> lsEsquemaCorridaEmbarqueDesembarqueBorrar = new ArrayList<EsquemaCorridaEmbarqueDesembarque>();
private Combobox cmbLocalEmbarqueDesembarque;
private List<Parada> lsEmbarqueDesembarque; private List<Parada> lsEmbarqueDesembarque;
//boolean
private boolean isPrimeiraVez = true;
private Boolean embarqueDesembarqueDisabled = true;
private Boolean isAlteraCorridaJaGerada;
private Boolean embarque = Boolean.FALSE; private Boolean embarque = Boolean.FALSE;
private Boolean desembarque = Boolean.FALSE; private Boolean desembarque = Boolean.FALSE;
private Boolean isVisualizarNaAPI = Boolean.FALSE; private Boolean isVisualizarNaAPI = Boolean.FALSE;
private Checkbox cbEmbarque; //Outros objetos
private Checkbox cbDesembarque; private EsquemaCorrida esquemaCorrida;
private Checkbox cbVisualizaNaAPI; private Date dataInicialFiltroCorridaExistente;
private Date dataFinalFiltroCorridaExistente;
//FlexBus
private Spinner txtHorasParaConfirmacao;
private Spinner txtMinutosParaConfirmacao;
private Intbox txtOcupacaoMinima;
private Intbox txtOcupacaoHorarioExtra;
private Spinner txtHorasAutomacaoDE;
private Spinner txtMinutosAutomacaoDE;
private Spinner txtHorasAutomacaoATE;
private Spinner txtMinutosAutomacaoATE;
private Intbox txtNumCorridaExtraAuto;
private Combobox cmbRolOperativoServicoExtra;
private Checkbox chkBloqueiaCorridaWebAposSaida;
@Override @Override
public void doAfterCompose(Component comp) throws Exception { public void doAfterCompose(Component comp) throws Exception {
@ -500,7 +519,6 @@ public class EditarCorridaController extends MyGenericForwardComposer {
txtNumCorrida.setText(""); txtNumCorrida.setText("");
txtNumCorrida.setConstraint("no empty"); txtNumCorrida.setConstraint("no empty");
chkCorridaExtra.setDisabled(Boolean.FALSE); chkCorridaExtra.setDisabled(Boolean.FALSE);
isClone = true;
esquemaCorrida.setEsquemacorridaId(null); esquemaCorrida.setEsquemacorridaId(null);
esquemaCorrida.setNumCorrida(null); esquemaCorrida.setNumCorrida(null);
@ -689,7 +707,7 @@ public class EditarCorridaController extends MyGenericForwardComposer {
if(!validaEsquemaTramo(dataDeFecInicioVigencia, dataAteFecfinvigencia)) { if(!validaEsquemaTramo(dataDeFecInicioVigencia, dataAteFecfinvigencia)) {
return; return;
} else { } else {
salvaEsquemaTramo(dataDeFecInicioVigencia); salvaEsquemaCorrida(dataDeFecInicioVigencia);
} }
} catch (WrongValueException ex) { } catch (WrongValueException ex) {
@ -813,7 +831,7 @@ public class EditarCorridaController extends MyGenericForwardComposer {
return true; return true;
} }
private void salvaEsquemaTramo(Date dataDeFecInicioVigencia) throws InterruptedException { private void salvaEsquemaCorrida(Date dataDeFecInicioVigencia) throws InterruptedException {
//FlexBus //FlexBus
if(esquemaCorrida.getIsFlexBus()) { if(esquemaCorrida.getIsFlexBus()) {
esquemaCorrida.setHorasParaConfirmacao(txtHorasParaConfirmacao.getValue()); esquemaCorrida.setHorasParaConfirmacao(txtHorasParaConfirmacao.getValue());
@ -904,6 +922,9 @@ public class EditarCorridaController extends MyGenericForwardComposer {
} }
esquemaCorridaService.actualizacion(esquemaCorrida); esquemaCorridaService.actualizacion(esquemaCorrida);
esquemaCorridaService.actualizaEsquemaTramo(lsParadaEsquema, esquemaCorrida); esquemaCorridaService.actualizaEsquemaTramo(lsParadaEsquema, esquemaCorrida);
if(Boolean.TRUE.equals(isAlteraCorridaJaGerada)) {
validaRealizaGeracaoCorrida();
}
esquemaCorridaList.updateItem(esquemaCorrida); esquemaCorridaList.updateItem(esquemaCorrida);
@ -923,6 +944,91 @@ public class EditarCorridaController extends MyGenericForwardComposer {
closeWindow(); closeWindow();
} }
private void validaRealizaGeracaoCorrida() {
try {
LocalDate inicioLocalDate = dataInicialFiltroCorridaExistente.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate fimLocalDate = dataFinalFiltroCorridaExistente.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1);
LocalDate currentStart=LocalDate.from(inicioLocalDate);
List<TarefaGeracaoCorridaVO> tarefaSucesso = new ArrayList<TarefaGeracaoCorridaVO>();
List<TarefaGeracaoCorridaVO> tarefaErros = new ArrayList<TarefaGeracaoCorridaVO>();
Date dataIter = Date.from(currentStart.atStartOfDay(ZoneId.systemDefault()).toInstant());
for (LocalDate date = inicioLocalDate; date.isBefore(fimLocalDate); date = date.plusDays(1)) {
//valida data
try {
//1 - Validar se corrida existe vendas disponíveis
if(!boletoService.isExisteBoletoPorCorrida(esquemaCorrida.getNumCorrida(), dataIter)) {
//2 - Apagar corrida caso não exista venda
Corrida.Id id = new Corrida.Id(esquemaCorrida.getNumCorrida(), dataIter);
//3 - Gerar nova corrida somente se a corrida estiver ativa
Corrida corrida = corridaService.buscarCorridaAtivaPorId(id);
if(corrida !=null) {
try {
corridaService.borrar(corrida);
}catch (DataIntegrityViolationException e) {
if(e.getRootCause()!=null && e.getRootCause().getLocalizedMessage() !=null && e.getRootCause().getLocalizedMessage().contains("SYS_C004956867")) {
String msgErro = "Existe uma ocupação para esta corrida nesta data (tabela Disponibilidade). Corrida:" + esquemaCorrida.getNumCorrida() + " data:" + DateUtil.getStringDate(dataIter);
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
tarefaErros.add(tarefa);
//log.error("Geração de corrida via Conf. " + msgErro, e);
}else if (e.getRootCause()!=null && e.getRootCause().getLocalizedMessage() !=null && e.getRootCause().getLocalizedMessage().contains("SYS_C004957483")) {
String msgErro = "Existe um assento exclusivo para esta corrida nesta data (tabela ASIENTO_EXCLUSIVO). Corrida:" + esquemaCorrida.getNumCorrida() + " data:" + DateUtil.getStringDate(dataIter);
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
tarefaErros.add(tarefa);
//log.error("Geração de corrida via Conf. " + msgErro, e);
}else{
String msgErro = "Alguma restrição de integridade foi violada. Favor verificar ";
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
tarefaErros.add(tarefa);
log.error("Geração de corrida via Conf. " + msgErro, e);
}
continue;
}
//4 - Gerar corrida novamente.
List<EsquemaCorrida> esquemaCorridaList = new ArrayList<EsquemaCorrida>();
esquemaCorridaList.add(esquemaCorrida);
corridaService.generarCorrida(dataIter, esquemaCorridaList, false);
String msgSucesso = "Corrida parada a data " + DateUtil.getStringDate(dataIter) + " gerada com sucesso";
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgSucesso, "OK", "OK" );
tarefaSucesso.add(tarefa);
}else {
String msgErro = "Não econtrado corrida:" + esquemaCorrida.getNumCorrida() + " para a data:" + DateUtil.getStringDate(dataIter);
log.error("Geração de corrida via Conf. " + msgErro);
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
tarefaErros.add(tarefa);
}
}else {
String msgErro = "Corrida não será gerada novamente. Existem vendas para a corrida:" + esquemaCorrida.getNumCorrida() + " na data:" + DateUtil.getStringDate(dataIter);
log.error("Geração de corrida via Conf. " + msgErro);
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
tarefaErros.add(tarefa);
}
}catch (Exception e) {
String msgErro = "Serviço. Erro ao regerar a corrida:" + esquemaCorrida.getNumCorrida() + "para a data:" + DateUtil.getStringDate(dataIter);
log.error("Geração de corrida via Conf. " + msgErro, e);
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
tarefaErros.add(tarefa);
}
}
Map args = new HashMap();
dataInicialFiltroCorridaExistente = new Date();
dataFinalFiltroCorridaExistente = new Date();
args.put("tarfaSucesso", tarefaSucesso);
args.put("tarefaErros", tarefaErros);
Window dialog = (Window)Executions.createComponents(
"/gui/esquema_operacional/logGeracaoCorridaViaConfServico.zul", null, args);
dialog.doModal();
}catch (InterruptedException e) {
log.error("Erro ao gerar corrida para a corrida: " + esquemaCorrida.getNumCorrida());
}
}
private void salvaNovoEsquemaCorrida(Date dataDeFecInicioVigencia, List<EsquemaCorrida> lsEC) private void salvaNovoEsquemaCorrida(Date dataDeFecInicioVigencia, List<EsquemaCorrida> lsEC)
throws InterruptedException { throws InterruptedException {
Calendar agora = Calendar.getInstance(); Calendar agora = Calendar.getInstance();
@ -1017,7 +1123,6 @@ public class EditarCorridaController extends MyGenericForwardComposer {
esquemaCorridaService.suscribir(esquemaCorrida); esquemaCorridaService.suscribir(esquemaCorrida);
esquemaCorridaService.actualizaEsquemaTramo(lsParadaEsquema, esquemaCorrida); esquemaCorridaService.actualizaEsquemaTramo(lsParadaEsquema, esquemaCorrida);
isClone = false;
} }
Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.suscribirOK"), Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.suscribirOK"),
Labels.getLabel("editarConfiguracionCorridaController.window.title"), Labels.getLabel("editarConfiguracionCorridaController.window.title"),
@ -1041,7 +1146,61 @@ public class EditarCorridaController extends MyGenericForwardComposer {
} }
} }
@SuppressWarnings("unchecked")
private boolean realizaValidacoes() throws InterruptedException { private boolean realizaValidacoes() throws InterruptedException {
if(lsParadaEsquema!=null && !lsParadaEsquema.isEmpty()) {
int resp = Messagebox.show(Labels.getLabel("editarConfiguracionCorridaController.MSG.desajaAlterarCorridaJaGeradas"),
Labels.getLabel("editarConfiguracionCorridaController.window.title"),
Messagebox.YES | Messagebox.NO, Messagebox.QUESTION);
if (resp == Messagebox.YES) {
//chama poupup com filtro de data
try {
@SuppressWarnings("rawtypes")
Map args = new HashMap();
dataInicialFiltroCorridaExistente = new Date();
dataFinalFiltroCorridaExistente = new Date();
args.put("dataInicial", dataInicialFiltroCorridaExistente);
args.put("dataFinal", dataFinalFiltroCorridaExistente);
Window dialog = (Window)Executions.createComponents(
"/gui/esquema_operacional/filtroDataEdicaoCorrida.zul", null, args);
Button okBtn = (Button) dialog.getFellow("okBtn");
okBtn.addEventListener("onClick", new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
try{
if(DateUtil.diferencaEntreDatasEmdias(dataInicialFiltroCorridaExistente, dataFinalFiltroCorridaExistente) > PERIODO_MAXIMO_90_DIAS) {
String msg = Labels.getLabel("MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoPeriodoMaximo");
Messagebox.show(msg, Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION);;
}
Datebox fecInicial = (Datebox) dialog.getFellow("fecInicio");
dataInicialFiltroCorridaExistente = fecInicial.getValue();
Datebox fecFinal = (Datebox) dialog.getFellow("fecFinal");
dataFinalFiltroCorridaExistente = fecFinal.getValue();
isAlteraCorridaJaGerada = Boolean.TRUE;
}catch(Exception e){
log.error("Erro ao obter data", e);
}
dialog.detach();
}
});
dialog.doModal();
}catch (Exception e) {
String msg = Labels.getLabel("MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoCorridaExistentes") + e.getMessage();
Messagebox.show(msg, Labels.getLabel("editarConfiguracionCorridaController.window.title"), Messagebox.OK, Messagebox.EXCLAMATION);
log.error(msg, e);
isAlteraCorridaJaGerada = Boolean.FALSE;
}
}else {
isAlteraCorridaJaGerada = Boolean.FALSE;
}
}
//Linha Destaivada //Linha Destaivada
if (esquemaCorrida.getRuta().getIndRutaCancelada()) { if (esquemaCorrida.getRuta().getIndRutaCancelada()) {
Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.msg.rutaDesativadaId") Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.msg.rutaDesativadaId")

View File

@ -0,0 +1,91 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional;
import java.util.Date;
import org.apache.log4j.Logger;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.zkoss.util.resource.Labels;
import org.zkoss.zhtml.Messagebox;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zul.Button;
import org.zkoss.zul.Datebox;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
/**
*
* @author rodrigo
*/
@Controller("editarDataEdicaoCorridaController")
@Scope("prototype")
public class EditarDataEdicaoCorridaController extends MyGenericForwardComposer {
private Button btnApagar;
private Datebox fecInicio;
private Datebox fecFinal;
private Logger log = Logger.getLogger(EditarDataEdicaoCorridaController.class);
public Button getBtnApagar() {
return btnApagar;
}
public void setBtnApagar(Button btnApagar) {
this.btnApagar = btnApagar;
}
public Datebox getFecInicio() {
return fecInicio;
}
public void setFecInicio(Datebox fecInicio) {
this.fecInicio = fecInicio;
}
public Datebox getFecFinal() {
return fecFinal;
}
public void setFecFinal(Datebox fecFinal) {
this.fecFinal = fecFinal;
}
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
fecInicio.setValue((Date) Executions.getCurrent().getArg().get("dataInicial"));
fecFinal.setValue((Date) Executions.getCurrent().getArg().get("dataFinal"));
fecInicio.focus();
}
@SuppressWarnings("unchecked")
public void onClick$btnSalvar(Event ev) throws InterruptedException {
Date inicio = fecInicio.getValue();
Date fim = fecFinal.getValue();
if (!fim.before(inicio)) {
Executions.getCurrent().getArg().clear();
Executions.getCurrent().getArg().put("dataInicial", fecInicio.getValue());
Executions.getCurrent().getArg().put("dataFinal", fecFinal.getValue());
} else {
Messagebox.show(
Labels.getLabel("editarVigenciaTarifaController.MSG.FimMenorInicio"),
Labels.getLabel("editarVigenciaTarifaController.window.title"),
Messagebox.OK, Messagebox.EXCLAMATION);
}
}
}

View File

@ -0,0 +1,92 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional;
import java.util.ArrayList;
import java.util.List;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zul.Button;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.vo.esquemaoperacional.TarefaGeracaoCorridaVO;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderTarefaGeracaoCorridaVO;
@Controller("logGeracaoCorridaViaConfServicosController")
@Scope("prototype")
public class LogGeracaoCorridaViaConfServicosController extends MyGenericForwardComposer {
private static final long serialVersionUID = 1L;
private MyListbox tarefasList;
private MyListbox errosList;
private Button btnFechar;
private Empresa empresa;
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
tarefasList.setItemRenderer(new RenderTarefaGeracaoCorridaVO());
@SuppressWarnings("unchecked")
List<TarefaGeracaoCorridaVO> tarefaSucessoList = (List<TarefaGeracaoCorridaVO>) Executions.getCurrent().getArg()
.get("tarfaSucesso");
if (tarefaSucessoList == null) {
tarefaSucessoList = new ArrayList<TarefaGeracaoCorridaVO>();
}
tarefasList.setData(tarefaSucessoList);
errosList.setItemRenderer(new RenderTarefaGeracaoCorridaVO());
@SuppressWarnings("unchecked")
List<TarefaGeracaoCorridaVO> tarefaErroList = (List<TarefaGeracaoCorridaVO>) Executions.getCurrent().getArg()
.get("tarefaErros");
if (tarefaErroList == null) {
tarefaErroList = new ArrayList<TarefaGeracaoCorridaVO>();
}
errosList.setData(tarefaErroList);
}
public MyListbox getTarefasList() {
return tarefasList;
}
public void setTarefasList(MyListbox tarefasList) {
this.tarefasList = tarefasList;
}
public MyListbox getErrosList() {
return errosList;
}
public void setErrosList(MyListbox errosList) {
this.errosList = errosList;
}
public Empresa getEmpresa() {
return empresa;
}
public void setEmpresa(Empresa empresa) {
this.empresa = empresa;
}
public Button getBtnFechar() {
return btnFechar;
}
public void setBtnFechar(Button btnFechar) {
this.btnFechar = btnFechar;
}
}

View File

@ -0,0 +1,34 @@
package com.rjconsultores.ventaboletos.web.utilerias.render;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
import com.rjconsultores.ventaboletos.vo.esquemaoperacional.TarefaGeracaoCorridaVO;
public class RenderTarefaGeracaoCorridaVO implements ListitemRenderer {
@Override
public void render(Listitem lstm, Object o) throws Exception {
TarefaGeracaoCorridaVO testVO = (TarefaGeracaoCorridaVO) o;
Listcell lc = new Listcell();
if (testVO.getCodStatus().equals("OK")) {
lc.setImage("/gui/img/check_icon.png");
} else if (testVO.getCodStatus().equals("ERRO")) {
lc.setImage("/gui/img/close_icon.png");
}
lc.setParent(lstm);
lc = new Listcell(testVO.getTarefa());
lc.setParent(lstm);
lc = new Listcell(testVO.getStatus());
lc.setParent(lstm);
lstm.setAttribute("data", testVO);
}
}

View File

@ -3467,6 +3467,9 @@ editarConfiguracionCorridaController.corridaAlteradaSucesso.value= Corrida Alter
editarConfiguracionCorridaController.MSG.desejaConfirmarCorrida= Depois de Confirmada o serviço aparecerá para todos os pontos de venda e não será mais possível cancelar. Deseja realmente confirmar a corrida? editarConfiguracionCorridaController.MSG.desejaConfirmarCorrida= Depois de Confirmada o serviço aparecerá para todos os pontos de venda e não será mais possível cancelar. Deseja realmente confirmar a corrida?
editarConfiguracionCorridaController.MSG.desejaCancelarCorrida= Depois de cancelada a corrida, não será mais possível alterar. Deseja realmente cancelar? editarConfiguracionCorridaController.MSG.desejaCancelarCorrida= Depois de cancelada a corrida, não será mais possível alterar. Deseja realmente cancelar?
editarConfiguracionCorridaController.lbOcupacaoAtual.value=Ocupação Atual editarConfiguracionCorridaController.lbOcupacaoAtual.value=Ocupação Atual
MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoCorridaExistentes=Não foi possível carrgegar a data, não será alterado as corridas já existentes
MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoPeriodoMaximo= Período máximo para alteração de corridas é de 90 dias
editarConfiguracionCorridaController.lbAutomatizacaoHorarioExtra.value= Automatização Horário Extra editarConfiguracionCorridaController.lbAutomatizacaoHorarioExtra.value= Automatização Horário Extra
editarConfiguracionCorridaController.lbHabilitaCorridaExtraAutomatica.value= Habilita Automatização editarConfiguracionCorridaController.lbHabilitaCorridaExtraAutomatica.value= Habilita Automatização
@ -3495,6 +3498,7 @@ editarConfiguracionCorridaController.lbD.value = D
editarConfiguracionCorridaController.lbCantParados.value = Quantidade de Venda em pé editarConfiguracionCorridaController.lbCantParados.value = Quantidade de Venda em pé
editarConfiguracionCorridaController.MSG.suscribirOK = Configuração de serviço Registrado com Sucesso. editarConfiguracionCorridaController.MSG.suscribirOK = Configuração de serviço Registrado com Sucesso.
editarConfiguracionCorridaController.MSG.borrarPergunta = Deseja Eliminar este serviço? editarConfiguracionCorridaController.MSG.borrarPergunta = Deseja Eliminar este serviço?
editarConfiguracionCorridaController.MSG.desajaAlterarCorridaJaGeradas = Deseja alterar localidades para corridas já geradas ?
editarConfiguracionCorridaController.MSG.borrarOK = Serviço Excluido com Sucesso. editarConfiguracionCorridaController.MSG.borrarOK = Serviço Excluido com Sucesso.
editarConfiguracionCorridaController.MSG.gravarServico = Para configurar a cota, é necessário antes salvar a configuração do serviço editarConfiguracionCorridaController.MSG.gravarServico = Para configurar a cota, é necessário antes salvar a configuração do serviço
editarConfiguracionCorridaController.MSG.editarServicio = Para editar o serviço, é necessário antes salvar a configuração do trem editarConfiguracionCorridaController.MSG.editarServicio = Para editar o serviço, é necessário antes salvar a configuração do trem

View File

@ -3149,6 +3149,7 @@ editarConfiguracionCorridaController.lbD.value = D
editarConfiguracionCorridaController.lbCantParados.value = Cantidad de parados editarConfiguracionCorridaController.lbCantParados.value = Cantidad de parados
editarConfiguracionCorridaController.MSG.suscribirOK = Configuración de servicio se registró exitosamente editarConfiguracionCorridaController.MSG.suscribirOK = Configuración de servicio se registró exitosamente
editarConfiguracionCorridaController.MSG.borrarPergunta = Desea eliminar este servicio? editarConfiguracionCorridaController.MSG.borrarPergunta = Desea eliminar este servicio?
editarConfiguracionCorridaController.MSG.desajaAlterarCorridaJaGeradas = Deseja alterar localidades para corridas já geradas ?
editarConfiguracionCorridaController.MSG.borrarOK = Servicio se eliminó exitosamente. editarConfiguracionCorridaController.MSG.borrarOK = Servicio se eliminó exitosamente.
editarConfiguracionCorridaController.MSG.gravarServico = Para configurar la cota, es necesário antes guardar la configuración de servicio editarConfiguracionCorridaController.MSG.gravarServico = Para configurar la cota, es necesário antes guardar la configuración de servicio
editarConfiguracionCorridaController.MSG.editarServicio = Para editar o serviço, é necessário antes Guardar a configuração do trem editarConfiguracionCorridaController.MSG.editarServicio = Para editar o serviço, é necessário antes Guardar a configuração do trem
@ -3390,6 +3391,9 @@ editarConfiguracionCorridaController.corridaAlteradaSucesso.value= Raza cambiada
editarConfiguracionCorridaController.MSG.desejaConfirmarCorrida= Después de Confirmado, el servicio aparecerá para todos los puntos de venta y ya no será posible cancelar. ¿De verdad quieres confirmar la carrera? editarConfiguracionCorridaController.MSG.desejaConfirmarCorrida= Después de Confirmado, el servicio aparecerá para todos los puntos de venta y ya no será posible cancelar. ¿De verdad quieres confirmar la carrera?
editarConfiguracionCorridaController.MSG.desejaCancelarCorrida=Una vez que se cancele la carrera, ya no será posible realizar cambios. ¿De verdad quieres cancelar? editarConfiguracionCorridaController.MSG.desejaCancelarCorrida=Una vez que se cancele la carrera, ya no será posible realizar cambios. ¿De verdad quieres cancelar?
editarConfiguracionCorridaController.lbOcupacaoAtual.value=Ocupación actual editarConfiguracionCorridaController.lbOcupacaoAtual.value=Ocupación actual
MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoCorridaExistentes=Não foi possível carrgegar a data, não será alterado as corridas já existentes
MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoPeriodoMaximo= Período máximo para alteração de corridas é de 90 dias
editarEmpresaController.habilitaVendaEmAbertoMovimentoCaixa= Habilite la venta abierta con movimiento de efectivo. editarEmpresaController.habilitaVendaEmAbertoMovimentoCaixa= Habilite la venta abierta con movimiento de efectivo.
editarEmpresaController.naoImprimeCupomDeEmbarqueVendaEmAberto=Não Imprime Cupom de Embarque na Venda em aberto editarEmpresaController.naoImprimeCupomDeEmbarqueVendaEmAberto=Não Imprime Cupom de Embarque na Venda em aberto
editarEmpresaController.naoImprimeCupomDeEmbarqueConfirmacaoDeAberto=Não Imprime Cupom de Embarque na Confirmação de aberto editarEmpresaController.naoImprimeCupomDeEmbarqueConfirmacaoDeAberto=Não Imprime Cupom de Embarque na Confirmação de aberto

View File

@ -3477,7 +3477,14 @@ editarConfiguracionCorridaController.corridaAlteradaSucesso.value= Corrida Alter
editarConfiguracionCorridaController.MSG.desejaConfirmarCorrida= Depois de Confirmada o serviço aparecerá para todos os pontos de venda e não será mais possível cancelar. Deseja realmente confirmar a corrida? editarConfiguracionCorridaController.MSG.desejaConfirmarCorrida= Depois de Confirmada o serviço aparecerá para todos os pontos de venda e não será mais possível cancelar. Deseja realmente confirmar a corrida?
editarConfiguracionCorridaController.MSG.desejaCancelarCorrida= Depois de cancelada a corrida, não será mais possível alterar. Deseja realmente cancelar? editarConfiguracionCorridaController.MSG.desejaCancelarCorrida= Depois de cancelada a corrida, não será mais possível alterar. Deseja realmente cancelar?
editarConfiguracionCorridaController.lbOcupacaoAtual.value=Ocupação Atual editarConfiguracionCorridaController.lbOcupacaoAtual.value=Ocupação Atual
MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoCorridaExistentes=Não foi possível carrgegar a data, não será alterado as corridas já existentes
MSG.Error.editarConfiguracionCorridaController.erroValidacaoDataEdicaoPeriodoMaximo= Período máximo para alteração de corridas é de 90 dias
label.editarConfiguracionCorridaController.inserirFiltroDataCorrida=Insira o filtro de data das corridas a serem alteradas
logGeracaoCorridaViaConfServicosController.btnFechar.tooltiptext=Fechar
logGeracaoCorridaViaConfServicosController.tabCorrida=Sucessos
logGeracaoCorridaViaConfServicosController.tabErros=Erros
logGeracaoCorridaViaConfServicosController.lhStatus=Status
logGeracaoCorridaViaConfServicosController.window.title= Geração de Corrida via Conf. Serviços
editarConfiguracionCorridaController.lbAutomatizacaoHorarioExtra.value= Automatização Horário Extra editarConfiguracionCorridaController.lbAutomatizacaoHorarioExtra.value= Automatização Horário Extra
editarConfiguracionCorridaController.lbHabilitaCorridaExtraAutomatica.value= Habilita Automatização editarConfiguracionCorridaController.lbHabilitaCorridaExtraAutomatica.value= Habilita Automatização
editarConfiguracionCorridaController.lbTaxaDeOcupacao.value= Taxa de Ocupação (%) editarConfiguracionCorridaController.lbTaxaDeOcupacao.value= Taxa de Ocupação (%)
@ -3505,6 +3512,7 @@ editarConfiguracionCorridaController.lbD.value = D
editarConfiguracionCorridaController.lbCantParados.value = Quantidade de Venda em pé editarConfiguracionCorridaController.lbCantParados.value = Quantidade de Venda em pé
editarConfiguracionCorridaController.MSG.suscribirOK = Configuração de serviço Registrado com Sucesso. editarConfiguracionCorridaController.MSG.suscribirOK = Configuração de serviço Registrado com Sucesso.
editarConfiguracionCorridaController.MSG.borrarPergunta = Deseja Eliminar este serviço? editarConfiguracionCorridaController.MSG.borrarPergunta = Deseja Eliminar este serviço?
editarConfiguracionCorridaController.MSG.desajaAlterarCorridaJaGeradas = Deseja alterar localidades para corridas já geradas ?
editarConfiguracionCorridaController.MSG.borrarOK = Serviço Excluido com Sucesso. editarConfiguracionCorridaController.MSG.borrarOK = Serviço Excluido com Sucesso.
editarConfiguracionCorridaController.MSG.gravarServico = Para configurar a cota, é necessário antes salvar a configuração do serviço editarConfiguracionCorridaController.MSG.gravarServico = Para configurar a cota, é necessário antes salvar a configuração do serviço
editarConfiguracionCorridaController.MSG.editarServicio = Para editar o serviço, é necessário antes salvar a configuração do trem editarConfiguracionCorridaController.MSG.editarServicio = Para editar o serviço, é necessário antes salvar a configuração do trem

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<?page contentType="text/html;charset=UTF-8"?>
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" arg0="winFiltroDataGeracaoCorrida"?>
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>
<zk xmlns="http://www.zkoss.org/2005/zul">
<window id="winFiltroDataGeracaoCorrida" border="normal"
apply="${editarDataEdicaoCorridaController}"
width="400px" height="457x" contentStyle="overflow:auto"
title="${c:l('editarDataEdicaoCorridaController.window.title')}"
xmlns:h="http://www.w3.org/1999/xhtml">
<toolbar>
<hbox spacing="5px" style="padding:1px" align="right">
<button label="Ok" id="okBtn"/>
<button id="btnFechar" height="20"
image="/gui/img/exit.png" width="35px"
onClick="winFiltroDataGeracaoCorrida.detach()"
tooltiptext="${c:l('editarDataEdicaoCorridaController.btnFechar.tooltiptext')}"/>
</hbox>
</toolbar>
<hbox>
<label style="font-weight:bold" value="${c:l('label.editarConfiguracionCorridaController.inserirFiltroDataCorrida')}"/>
</hbox>
<grid fixedLayout="true">
<columns>
<column width="40%" />
<column width="60%" />
</columns>
<rows>
<row>
<label value="${c:l('busquedaVigenciaTarifaController.lbFecInicio.value')}"/>
<datebox id="fecInicio" width="100%" format="dd/MM/yyyy" mold="rounded" constraint="no empty" />
</row>
<row>
<label value="${c:l('busquedaVigenciaTarifaController.lbFecFinal.value')}"/>
<datebox id="fecFinal" width="100%" format="dd/MM/yyyy" mold="rounded" constraint="no empty" />
</row>
</rows>
</grid>
</window>
</zk>

View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<?page contentType="text/html;charset=UTF-8"?>
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" arg0="winLogGeracaoCorridaViaConfServicos"?>
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>
<zk xmlns="http://www.zkoss.org/2005/zul">
<window id="winLogGeracaoCorridaViaConfServicos" border="normal"
apply="${logGeracaoCorridaViaConfServicosController}" width="520px"
contentStyle="overflow:auto" title="${c:l('logGeracaoCorridaViaConfServicosController.window.title')}"
xmlns:h="http://www.w3.org/1999/xhtml">
<toolbar>
<hbox spacing="5px" style="padding:1px" align="right">
<button id="btnFechar" height="20"
image="/gui/img/exit.png" width="35px"
onClick="winLogGeracaoCorridaViaConfServicos.detach()"
tooltiptext="${c:l('logGeracaoCorridaViaConfServicosController.btnFechar.tooltiptext')}" />
</hbox>
</toolbar>
<toolbar>
<separator bar="true" />
</toolbar>
<tabbox id="tabboxTitle">
<tabs>
<tab label="${c:l('logGeracaoCorridaViaConfServicosController.tabCorrida')}" />
<tab label="${c:l('logGeracaoCorridaViaConfServicosController.tabErros')}" />
</tabs>
<tabpanels>
<tabpanel style="overflow:auto;">
<listbox id="tarefasList"
use="com.rjconsultores.ventaboletos.web.utilerias.MyListbox"
multiple="true">
<listhead sizable="true">
<listheader id="lhIcon" width="5%" />
<listheader id="lhTarefas" width="75%"
label="${c:l('logGeracaoCorridaViaConfServicosController.tabCorrida')}" />
<listheader id="lhStatus" width="20%"
label="${c:l('logGeracaoCorridaViaConfServicosController.lhStatus')}" />
</listhead>
</listbox>
</tabpanel>
<tabpanel>
<listbox id="errosList"
use="com.rjconsultores.ventaboletos.web.utilerias.MyListbox"
multiple="true">
<listhead sizable="true">
<listheader id="lhIconErro" width="5%" />
<listheader id="lhTarefasErro" width="75%"
label="${c:l('logGeracaoCorridaViaConfServicosController.tabErros')}" />
<listheader id="lhStatusErro" width="20%"
label="${c:l('logGeracaoCorridaViaConfServicosController.lhStatus')}" />
</listhead>
</listbox>
</tabpanel>
</tabpanels>
</tabbox>
</window>
</zk>