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;