[RESOLVIDO] Mestre/Detalhe, Controle para Não excluir item do Detalhe em relação ao Mestre

Estou trabalhando em uma interface Mestre/Detalhe…

Criei uma condição em Métodos PHP e chamei para executar no evento onBeforeDelete para não excluir itens do detalhe somente em uma situação em relação no Mestre.

O código desenvolvido foi este:
if (sc_btn_delete)
{
sc_lookup(RsAtualizaMaster, “SELECT controle_doacao
FROM doacoes, lote
WHERE Id_doacao =’{Iddoacoes_lote}’ and controle_doacao = ‘Finalizada’”);

$cont_doacao={RsAtualizaMaster[0][0]};

if($cont_doacao == “Finalizada”)
{
sc_error_message("=> Doação FINALIZADA, item não pode ser excluido!");
}
else
{
sc_alert(“Item excluído com sucesso!”);
}
}

No tratamento para não excluir está funcionando certinho, OK.

Mas quando poderia excluir está acontecendo algo que não estou conseguindo resolver;

a) Da forma como está o código é exibido a mensagem de exclusão pela sc_alert(“Item excluído com sucesso!”);
b) Se deixo sem a macro sc_alert(“Item excluído com sucesso!”); é exibido a seguinte mensagem: Undefined offset: 0
c) E nas duas formas anterior (a e b), o item é excluído no Banco de Dados mas continua sendo visualizado nos itens do detalhe, até que seja chamado a tela novamente pelo menu.

Alguém já passou por esta experiência e conseguiu resolver?
Alguém poderia ajudar a resolver esta situação?

Link do vídeo com a falha existente.

Olá,

Proteja a variável cont_doacao o Undefined offset: 0 deve ser nela
if (!empty({RsAtualizaMaster[0][0]})){
$cont_doacao={RsAtualizaMaster[0][0]};
else {
$cont_doacao = “”;
}

Obrigado Pedro Henrrique
O tratamento da matriz de consulta SQL apenas mudou a sua mensagem, que agora passou ser: Use of undefined constant “” - assumed ‘“”’.
E ainda não funcionou a questão de não atualizar a tela do detalhe eliminando o item excluído.
Será que montei o tratamento de maneira errada? veja abaixo:
if (sc_btn_delete)
{
sc_lookup(RsAtualizaMaster, “SELECT controle_doacao
FROM doacoes, lote
WHERE Id_doacao =’{Iddoacoes_lote}’ and controle_doacao = ‘Finalizada’”);

if (!empty({RsAtualizaMaster[0][0]})){
$cont_doacao={RsAtualizaMaster[0][0]};
}
else
{
$cont_doacao = “”;
}

if($cont_doacao == “Finalizada”)
{
sc_error_message("=> Doação FINALIZADA, item não pode ser excluido!");
}
else
{
//sc_alert(“Item excluído com sucesso!”);
}
}

Pedro Henrique, em: $cont_doacao = “”; coloquei aspas simples ‘’ e funcionou. Obrigado pela ajuda.
Você poderia me indicar um tutorial sobre esse detalhe de proteção da variável (erro: Undefined offset: 0)? Não sei nada sobre isso. Ficaria muito agradecido.

Mas já estou imaginado que no caso quando não pode excluir, a mensagem dizendo que não pode ser excluída deveria ocorrer no momento que aparece a mensagem nativa do Scriptcase perguntadndo se deseja excluir SIM ou NÃO. Tem uma macro para substituir esta mensagem nativa?

Ola Ruyter,

Fico feliz que tenha resolvido o seu problema. Em relação deste erro Undefined offset: 0 quando aparece eu sei que é alguma variável que eu estou utilizando seja numa condição ou atribuição de valores e esta variável não existe. Então eu apenas no inicio do código atribuo algum valor a esta variável, ex. $cont_doacao = ‘’;

Em relação a esta mensagem nativa: O sr. pode ir em Aplicação–>Mensagens (Isto vai mudar apenas a mensagem) e alterar o texto.

Muito obrigado!
Ficou agradecido pela ajuda e esclarecimentos…