Mestre\detalhes - se usuário atualizar o mestre modifica valores...

Olá, estou com dificuldade em solucionar esse caso:

Tenho um evento em php, para totalizar todos recebimentos e lançar no mestre, até ai tudo bem
depois que lanço no detalhe faz a somatória e grava no mestre, porém se o usuário clicar n botão
Salvar… Exemplo:

Valor pago=2,00

Ao clicar no botão Salvar do Mestre o mesmo valor fica com 200,00

Fiz busca no fórum e não conseguir resolver, alguém pode ajuda.

Detalhes:

Evento em PHP
sc_lookup(dataset,“SELECT SUM(juros+valor_recto)
FROM receber
WHERE cod_cliente = [glo_cliente]”);

if( !empty({dataset[0][0]}) ) {
$total_1 ={dataset[0][0]};

sc_trunc_num($total_1,2);
sc_master_value(‘valor_pago’, $total_1);

sc_exec_sql(“UPDATE clientes
SET valor_pago = $total_1
WHERE codigo = [glo_cliente]”);

//atualiza valor restante ///////////////////

sc_lookup(dataset2,"SELECT (valor_empr-valor_pago)
                    FROM clientes
	     	 	    WHERE codigo =[glo_cliente]");

if (empty({dataset2[0][0]})) {
$total_2 =0;
sc_trunc_num($total_2,2);
} else {
$total_2 ={dataset2[0][0]};
sc_trunc_num($total_2,2);
}	

sc_exec_sql("UPDATE clientes 
             SET valor_restante = $total_2
             WHERE codigo =[glo_cliente]");

sc_master_value('valor_restante', $total_2);

}

Na aplicação Mestre não nada que faça isso.
No banco de dados tipo decimal(10,2)

Variável global session marca;
scriptcase versão 8.1.017

Obrigado e aguardo…
Leão

Leão,
Pelo que vi você está entrando o valor como R$ 2,00.
Veja que conforme o banco de dados e o próprio php R$ 2.00 é diferente de R$ 2,00.
Para maior compatibilidade tente user o valor como R$ 2.00 (com ponto no lugar da virgula) e veja se dá certo.
Aqui http://dev.mysql.com/doc/refman/5.7/en/fixed-point-types.html pode ver que os valores são guardados no banco assim: R$ 2,00 mostrado pelo scriptcase será guardado como 2.00
Cito do link anterior: Standard SQL requires that DECIMAL(5,2) be able to store any value with five digits and two decimals, so values that can be stored in the salary column range from -999.99 to 999.99.
Se o campo não está sendo convertido pelo scriptcase converta ele para 2.00 e tente gravar.

Olá Alexandre, já tinha lido anteriormente e resolveu a questão anterior, mas essa achei um exemplo e deu certo, só tem um detalhe
ao modificar na aplicação detalhe ele fecha vai para o mestre mas tudo bem. Espero que alguém ache um solução para permanecer
na detalhe, veja abaixo a solução:

sc_lookup(dataset,“SELECT SUM(juros+valor_recto)
FROM receber
WHERE cod_cliente = ‘[glo_cliente]’”);

if( !empty({dataset[0][0]}) ) {
$total_1 ={dataset[0][0]};

sc_trunc_num($total_1,2);
sc_master_value(‘valor_pago’, $total_1);

//print_r($total_1);
sc_exec_sql(“UPDATE clientes
SET valor_pago = $total_1
WHERE codigo = ‘[glo_cliente]’”);

//atualiza valor restante ///////////////////

sc_lookup(dataset2,"SELECT (valor_empr-valor_pago)
                    FROM clientes
	     	 	    WHERE codigo ='[glo_cliente]'");

if (empty({dataset2[0][0]})) {
$total_2 =0;
sc_trunc_num($total_2,2);
} else {
$total_2 ={dataset2[0][0]};
sc_trunc_num($total_2,2);
}	
//print_r($total_2);	

sc_exec_sql("UPDATE clientes 
             SET valor_restante = $total_2
             WHERE codigo ='[glo_cliente]'");

sc_master_value('valor_restante', $total_2);

//Alexandre essas duas instruções.
sc_commit_trans ("");
sc_redir(form_clientes.php, “”, “_parent”);

}

Obrigado,
Leão

Leao bom dia,

Experimente retirar somente o SC_REDIR.

Olá Kleyber, ao tirar ocorre o mesmo erro.

Obrigado,
Leão

Olá, alguém sabe como resolver isso, se tiver
o sc_redir, faz a totalização errada, conforme acima.

Obrigado e…
Leão

Olá, preciso de uma solução, agora que crie o menu ao salvar o comando abaixo, veja e oculta inclusive o menu superior.

sc_commit_trans ("");
sc_redir(form_clientes.php, “”, “_parent”);

se tirar sc_redir, não calcula, como resolver isso?

Obrigado,
Leão

aguardando…