Dúvida de sobreposição de código

Olá, tou com a seguinte dúvida:
Quero que através desse código que é acionado diariamente, faça uma análise se tenho reservas criadas ontem e passe pra fase de pré-reserva e também que as reservas com check-in ontem passem pra fase de intra.
Porém pode ser que uma reserva tanto tenha sido criada ontem quanto tenha check-in ontem. Nesse caso gostaria que a fase de intra se sobreponha à fase de pré-reserva.
Basta que eu coloque o codigo de intra após o código de pré reserva?

$searchCO = Jestor.loadData('jornada', ['where' => ['criado_em' => date('Y-m-d', time()-(24*3600))]]);
foreach($searchCO as $reserva){
if($reserva['status'] == 'Nova reserva!'){
$atualizarReserva = array(
'id_jornada' => $reserva['id_jornada'],
'status' => 'Pré reserva'
);
Jestor.update('jornada',$atualizarReserva);
}
}
$searchCO = Jestor.loadData('jornada', ['where' => ['checkin_2' => date('Y-m-d', time()-(24*3600))]]);
foreach($searchCO as $reserva){
if($reserva['status'] != 'Concluído' and $reserva['status'] != 'Cancelado' and $reserva['status'] != 'Sem jornada' and $reserva['status'] != 'Manutenção' and $reserva['status'] != 'Bloqueado' and $reserva['status'] != 'Deletado'){
$atualizarReserva = array(
'id_jornada' => $reserva['id_jornada'],
'status' => 'Intra'
);
Jestor.update('jornada',$atualizarReserva);
}
}

Opa @iurirb

Você chegou a testar esse exemplo que você enviou?

como cada operação é única e outras automações (ou até o restante dessa) podem influenciar, não conseguimos garantir que vai funcionar exatamente da forma que você espera, mas a lógica parece correta :slight_smile:

Só vou conseguir testar no dia a dia, mas a maior dúvida mesmo seria se faz sentido essa lógica da sobreposição da ordem das linhas de código.

@marcos.figueiredo acho que não funcionou aqui.
Tive um card que foi criado ha dois dias atras e não alterou a fase.
Percebi que o campo de criado em é de datetime, isso afeta em algo no código?

@iurirb realmente pode ser muita coisa e o código me parece estar certo, mas sem saber o resto do código e todas as outras automações que são disparadas juntas, não conseguimos saber se não tem algum conflito.

Mas, um detalhe que acabei de ver aqui nessa linha:

$searchCO = Jestor.loadData('jornada', ['where' => ['checkin_2' => date('Y-m-d', time()-(24*3600))]]);

Você está fazendo checkin_2 = exatamente ao momento da automação, provavelmente não vai pegar nada mesmo. Você teria que fazer algo como:

$searchCO = Jestor.loadData('jornada', ['where' => ['checkin_2 <=' => date('Y-m-d', time()-(24*3600))]]);

Para pegar coisas <= a hora que a automação roda. Uma sugestão seria até você substituir isso pelo Jestor.fetch, que é um loadData melhor

$conditions = [
   ["field" => "checkin_2", "operator" => "<=", "value" => date('Y-m-d', time()-(24*3600))]
]

$searchCO = Jestor.fetch("jornada",$conditions);

Mas realmente não temos como saber todo o impacto de low-code na sua conta, porque é algo pessoal da conta com todos os detalhes, automações já criadas nela.