Atualização de Valores

(Helder) #1

Galera do SC
Tenho uma aplicação com um form pai “Devedores” e um mestre detalhe “Mensalidades”
Vou tentar ser bem objetivo. No form mensalidades no momento em que faço a inclusão de um débito ele atualiza o form pai “Devedores” no campo dv_valor, conforme o status
if ({ms_status} == “EM ABERTO”)
sc_lookup(dataset,“SELECT SUM(ms_valor) FROM mesalidades
WHERE (dv_id = ‘{dv_id}’)”);
if (empty({dataset}[0][0])) {
$total = 0.0;
} else {
$total = {dataset}[0][0];
}
sc_exec_sql(‘UPDATE devedores SET dv_valor = $total WHERE dv_id = {dv_id}’);
sc_format_num($total, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);
sc_master_value(‘dv_valor’,$total);

Ate aqui blz, mas no momento que altero o status para “PAGO”, não consigo fazer com que o saldo devedor (dv_valor) no form “Devedores” seja atualizado dando baixa apenas no valor pago.
Se puderem me ajudar.
Att
Helder

(system) #2

Olá Helder,

Não entendi direito, quando você altera o status da mensalidade para “Pago” não está atualizando apenas o formulário pai? ou a tabela no banco tbm não está sendo atualizada?

Posso estar viajando aqui, mas tente colocar algo parecido com isso no evento onAfterUpdate do formulário filho:

// Lookup para retornar a soma das mensalidades do devedor em aberto
// obs: alterar condição ms_status = 'EM ABERTO' de acordo com os campos e valores no seu banco de dados

sc_lookup(dataset2,"SELECT SUM(ms_valor) FROM mesalidades WHERE (dv_id = '{dv_id}') AND (ms_status = 'EM ABERTO')");
    if (empty({dataset2}))         // caso não tenha mensalidades em aberto, total = 0
        {
           $total = 0;
        } 
    else                          // caso tenha mensalidades em aberto, total = soma das mensalidades
        {   
          $total = {dataset2}[0][0];
        }
sc_format_num($total, '.', ',',  2,  'S',  '1',  '');  // se vc colocar o tipo do campo no formulário pai como 'moeda', acho que não precisará formatar o valor
sc_master_value('dv_valor',$total);

Essa função deverá calcular (após o update do formulário filho) a soma atual das mensalidades em aberto e enviar pro formulário pai…
Se eu entendi direito a sua dúvida, imagino que isso vai funcionar hehe se não der certo, coloca mais detalhes pra gte dar uma olhada!

Att.
Robson

(Helder) #3

Caro colega Robson,
Obrigado pelo interesse em ajudar, vou tentar e lhe retorno…
Att
Helder