Merge pull request 'AL-2734' (!245) from AL-2734 into master
Reviewed-on: adm/VentaBoletosAdm#245 Reviewed-by: Valdir Cordeiro <valdir.cordeiro@totvs.com.br>master 1.11.9
commit
0ff725aef6
2
pom.xml
2
pom.xml
|
@ -4,7 +4,7 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>br.com.rjconsultores</groupId>
|
||||
<artifactId>ventaboletosadm</artifactId>
|
||||
<version>1.11.8</version>
|
||||
<version>1.11.9</version>
|
||||
<packaging>war</packaging>
|
||||
|
||||
<properties>
|
||||
|
|
|
@ -948,65 +948,49 @@ public class EditarCorridaController extends MyGenericForwardComposer {
|
|||
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
|
||||
Date dataIter = Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
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 {
|
||||
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
|
||||
if(Boolean.TRUE.equals(esquemaCorrida.getPisoExtra()) && boletoService.isExisteBoletoPorCorrida(esquemaCorrida.getNumCorridaPisoExtra(), dataIter)) {
|
||||
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);
|
||||
continue;
|
||||
}
|
||||
//Valida e apaga corrida caso exista
|
||||
TarefaGeracaoCorridaVO tarefaErro= validaApagaCorridaAgerar(esquemaCorrida.getNumCorrida(), dataIter);
|
||||
if(tarefaErro !=null) {
|
||||
tarefaErros.add(tarefaErro);
|
||||
continue;
|
||||
}
|
||||
//Valida e apaga corrida piso extra caso exista
|
||||
tarefaErro= validaApagaCorridaAgerar(esquemaCorrida.getNumCorridaPisoExtra(), dataIter);
|
||||
if(tarefaErro !=null) {
|
||||
tarefaErros.add(tarefaErro);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Gerar corrida novamente.
|
||||
List<EsquemaCorrida> esquemaCorridaList = new ArrayList<EsquemaCorrida>();
|
||||
esquemaCorridaList.add(esquemaCorrida);
|
||||
corridaService.generarCorrida(dataIter, esquemaCorridaList, false);
|
||||
String msgSucesso = "Corrida para a data " + DateUtil.getStringDate(dataIter) + " gerada com sucesso";
|
||||
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgSucesso, "OK", "OK" );
|
||||
tarefaSucesso.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);
|
||||
|
@ -1028,6 +1012,40 @@ public class EditarCorridaController extends MyGenericForwardComposer {
|
|||
log.error("Erro ao gerar corrida para a corrida: " + esquemaCorrida.getNumCorrida());
|
||||
}
|
||||
}
|
||||
|
||||
private TarefaGeracaoCorridaVO validaApagaCorridaAgerar(Integer corridaId, Date dataIter) {
|
||||
|
||||
//2 - Apagar corrida caso não exista venda
|
||||
Corrida.Id id = new Corrida.Id(corridaId, dataIter);
|
||||
//3 - Gerar nova corrida somente se a corrida estiver ativa
|
||||
Corrida corrida = corridaService.buscarCorridaAtivaPorId(id);
|
||||
|
||||
if(corrida==null) {
|
||||
String msgErro = "Não econtrado corrida:" + esquemaCorrida.getNumCorrida() + " para a data:" + DateUtil.getStringDate(dataIter);
|
||||
log.error("Geração de corrida via Conf. " + msgErro);
|
||||
return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
|
||||
}
|
||||
|
||||
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);
|
||||
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:" + esquemaCorrida.getNumCorrida() + " data:" + DateUtil.getStringDate(dataIter);
|
||||
return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
|
||||
//log.error("Geração de corrida via Conf. " + msgErro, e);
|
||||
|
||||
}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;
|
||||
}
|
||||
|
||||
private void salvaNovoEsquemaCorrida(Date dataDeFecInicioVigencia, List<EsquemaCorrida> lsEC)
|
||||
throws InterruptedException {
|
||||
|
|
Loading…
Reference in New Issue