Dúvida código em function

Olá!

Gostaria de confirmar se esse código está correto e tbm se teria alguma forma de testar, pois está em um function que so é ativada pela manhã diariamente.

$searchCO = Jestor.loadData('jornada',['where'=>["checkin_2 => date('Y-m-d', time()) AND canal => 'Expedia'"]]);

foreach($searchCO as $reserva){

if($reserva['status'] != 'Concluído' and $reserva['status'] != 'Cancelado' and $reserva['status'] != 'Sem jornada' and $reserva['status'] != 'Check-in' and $reserva['status'] != 'Confirmado!' and $reserva['status'] != 'MANUTENÇÃO'){

$atualizarReserva = array(

'id_jornada' => $reserva['id_jornada'],

'cobrar_expedia' => '1'

);

Jestor.update('jornada',$atualizarReserva);

}

}

Gostaria aqui que marcasse uma checkbox caso o check-in seja pra hoje e o canal seja expedia.

Opa @iurirb

o ideal é você começar a usar o Jestor.fetch, que é mais simples de fazer filtros complexos
no caso, ficaria assim

$conditions = array(
    [ "field" => “checkin_2”,
      "operator" => "==“,
      "value" => date("Y-m-d”)
    ],
    [ "field" => “canal”,
      "operator" => "==“,
      "value" => “Expedia”
    ]    
    
);

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

Aqui na nossa documentação de native methods tem como funciona o fetch: Native Methods

O resto parece ok! Se você quiser testar, você pode ir no low-code e criar um webhook pra essa function, e ativar acessando a url pelo browser mesmo

Entendi, mas como ainda não tenho muito conhecimento precisaria de um suporte online.

Esse código que enviei foi baseado em um código ajudado por vocês.

O modelo que eu enviei funcionaria? Vou tentar marcar uma call na pagina de desenvolvimento, poderia ser?

Opa @iurirb

No caso, é só substituir o loadData pelo que te enviei!

tá dando erro.

Oi @iurirb

Parece que as aspas duplas foram prejudicadas na hora de copiar e colar haha

Consegue deletar as aspas duplas e digitar pra substituir elas?

1 Like

Opa, fiz o teste esses dias e não está funcionando.
Somente alguns registros executam a checkbox. O dia é de hoje mas o canal não é Expedia.
Segue o código.

}
$searchCO = $conditions = array(
    ["field" => "checkin_2",
      "operator" => "==",
      "value" => date("Y-m-d")],
    ["field" => "canal",
      "operator" => "==",
      "value" => "Expedia"]    
    );
$searchCO = Jestor.fetch('jornada',$conditions);
if($reserva['status'] != 'Concluído' and $reserva['status'] != 'Cancelado' and $reserva['status'] != 'Sem jornada' and $reserva['status'] != 'MANUTENÇÃO'){
$atualizarReserva = array(
'id_jornada' => $reserva['id_jornada'],
'cobrar_expedia' => '1'
);
Jestor.update('jornada',$atualizarReserva);
}

Oi @iurirb!

Vi dois erros aqui:

  1. Essa linha onde $searchCo = $conditions = …, seria a partir do $conditions só mesmo
  2. Você faz a busca, mas depois não usa itera os resultados dessa busca

Seria algo como:

$conditions = array(
    ["field" => "checkin_2",
      "operator" => "==",
      "value" => date("Y-m-d")],
    ["field" => "canal",
      "operator" => "==",
      "value" => "Expedia"]    
    );
$searchCO = Jestor.fetch('jornada',$conditions);
foreach($searchCO as $reservaExpedia){
if($reservaExpedia['status'] != 'Concluído' and $reservaExpedia['status'] != 'Cancelado' and $reservaExpedia['status'] != 'Sem jornada' and $reservaExpedia['status'] != 'MANUTENÇÃO'){
$atualizarReserva = array(
'id_jornada' => $reservaExpedia['id_jornada'],
'cobrar_expedia' => '1'
);
Jestor.update('jornada',$atualizarReserva);
}
}
1 Like