diff --git a/pom.xml b/pom.xml index 3ccdefd25..8dc07bba6 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 br.com.rjconsultores ModelWeb - 1.105.4 + 1.106.0 diff --git a/src/com/rjconsultores/ventaboletos/service/CorridaTramoService.java b/src/com/rjconsultores/ventaboletos/service/CorridaTramoService.java index 8d8a032da..4c3b8d69a 100644 --- a/src/com/rjconsultores/ventaboletos/service/CorridaTramoService.java +++ b/src/com/rjconsultores/ventaboletos/service/CorridaTramoService.java @@ -18,6 +18,6 @@ public interface CorridaTramoService extends GenericService criaCorridaTramoList(Autobus autobus, Date dataGeracao, Date fechorSalidaOriginalH , List lsEsquemaTramo, Nodo nodo, ClaseServicio claseServicio, String statusCorrida); - public List recriaCorridaTramo(EsquemaCorrida esquemaCorrida, Date dataCorrida, List esquemaTramoNovoList, Corrida corrida, List lsParadaEsquemaOrignal); + public List recriaCorridaTramo(EsquemaCorrida esquemaCorrida, Date dataCorrida, List esquemaTramoNovoList, Corrida corrida, List lsParadaEsquemaOrignal, Date horaSalidaOriginal); } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CorridaTramoServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CorridaTramoServiceImpl.java index 27289e82e..dfd26bf34 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CorridaTramoServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CorridaTramoServiceImpl.java @@ -1,5 +1,6 @@ package com.rjconsultores.ventaboletos.service.impl; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; @@ -33,6 +34,8 @@ import com.rjconsultores.ventaboletos.service.CorridaService; import com.rjconsultores.ventaboletos.service.CorridaTramoService; import com.rjconsultores.ventaboletos.service.TramoServicioService; import com.rjconsultores.ventaboletos.utilerias.ActivoUtil; +import com.rjconsultores.ventaboletos.utilerias.ApplicationProperties; +import com.rjconsultores.ventaboletos.utilerias.CustomEnum; import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.utilerias.HoraSistema; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; @@ -100,11 +103,16 @@ public class CorridaTramoServiceImpl implements CorridaTramoService { @Override @Transactional - public List recriaCorridaTramo(EsquemaCorrida esquemaCorrida, Date dataCorrida, List esquemaTramoNovoList, Corrida corrida, List lsEsquemaTramoOrignal) { + public List recriaCorridaTramo(EsquemaCorrida esquemaCorrida, Date dataCorrida, List esquemaTramoNovoList, Corrida corrida, List lsEsquemaTramoOrignal, Date horaSalidaOriginal) { List corridaTramoListAntigas = corridaTramoDAO.buscaCorridaTramoByFecCorridaECorridaId(dataCorrida, esquemaCorrida.getNumCorrida(), false); //Caso encontre nas CorridaTramo existente algum trecho vendido que não está nas configurações do serviço retorna null - if(!validaTramoInexistenteServicoComVenda(esquemaCorrida, dataCorrida, lsEsquemaTramoOrignal, corridaTramoListAntigas)) { - return corridaTramoListAntigas; + + boolean permiteRecriarCorridaTramo= !isPermiteAlterarHorarioCorridaComVendas() ? Boolean.TRUE : (isPermiteAlterarHorarioCorridaComVendas() && validarSeHorarioCorridaFoiAlterado(esquemaCorrida.getHorasalida(), horaSalidaOriginal)? Boolean.FALSE :Boolean.TRUE); + + if(permiteRecriarCorridaTramo) { + if(!validaTramoInexistenteServicoComVenda(esquemaCorrida, dataCorrida, lsEsquemaTramoOrignal, corridaTramoListAntigas)) { + return corridaTramoListAntigas; + }; } inativaCorridasTramos(corridaTramoListAntigas); @@ -529,4 +537,22 @@ public class CorridaTramoServiceImpl implements CorridaTramoService { } return lsCorridaTramo; } + + private boolean validarSeHorarioCorridaFoiAlterado(Date horaSalidaAtual, Date horaSalidaOriginal) { + try { + if(DateUtil.isIgual(DateUtil.getDateFromString(DateUtil.getStringDate(horaSalidaAtual,DateUtil.HHmm), DateUtil.HHmm),DateUtil.getDateFromString(DateUtil.getStringDate(horaSalidaOriginal,DateUtil.HHmm), DateUtil.HHmm))) { + return Boolean.FALSE; + } + } catch (ParseException e) { + log.error("Erro ao fazer parse :"+e); + return Boolean.FALSE; + } + return Boolean.TRUE; + } + private boolean isPermiteAlterarHorarioCorridaComVendas() { + if (ApplicationProperties.getInstance().isCustomHabilitado(CustomEnum.IS_PERMITE_ALTERAR_HORARIO_CORRIDA_COM_VENDAS.getDescricao(), Boolean.FALSE)) { + return Boolean.TRUE; + } + return Boolean.FALSE; + } } diff --git a/src/com/rjconsultores/ventaboletos/utilerias/CustomEnum.java b/src/com/rjconsultores/ventaboletos/utilerias/CustomEnum.java index f5b92e98c..33ef4e9a6 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/CustomEnum.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/CustomEnum.java @@ -164,7 +164,9 @@ public enum CustomEnum { * * @return */ - USA_BLOQUEIO_TRECHO_CONEXAO("usaBloqueioTrechoConexao"); + USA_BLOQUEIO_TRECHO_CONEXAO("usaBloqueioTrechoConexao"), + + IS_PERMITE_ALTERAR_HORARIO_CORRIDA_COM_VENDAS("isPermiteAlterarHorarioCorridaComVendas"); private String descricao;