// lookup
sc_lookup(HORAF, "SELECT SUBTIME(adm_os.hora_final_atendimento,adm_clientes.hora_final_atendimento_m) AS total_horas
FROM adm_os INNER JOIN adm_clientes ON (adm_os.id_cliente = adm_clientes.ClienteId) WHERE adm_os.id = ‘{id}’ AND (adm_os.id_unidade = ‘2’) AND (adm_os.tipo_contrato_m = ‘F’) AND (adm_clientes.qtde_contrato_m > ‘(NULL)’) ");
// testando o lookup
if (empty({HORAF})) // se for vazio, manda gravar hora zerada e atualizar o registro{
$TOTAL_HORAS = “00:00:00”;
sc_exec_sql("Update adm_os set hora_adic_atendimento = ‘$TOTAL_HORAS’ where id = ‘{id}’ ");
}
else // se não for vazio, pega o retorno do lookup e atualiza o registro{
$TOTAL_HORAS = {HORAF[0][0]};
sc_exec_sql("Update adm_os set hora_adic_atendimento =’$TOTAL_HORAS’ where id = ‘{id}’ ");
}
Perceba que o erro é questão de lógica. Veja como vc fez:
sc_lookup(HORAF, "SELECT SUBTIME(adm_os.hora_final_atendimento,adm_clientes.hora_final_atendimento_m) AS total_horas
FROM adm_os INNER JOIN adm_clientes ON (adm_os.id_cliente = adm_clientes.ClienteId) WHERE adm_os.id = ‘{id}’ AND (adm_os.id_unidade = ‘2’) AND (adm_os.tipo_contrato_m = ‘F’) AND (adm_clientes.qtde_contrato_m > ‘(NULL)’) ");
$TOTAL_HORAS = {HORAF[0][0]}; // AQUI FICA DANDO ERRO DE VARIÁVEL NÃO DEFINDA PORQUE INDEPENDENTE DO RESULTADO DO DATASET VC ATRIBUI O RETORNO A VARIÁVEL.
if(!empty($TOTAL_HORAS)) // AQUI VC ESTÁ DIZENDO NÃO VAZIO, ENTÃO O CÓDIGO DO ELSE TERIA QUE ESTAR NO IF
{ if ($TOTAL_HORAS > “00:00:00”) {
sc_exec_sql("Update adm_os set hora_adic_atendimento = ‘00:00:00’ where id = ‘{id}’ ");
}
else
{
sc_exec_sql("Update adm_os set hora_adic_atendimento =’$TOTAL_HORAS’ where id = ‘{id}’ ");
}
}