[RESOLVIDO] Checar o status

Boa noite pessoal, estou com um problema para checar o status de um lançamento, onde tenho 4 tipo de status, sendo eles:
D = Distribuído;
DV = Devolvido;
R = Recebido;
C = Cancelado.
Ao realizar um lançamento preciso checar esse status, retornando se for D, R ou C. Segue o código que fiz, porém as vezes ele funciona outras, não. Se alguém poder me ajudar, desde já agradeço.

$check = "SELECT status, num_cartela FROM cartelas_geral WHERE num_cartela = ‘{num_cartela}’ ";
sc_lookup(rs,$check);

if (isset({rs[0][0]}) == ‘D’) {
sc_error_message(“Essa cartela está com o Status DISTRIBUÍDO!!, Favor verificar!!!”);
sc_set_focus(‘num_cartela’);
//{status_cartela} = ‘’;
sc_error_exit();
}
elseif(isset({rs[0][0]}) == ‘R’)
{
sc_error_message(“Essa cartela está com o Status RECEBIDO, Favor verificar!!!”);
sc_set_focus(‘num_cartela’);
//{status_cartela} = ‘’;
sc_error_exit();
}
elseif(isset({rs[0][0]}) == ‘C’)
{
sc_error_message(“Essa cartela está com o Status CANCELADO, Favor verificar!!!”);
sc_set_focus(‘num_cartela’);
//{status_cartela} = ‘’;
sc_error_exit();

}

E o Dv?

Eu usaria switch

E se a instrução sql não tiver retorno.

O DV está em um outro método, onde se for DV ele editará o status, caso não seja nenhum será um novo laçamento

Boa tarde Haroldo, fiz o código com o switch, onde ele critica quando tem que criticar, e grava no momento que tem que gravar. Porém tenho alguns campos a serem populados no formulário, para serem usados de referencia, como a última cartela lançada, o valor da cartela, quantidade no lançamento, valor total lançado, a ultima lança da está no trecho do código do switch, os demais em um método soma. Quando não verifico o status e só lanço nas tabela, esse campos são populados normalmente. Segue o código switch como ficou.

//Método grava cartela
sc_lookup(dset, "SELECT status, num_cartela FROM cartelas_geral WHERE num_cartela = ‘{num_cartela}’ ");
$id = {dset[0][0]};
//echo $id;
switch ($id) {
case ‘D’:
//Pagamento a Vista
sc_error_message(“Essa cartela está com o Status DISTRIBUÍDO!!, Favor verificar!!!”);
sc_set_focus(‘num_cartela’);
sc_error_exit();
break;
case ‘R’:
//Pagamento 30% & 70%
sc_error_message(“Essa cartela está com o Status RECEBIDO!!, Favor verificar!!!”);
sc_set_focus(‘num_cartela’);
sc_error_exit();
break;
case ‘C’:
//Pagamento com 15 dias
sc_error_message(“Essa cartela está com o Status CANCELADO!!, Favor verificar!!!”);
sc_set_focus(‘num_cartela’);
sc_error_exit();
break;
case ‘DV’:

//Atualiza a tabela carela geral

	$update_table  = 'cartelas_geral';     
	$update_where  = "num_cartela = '{num_cartela}'"; 
	$update_fields = array(   
		 "status        = 'D'", 
		 "dt_status     = '{dt_cadastro}'",
		 "valor_cartela = '{valor}'",
		 "pessoas_fk    = '{pessoa_fk}' ",
		 "recibo_fk     = '{id_ent_recibo}'",
	 );

	// Update record
	$update_sql = 'UPDATE ' . $update_table
		. ' SET '   . implode(', ', $update_fields)
		. ' WHERE ' . $update_where;
	sc_exec_sql($update_sql);

	{ultima_lancada} = {num_cartela};
	{num_cartela} = " ";
	sc_set_focus('num_cartela');
	sc_ajax_javascript('Refresh_Cartela');

	break;
default:

//insere os dados na tabela cartelas geral
$insert_table = ‘cartelas_geral’; // Table name
$insert_fields = array( // Field list, add as many as needed
‘dt_cadastro’ => " ‘{dt_cadastro}’ ",
‘num_cartela’ => " ‘{num_cartela}’ ",
‘status’ => " ‘D’ ",
‘dt_status’ => " ‘{dt_cadastro}’ ",
‘pessoas_fk’ => " ‘{pessoa_fk}’ ",
‘exercicio_fk’ => " ‘{exercicio_fk}’ ",
‘promotor_fk’ => " ‘{promotor_fk}’ ",
‘valor_cartela’ => " ‘{valor}’ “,
‘recibo_fk’ => " ‘{id_ent_recibo}’”,
);

	//Insert record
	$insert_sql = 'INSERT INTO ' . $insert_table
	  . ' ('   . implode(', ', array_keys($insert_fields))   . ')'
	  . ' VALUES ('    . implode(', ', array_values($insert_fields)) . ')';

		sc_exec_sql($insert_sql);

//Insere dados na tabela movimento de cartelas*

$insert_table  = 'mov_cartelas';      // Table name
$insert_fields = array(   // Field list, add as many as needed    
	'dt_cadastro'   => " '{dt_cadastro}' ",
	'num_cartela'   => " '{num_cartela}' ",
	'status'        => " 'D' ",
	'pessoas_fk'    => " '{pessoa_fk}' ",
	'exercicio_fk'  => " '{exercicio_fk}' ",
	'promotor_fk'   => " '{promotor_fk}' ",
	'recibo_fk'     => " '{id_ent_recibo}' ",
	'valor_cartela' => " '{valor}' ",
 );

//Insert record
$insert_sql = 'INSERT INTO ' . $insert_table
. ' ('   . implode(', ', array_keys($insert_fields))   . ')'
. ' VALUES ('    . implode(', ', array_values($insert_fields)) . ')';

    sc_exec_sql($insert_sql);

//Insere os dados na tabela detalhe da distribuição

$insert_table  = 'ent_cartelas_detalhe';      // Table name
$insert_fields = array(   // Field list, add as many as needed    
'dt_cadastro'   => " '{dt_cadastro}' ",
'num_cartela'   => " '{num_cartela}' ",
'status'        => " 'D' ",
'pessoas_fk'    => " '{pessoa_fk}' ",
'exercicio_fk'  => " '{exercicio_fk}' ",
'promotor_fk'   => " '{promotor_fk}' ",
'recibo_fk'     => " '{id_ent_recibo}' ",
'valor_cartela' => " '{valor}' ",
'recebido'      => " 'N' ",
 );

 //Insert record
	$insert_sql = 'INSERT INTO ' . $insert_table
	  . ' ('   . implode(', ', array_keys($insert_fields))   . ')'
	  . ' VALUES ('    . implode(', ', array_values($insert_fields)) . ')';

	sc_exec_sql($insert_sql);
	{ultima_lancada} = {num_cartela};
	{num_cartela} = " ";
	sc_set_focus('num_cartela');
	sc_ajax_javascript('Refresh_Cartela');
	break;

}

Obrigado pela dica Haroldo, revisei o código e ficou resolvido com o switch.

1 Curtida