fixes bug#AL-4315

master
wallace.henrique 2024-09-13 20:18:25 -03:00
parent 19945e1569
commit ae88472818
4 changed files with 34 additions and 6 deletions

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId> <groupId>br.com.rjconsultores</groupId>
<artifactId>ModelWeb</artifactId> <artifactId>ModelWeb</artifactId>
<version>1.105.4</version> <version>1.106.0</version>
<distributionManagement> <distributionManagement>
<repository> <repository>

View File

@ -18,6 +18,6 @@ public interface CorridaTramoService extends GenericService<CorridaTramo, Intege
public List<CorridaTramo> criaCorridaTramoList(Autobus autobus, Date dataGeracao, Date fechorSalidaOriginalH , public List<CorridaTramo> criaCorridaTramoList(Autobus autobus, Date dataGeracao, Date fechorSalidaOriginalH ,
List<EsquemaTramo> lsEsquemaTramo, Nodo nodo, ClaseServicio claseServicio, String statusCorrida); List<EsquemaTramo> lsEsquemaTramo, Nodo nodo, ClaseServicio claseServicio, String statusCorrida);
public List<CorridaTramo> recriaCorridaTramo(EsquemaCorrida esquemaCorrida, Date dataCorrida, List<EsquemaTramo> esquemaTramoNovoList, Corrida corrida, List<EsquemaTramo> lsParadaEsquemaOrignal); public List<CorridaTramo> recriaCorridaTramo(EsquemaCorrida esquemaCorrida, Date dataCorrida, List<EsquemaTramo> esquemaTramoNovoList, Corrida corrida, List<EsquemaTramo> lsParadaEsquemaOrignal, Date horaSalidaOriginal);
} }

View File

@ -1,5 +1,6 @@
package com.rjconsultores.ventaboletos.service.impl; package com.rjconsultores.ventaboletos.service.impl;
import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; 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.CorridaTramoService;
import com.rjconsultores.ventaboletos.service.TramoServicioService; import com.rjconsultores.ventaboletos.service.TramoServicioService;
import com.rjconsultores.ventaboletos.utilerias.ActivoUtil; 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.DateUtil;
import com.rjconsultores.ventaboletos.utilerias.HoraSistema; import com.rjconsultores.ventaboletos.utilerias.HoraSistema;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
@ -100,11 +103,16 @@ public class CorridaTramoServiceImpl implements CorridaTramoService {
@Override @Override
@Transactional @Transactional
public List<CorridaTramo> recriaCorridaTramo(EsquemaCorrida esquemaCorrida, Date dataCorrida, List<EsquemaTramo> esquemaTramoNovoList, Corrida corrida, List<EsquemaTramo> lsEsquemaTramoOrignal) { public List<CorridaTramo> recriaCorridaTramo(EsquemaCorrida esquemaCorrida, Date dataCorrida, List<EsquemaTramo> esquemaTramoNovoList, Corrida corrida, List<EsquemaTramo> lsEsquemaTramoOrignal, Date horaSalidaOriginal) {
List<CorridaTramo> corridaTramoListAntigas = corridaTramoDAO.buscaCorridaTramoByFecCorridaECorridaId(dataCorrida, esquemaCorrida.getNumCorrida(), false); List<CorridaTramo> 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 //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); inativaCorridasTramos(corridaTramoListAntigas);
@ -529,4 +537,22 @@ public class CorridaTramoServiceImpl implements CorridaTramoService {
} }
return lsCorridaTramo; 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;
}
} }

View File

@ -164,7 +164,9 @@ public enum CustomEnum {
* *
* @return * @return
*/ */
USA_BLOQUEIO_TRECHO_CONEXAO("usaBloqueioTrechoConexao"); USA_BLOQUEIO_TRECHO_CONEXAO("usaBloqueioTrechoConexao"),
IS_PERMITE_ALTERAR_HORARIO_CORRIDA_COM_VENDAS("isPermiteAlterarHorarioCorridaComVendas");
private String descricao; private String descricao;