Merge pull request 'fices bug #AL-3494' (!401) from AL-3494-3 into master

Reviewed-on: adm/VentaBoletosAdm#401
Reviewed-by: Valdir Cordeiro <valdir.cordeiro@totvs.com.br>
master
pinheiro 2024-02-23 18:23:00 +00:00
commit e43686d27d
2 changed files with 174 additions and 168 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.53.0</version> <version>1.53.1</version>
<packaging>war</packaging> <packaging>war</packaging>
<properties> <properties>
<modelWeb.version>1.40.0</modelWeb.version> <modelWeb.version>1.40.1</modelWeb.version>
<flyway.version>1.30.0</flyway.version> <flyway.version>1.30.0</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

@ -52,6 +52,7 @@ import com.rjconsultores.ventaboletos.entidad.Autobus;
import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.entidad.Constante;
import com.rjconsultores.ventaboletos.entidad.Corrida; import com.rjconsultores.ventaboletos.entidad.Corrida;
import com.rjconsultores.ventaboletos.entidad.CorridaTramo;
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;
@ -97,7 +98,6 @@ 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.DateUtil;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.vo.esquemaoperacional.ItemEditarCorridaTramo;
import com.rjconsultores.ventaboletos.vo.esquemaoperacional.TarefaGeracaoCorridaVO; 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;
@ -273,11 +273,13 @@ public class EditarCorridaController extends MyGenericForwardComposer {
private List<Ruta> lsRuta; private List<Ruta> lsRuta;
private List<RutaSecuencia> lsRutaSecuencia; private List<RutaSecuencia> lsRutaSecuencia;
private List<EsquemaTramo> lsEsquemaTramo; private List<EsquemaTramo> lsEsquemaTramo;
private List<EsquemaTramo> lsEsquemaTramoOriginal;
private List<Autobus> lsAutoBus; private List<Autobus> lsAutoBus;
private List<RolOperativo> lsRolOperativo; private List<RolOperativo> lsRolOperativo;
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 List<ParadaEsquema> lsParadaEsquemaOrignal;
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>();
@ -295,7 +297,7 @@ public class EditarCorridaController extends MyGenericForwardComposer {
private EsquemaCorrida esquemaCorrida; private EsquemaCorrida esquemaCorrida;
private Date dataInicialFiltroCorridaExistente; private Date dataInicialFiltroCorridaExistente;
private Date dataFinalFiltroCorridaExistente; private Date dataFinalFiltroCorridaExistente;
private List<ItemEditarCorridaTramo> itemEditarCorridaTramoList;
private Button btnCancelarRetomar; private Button btnCancelarRetomar;
@ -307,7 +309,6 @@ public class EditarCorridaController extends MyGenericForwardComposer {
salvar = true; salvar = true;
cmbRuta.setItemRenderer(new MyComboRutaRenderer()); cmbRuta.setItemRenderer(new MyComboRutaRenderer());
popularCombobox(cmbIndGeneraFeriado); popularCombobox(cmbIndGeneraFeriado);
itemEditarCorridaTramoList = new ArrayList<ItemEditarCorridaTramo>();
esquemaCorridaEmbarqueDesembarqueListbox.setItemRenderer(new RenderEsquemaCorridaEmbarqueDesembarque()); esquemaCorridaEmbarqueDesembarqueListbox.setItemRenderer(new RenderEsquemaCorridaEmbarqueDesembarque());
lstTrechosInformacaoCorridaListbox.setItemRenderer(new RenderCorridaInfomacaoTramo()); lstTrechosInformacaoCorridaListbox.setItemRenderer(new RenderCorridaInfomacaoTramo());
@ -479,7 +480,17 @@ public class EditarCorridaController extends MyGenericForwardComposer {
} }
lsEsquemaTramo = esquemaTramoService.obtenerPorEsquemaCorridaOrderNumSec(esquemaCorrida); lsEsquemaTramo = esquemaTramoService.obtenerPorEsquemaCorridaOrderNumSec(esquemaCorrida);
lsEsquemaTramoOriginal = new ArrayList<EsquemaTramo>();
for (EsquemaTramo esquemaTramo : lsEsquemaTramoOriginal) {
lsEsquemaTramoOriginal.add(esquemaTramo.clone());
}
//lsEsquemaTramoOriginal.addAll(lsEsquemaTramo);
carregarParadaSecuencia(lsEsquemaTramo); carregarParadaSecuencia(lsEsquemaTramo);
lsParadaEsquemaOrignal = new ArrayList<ParadaEsquema>();
for (ParadaEsquema paradaEsquema : lsParadaEsquema) {
lsParadaEsquemaOrignal.add(paradaEsquema.clone());
}
//lsParadaEsquemaOrignal.addAll(lsParadaEsquema);
selecionarRutaSequenciaForaEsqCorrida(); selecionarRutaSequenciaForaEsqCorrida();
} }
@ -1007,113 +1018,72 @@ public class EditarCorridaController extends MyGenericForwardComposer {
for (LocalDate date = inicioLocalDate; date.isBefore(fimLocalDate); date = date.plusDays(1)) { for (LocalDate date = inicioLocalDate; date.isBefore(fimLocalDate); date = date.plusDays(1)) {
Date dataIter = Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant()); Date dataIter = Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant());
try { try {
//1 - Validar se corrida existe vendas disponíveis
//if(boletoService.isExisteBoletoPorCorrida(esquemaCorrida.getNumCorrida(), dataIter)) {
// 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);
// continue;
//}
//Valida Pìso Extra tem boletos vendidos List<ParadaEsquema> lsParadaEsquemaRemovidas = new ArrayList<ParadaEsquema>();
//if(Boolean.TRUE.equals(esquemaCorrida.getPisoExtra()) && boletoService.isExisteBoletoPorCorrida(esquemaCorrida.getNumCorridaPisoExtra(), dataIter)) { List<ParadaEsquema> lsParadaEsquemaEditadas =new ArrayList<ParadaEsquema>();
// String msgErro = "Não econtrado corrida:" + esquemaCorrida.getNumCorrida() + " para a data:" + DateUtil.getStringDate(dataIter); preencheParadaEsquemaRemovidaEEditada(lsParadaEsquemaRemovidas, lsParadaEsquemaEditadas);
// log.error("Geração de corrida via Conf. " + msgErro);
// TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO"); List<ParadaEsquema> lsParadaEsquemaAdicionadasRemovidasOuEditadas = new ArrayList<ParadaEsquema>() ;
// tarefaErros.add(tarefa); if(lsParadaEsquemaEditadas!=null) {
// continue; lsParadaEsquemaAdicionadasRemovidasOuEditadas.addAll(lsParadaEsquemaEditadas);
//} }
//Aqui chegará um objeto CorridaTramo com as alterações realizadas if(lsParadaEsquemaRemovidas!=null) {
for(ItemEditarCorridaTramo itemEditarCorridaTramo: itemEditarCorridaTramoList) { lsParadaEsquemaAdicionadasRemovidasOuEditadas.addAll(lsParadaEsquemaRemovidas);
//2 - Valida existe boleto para origem }
itemEditarCorridaTramo.setCorridaId(esquemaCorrida.getNumCorrida());
itemEditarCorridaTramo.setFecCorrida(dataIter); List<ParadaEsquema> localidadeComVenda =null;
itemEditarCorridaTramo.setAutobus(esquemaCorrida.getAutoBus()); for (ParadaEsquema paradaEsquema : lsParadaEsquemaAdicionadasRemovidasOuEditadas) {
itemEditarCorridaTramo.setClaseServicio(esquemaCorrida.getClaseServicio()); if(boletoService.isExisteBoletoPorCorridaOrigemIdOuDestinoId(esquemaCorrida.getNumCorrida(), dataIter, paradaEsquema.getParada().getParadaId(), paradaEsquema.getParada().getParadaId())) {
itemEditarCorridaTramo.setStatusCorrida(esquemaCorrida.getStatusCorrida()); if(localidadeComVenda == null) {
if(esquemaCorrida!=null && esquemaCorrida.getRuta()!=null) { localidadeComVenda = new ArrayList<ParadaEsquema>();
// parada origem
Parada origen = rutaService.getOrigem(esquemaCorrida.getRuta());
if (origen == null) {
log.info("origen nao encontrado para a ruta = " + esquemaCorrida.getRuta().getRutaId());
} }
itemEditarCorridaTramo.setNodo((origen == null) ? null : origen.getNodo()); 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);
if(boletoService.isExisteBoletoPorCorridaOrigemIdOuDestinoId(esquemaCorrida.getNumCorrida(), dataIter, itemEditarCorridaTramo.getParadaId(), itemEditarCorridaTramo.getParadaId())) {
String msgErro = "Trecho com origem/destino: " + itemEditarCorridaTramo.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); log.error("Geração de corrida via Conf. " + msgErro);
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO"); TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
tarefaErros.add(tarefa); tarefaErros.add(tarefa);
continue;
}
//Valida Pìso Extra tem boletos vendidos para origem
if(Boolean.TRUE.equals(esquemaCorrida.getPisoExtra()) && boletoService.isExisteBoletoPorCorridaOrigemIdOuDestinoId(esquemaCorrida.getNumCorridaPisoExtra(), dataIter, itemEditarCorridaTramo.getParadaId(), itemEditarCorridaTramo.getParadaId())) {
String msgErro = "Trecho com origem/destino: " + itemEditarCorridaTramo.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);
continue;
}
if(itemEditarCorridaTramo !=null) {
if(itemEditarCorridaTramo.isTramoEditado()) {
if(!corridaTramoService.atualizaCorridaTramo(itemEditarCorridaTramo)) {
String msgErro = "Trecho não será atualizado. Houve algu,m erro ao atualizar corridaTramo(parada_id): " + itemEditarCorridaTramo.getParadaId() +" 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");
continue;
}
}else if(itemEditarCorridaTramo.isAdicionado()) {
corridaTramoService.adicionaCorridaTramo(itemEditarCorridaTramo, esquemaCorrida,dataIter);
}else if(itemEditarCorridaTramo.isExcluido()) {
corridaTramoService.excluiCorridaTramo(itemEditarCorridaTramo);
}
} }
}
List<CorridaTramo> 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"; String msgSucesso = "Corrida para a data " + DateUtil.getStringDate(dataIter) + " gerada com sucesso";
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgSucesso, "OK", "OK" ); TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgSucesso, "OK", "OK" );
tarefaSucesso.add(tarefa); tarefaSucesso.add(tarefa);
}else {
List<EsquemaTramo> lsEsquemaTramoIter = new ArrayList<EsquemaTramo>();
List<ParadaEsquema> localidadeComVendaIter = new ArrayList<ParadaEsquema>();
localidadeComVendaIter.addAll(lsParadaEsquema);
for (ParadaEsquema paradaEsquemaComVenda : localidadeComVenda) {
List<ParadaEsquema> listParadaEsquemaComNovaParada = new ArrayList<ParadaEsquema>();
lsEsquemaTramoIter = adicionarParadaEsquemaTramo(localidadeComVendaIter,paradaEsquemaComVenda.getParada() , esquemaCorrida, (Ruta) cmbRuta.getSelectedItem().getValue(), paradaEsquemaComVenda.getPlataforma(), paradaEsquemaComVenda.getTipoPassagem(), listParadaEsquemaComNovaParada);
localidadeComVendaIter = listParadaEsquemaComNovaParada;
}
corridaTramoList = corridaTramoService.recriaCorridaTramo(esquemaCorrida, dataIter, lsEsquemaTramoIter );
} }
//1 - busca corridatramos da corrida
//3 - Valida existe venda para destino
//4 - Carrega os trechos da linha, caso algum tenha sido removido nas configurações do esquema corrida
//5 - inativa corrida_tramo
//6 - insere corrida tramo novamente recalculando da hora de saida e chegada de acordo com tempoEstancia (tempo que que o serviço fica na parada)
//Valida e apaga corrida caso exista //Valida e apaga corrida caso exista
//TarefaGeracaoCorridaVO tarefaErro= validaApagaCorridaAgerar(esquemaCorrida.getNumCorrida(), dataIter); TarefaGeracaoCorridaVO tarefaErro= validaApagaCorridaAgerar(esquemaCorrida.getNumCorrida(), dataIter);
//if(tarefaErro !=null) { if(tarefaErro !=null) {
// tarefaErros.add(tarefaErro); tarefaErros.add(tarefaErro);
// continue; continue;
//} }
//Valida e apaga corrida piso extra caso exista //Valida e apaga corrida piso extra caso exista
//if(esquemaCorrida.getNumCorridaPisoExtra()!=null) { if(esquemaCorrida.getNumCorridaPisoExtra()!=null) {
// tarefaErro= validaApagaCorridaAgerar(esquemaCorrida.getNumCorridaPisoExtra(), dataIter); tarefaErro= validaApagaCorridaAgerar(esquemaCorrida.getNumCorridaPisoExtra(), dataIter);
// if(tarefaErro !=null) { if(tarefaErro !=null) {
// tarefaErros.add(tarefaErro); tarefaErros.add(tarefaErro);
// } }
//} }
// Gerar corrida novamente. // Gerar corrida novamente.
//List<EsquemaCorrida> esquemaCorridaList = new ArrayList<EsquemaCorrida>(); List<EsquemaCorrida> esquemaCorridaList = new ArrayList<EsquemaCorrida>();
//esquemaCorridaList.add(esquemaCorrida); esquemaCorridaList.add(esquemaCorrida);
//corridaService.generarCorrida(dataIter, esquemaCorridaList, false); corridaService.generarCorrida(dataIter, esquemaCorridaList, false, corridaTramoList);
//String msgSucesso = "Corrida para a data " + DateUtil.getStringDate(dataIter) + " gerada com sucesso";
//TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgSucesso, "OK", "OK" );
//tarefaSucesso.add(tarefa);
@ -1139,6 +1109,95 @@ public class EditarCorridaController extends MyGenericForwardComposer {
} }
} }
private List<ParadaEsquema> preencheParadaEsquemaNovas() {
List<ParadaEsquema> lsParadaEsquemaAdicionado = new ArrayList<ParadaEsquema>();
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<ParadaEsquema>();
}
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<ParadaEsquema> lsParadaEsquemaRemovidas, List<ParadaEsquema> 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<ParadaEsquema>();
}
lsParadaEsquemaEditadas.add(paradaEsquemaEditada);
}
break;
}
}
//Se isParadaEsquemaNaoRemovida=false a parada esquema foi removida, adiciona na lista.
if(!isParadaEsquemaNaoRemovida) {
if(lsParadaEsquemaRemovidas == null) {
lsParadaEsquemaRemovidas = new ArrayList<ParadaEsquema>();
}
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) { private TarefaGeracaoCorridaVO validaApagaCorridaAgerar(Integer corridaId, Date dataIter) {
//2 - Apagar corrida caso não exista venda //2 - Apagar corrida caso não exista venda
@ -1153,30 +1212,21 @@ public class EditarCorridaController extends MyGenericForwardComposer {
} }
try { try {
apagarCorrida(corrida); inativaCorridaETabelasRelacionadas(corrida);
}catch (DataIntegrityViolationException e) { }catch (Exception e) {
if(e.getRootCause()!=null && e.getRootCause().getLocalizedMessage() !=null && e.getRootCause().getLocalizedMessage().contains("SYS_C004956867")) { String msgErro = "Erro ao inativar corrida e tabelas relacionadas. Favor verificar ";
String msgErro = "Existe uma ocupação para esta corrida nesta data (tabela Disponibilidade). Corrida:" + corridaId + " data:" + DateUtil.getStringDate(dataIter); log.error("Geração de corrida via Conf. " + msgErro, e);
return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO"); return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
//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:" + corridaId + " data:" + DateUtil.getStringDate(dataIter);
return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
//log.error("Geração de corrida via Conf. " + msgErro, e);
}else if(e.getRootCause()!=null && e.getRootCause().getLocalizedMessage() !=null && e.getRootCause().getLocalizedMessage().contains("FK_CORR_INFO")){
String msgErro = "Existe uma informação de corrida por trecho para esta corrida nesta data (tabela CORRIDA_INFO). Corrida:" + corridaId + " data:" + DateUtil.getStringDate(dataIter);
return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
}else{
String msgErro = "Alguma restrição de integridade foi violada. Favor verificar ";
log.error("Geração de corrida via Conf. " + msgErro, e);
return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
}
} }
return null; return null;
} }
private void apagarCorrida(Corrida corrida) { /**
* 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); corridaInfoService.borrarByCorrida(corrida);
asientoExclusivoService.borrarByCorrida(corrida); asientoExclusivoService.borrarByCorrida(corrida);
disponibilidadService.borrarByCorrida(corrida); disponibilidadService.borrarByCorrida(corrida);
@ -1465,7 +1515,8 @@ public class EditarCorridaController extends MyGenericForwardComposer {
// Ruta Secuencia // Ruta Secuencia
Parada paradaAlterada = (Parada) cmbTramo.getSelectedItem().getValue(); Parada paradaAlterada = (Parada) cmbTramo.getSelectedItem().getValue();
lsEsquemaTramo = adicionarParadaEsquemaTramo(lsParadaEsquema,paradaAlterada , esquemaCorrida, (Ruta) cmbRuta.getSelectedItem().getValue(), plataforma, tipoPassagem); List<ParadaEsquema> listParadaEsquemaComNovaParada = new ArrayList<ParadaEsquema>();
lsEsquemaTramo = adicionarParadaEsquemaTramo(lsParadaEsquema,paradaAlterada , esquemaCorrida, (Ruta) cmbRuta.getSelectedItem().getValue(), plataforma, tipoPassagem, listParadaEsquemaComNovaParada);
ItemEditarCorridaTramo itemEditarCorridaTramo = new ItemEditarCorridaTramo(); ItemEditarCorridaTramo itemEditarCorridaTramo = new ItemEditarCorridaTramo();
itemEditarCorridaTramo.setLsEsquemaTramoNova(lsEsquemaTramo); itemEditarCorridaTramo.setLsEsquemaTramoNova(lsEsquemaTramo);
itemEditarCorridaTramo.setAdicionado(true); itemEditarCorridaTramo.setAdicionado(true);
@ -1604,37 +1655,9 @@ public class EditarCorridaController extends MyGenericForwardComposer {
args.put("paradaEsquema", pe); args.put("paradaEsquema", pe);
args.put("esquemaTramoList", esquemaTramoList); args.put("esquemaTramoList", esquemaTramoList);
args.put("sequenciaSize", sequenciaSize); args.put("sequenciaSize", sequenciaSize);
ItemEditarCorridaTramo itemEditarCorridaTramo = new ItemEditarCorridaTramo();
args.put("itemEditarCorridaTramo", itemEditarCorridaTramo);
try { openWindow("/gui/esquema_operacional/tiempoEstanciaTramo.zul",
Labels.getLabel("editarCatalogoDeRutaController.lhTiempoEstancia"), args, MODAL);
Window dialog = (Window)Executions.createComponents(
"/gui/esquema_operacional/tiempoEstanciaTramo.zul", null, args);
dialog.doModal();
} catch (SuspendNotAllowedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//openWindow("/gui/esquema_operacional/tiempoEstanciaTramo.zul",
// Labels.getLabel("editarCatalogoDeRutaController.lhTiempoEstancia"), args, MODAL);
itemEditarCorridaTramo = (ItemEditarCorridaTramo) args.get("itemEditarCorridaTramo");
if(itemEditarCorridaTramo!=null && itemEditarCorridaTramo.isTramoEditado()) {
itemEditarCorridaTramo.setParadaId(pe.getParada().getParadaId());
itemEditarCorridaTramo.setTramoEditado(true);
if(itemEditarCorridaTramoList ==null) {
itemEditarCorridaTramoList = new ArrayList<ItemEditarCorridaTramo>();
}
itemEditarCorridaTramoList.add(itemEditarCorridaTramo);
}
} }
public void onChange$cmbRuta(Event ev) { public void onChange$cmbRuta(Event ev) {
@ -1681,12 +1704,6 @@ public class EditarCorridaController extends MyGenericForwardComposer {
Messagebox.OK, Messagebox.EXCLAMATION); Messagebox.OK, Messagebox.EXCLAMATION);
} }
lsEsquemaTramo = generaEsquemaTramoCorrecto(lsParadaEsquema, esquemaCorrida); lsEsquemaTramo = generaEsquemaTramoCorrecto(lsParadaEsquema, esquemaCorrida);
ItemEditarCorridaTramo itemEditarCorridaTramo = new ItemEditarCorridaTramo();
itemEditarCorridaTramo.setParadaId(pe.getParada().getParadaId());
itemEditarCorridaTramo.setDescParada(pe.getParada().getDescparada());
itemEditarCorridaTramo.setExcluido(true);
itemEditarCorridaTramoList.add(itemEditarCorridaTramo);
itemEditarCorridaTramo.setLsEsquemaTramoNova(lsEsquemaTramo);
selecionarRutaSequenciaForaEsqCorrida(); selecionarRutaSequenciaForaEsqCorrida();
} catch (Exception e) { } catch (Exception e) {
@ -1754,12 +1771,12 @@ public class EditarCorridaController extends MyGenericForwardComposer {
private List<EsquemaTramo> adicionarParadaEsquemaTramo( private List<EsquemaTramo> adicionarParadaEsquemaTramo(
List<ParadaEsquema> listParadaEsquema, Parada novaParada, List<ParadaEsquema> listParadaEsquema, Parada novaParada,
EsquemaCorrida ec, Ruta ruta, String plataforma, String tipoPassagem) { EsquemaCorrida ec, Ruta ruta, String plataforma, String tipoPassagem, List<ParadaEsquema> listParadaEsquemaComNovaParada) {
List<EsquemaTramo> result = new ArrayList<EsquemaTramo>(); List<EsquemaTramo> result = new ArrayList<EsquemaTramo>();
lsRutaSecuencia = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta); lsRutaSecuencia = rutaSecuenciaService.buscarSecuenciaOrdenado(ruta);
List<ParadaEsquema> listParadaEsquemaComNovaParada = new ArrayList<ParadaEsquema>();
Short secuencia = 0; Short secuencia = 0;
@ -1769,7 +1786,6 @@ public class EditarCorridaController extends MyGenericForwardComposer {
// vez // vez
Integer indiceSecuencia = null; Integer indiceSecuencia = null;
for (int i = 0; i < lsRutaSecuencia.size(); i++) { for (int i = 0; i < lsRutaSecuencia.size(); i++) {
ItemEditarCorridaTramo itemEditarCorridaTramo = new ItemEditarCorridaTramo();
RutaSecuencia rutaSecuencia = lsRutaSecuencia.get(i); RutaSecuencia rutaSecuencia = lsRutaSecuencia.get(i);
if (rutaSecuencia.getTramo().getOrigem().equals(novaParada)) { if (rutaSecuencia.getTramo().getOrigem().equals(novaParada)) {
ParadaEsquema paradaEsquema = new ParadaEsquema(); ParadaEsquema paradaEsquema = new ParadaEsquema();
@ -1779,10 +1795,6 @@ public class EditarCorridaController extends MyGenericForwardComposer {
paradaEsquema.setParada(novaParada); paradaEsquema.setParada(novaParada);
paradaEsquema.setPlataforma(plataforma); paradaEsquema.setPlataforma(plataforma);
paradaEsquema.setTipoPassagem(tipoPassagem); paradaEsquema.setTipoPassagem(tipoPassagem);
itemEditarCorridaTramo.setParadaId(novaParada.getParadaId());
itemEditarCorridaTramo.setDescParada(novaParada.getDescparada());
itemEditarCorridaTramo.setAdicionado(true);
itemEditarCorridaTramoList.add(itemEditarCorridaTramo);
listParadaEsquemaComNovaParada.add(paradaEsquema); listParadaEsquemaComNovaParada.add(paradaEsquema);
nuevoAgregado = true; nuevoAgregado = true;
indiceSecuencia = i; indiceSecuencia = i;
@ -1798,7 +1810,7 @@ public class EditarCorridaController extends MyGenericForwardComposer {
} }
} }
} }
ItemEditarCorridaTramo itemEditarCorridaTramo = new ItemEditarCorridaTramo();
if (noExisteTramoAsociado) { if (noExisteTramoAsociado) {
if (indiceSecuencia != null) { if (indiceSecuencia != null) {
if ((lsRutaSecuencia.size() - 1) > indiceSecuencia) { if ((lsRutaSecuencia.size() - 1) > indiceSecuencia) {
@ -1810,9 +1822,6 @@ public class EditarCorridaController extends MyGenericForwardComposer {
paradaEsquema.setParada(rutaSecuencia.getTramo().getDestino()); paradaEsquema.setParada(rutaSecuencia.getTramo().getDestino());
paradaEsquema.setPlataforma(plataforma); paradaEsquema.setPlataforma(plataforma);
listParadaEsquemaComNovaParada.add(paradaEsquema); listParadaEsquemaComNovaParada.add(paradaEsquema);
itemEditarCorridaTramo.setParadaId(novaParada.getParadaId());
itemEditarCorridaTramo.setAdicionado(true);
itemEditarCorridaTramoList.add(itemEditarCorridaTramo);
} }
} }
} }
@ -1826,9 +1835,6 @@ public class EditarCorridaController extends MyGenericForwardComposer {
paradaEsquema.setTipoPassagem(tipoPassagem); paradaEsquema.setTipoPassagem(tipoPassagem);
listParadaEsquemaComNovaParada.add(paradaEsquema); listParadaEsquemaComNovaParada.add(paradaEsquema);
itemEditarCorridaTramo.setParadaId(novaParada.getParadaId());
itemEditarCorridaTramo.setAdicionado(true);
itemEditarCorridaTramoList.add(itemEditarCorridaTramo);
} }
if (!listParadaEsquema.isEmpty()) { if (!listParadaEsquema.isEmpty()) {
secuencia++; secuencia++;