Soma, Divisao, Diminuição e Multiplicação no scriptcase

Oi Pessoal,

Gostaria de fazer somatorios e multiplicar valores para um sistema de estoque bem simples, como faço isso no SC?
Desculpe a ignorancia mais nao sei bem programar.

att

Eu tenho a seguinte estrutura:

Tabela de Produtos
Tabela de Estoques (Locais de Estoque x Produto) <- saldos
Tabela de Movimentos (Data, Hora, Local Estoque, Produto, quantidade, saldo)

Com uma trigger em Movimentos ao fazer um insert nessa tabela, eu leio o local, e atualizo o saldo.

[code]DELIMITER $$

USE iwerp_cinco$$

CREATE
DEFINER=iwroot@%
TRIGGER iwerp_cinco.estoqmov_bef_ins
BEFORE INSERT ON iwerp_cinco.estoqmov
FOR EACH ROW
BEGIN

DECLARE varProdutoId integer;
DECLARE varLocalId integer;
DECLARE varEstoquesId integer;
DECLARE varSaldo decimal(14,4);
DECLARE varQuantidade decimal(14,4);
DECLARE varCodigoTrans varchar(15);
DECLARE varEntradaSaida char(1);

SELECT Parametros INTO varEntradaSaida FROM geraltab WHERE Grupo=‘ESTOQUETRANSAC’ AND Codigo=NEW.GTEstoqTransCod;

IF (NEW.Estorno)
THEN
SELECT codigo INTO varCodigoTrans FROM geraltab WHERE grupo=‘ESTOQUETRANSAC’ AND Parametros=CONCAT(‘ESTORNO:’,NEW.GTEstoqTransCod);
Set NEW.GTEstoqTransCod=varCodigoTrans;
IF varEntradaSaida = ‘E’ THEN SET varEntradaSaida =‘S’; ELSE SET varEntradaSaida=‘E’; END IF;
END IF;

Set NEW.Transacao=varEntradaSaida;

set varQuantidade=(CASE WHEN new.Transacao = ‘E’ THEN new.Quantidade ELSE new.Quantidade*-1 END);
Set varProdutoId=(select Id from produtos where Codigo = new.ProdutoCodigo);
Set varLocalId=(SELECT Id FROM geraltab WHERE grupo = ‘EstoqueLocal’ and Codigo = new.GTLocalCodigo);

SELECT ID, Saldo+varQuantidade
INTO varEstoquesId, varSaldo
FROM estoques
WHERE GTEstoqueLocalId = varLocalId and ProdutoId = varProdutoId;

IF (varEstoquesId > 0)
THEN UPDATE estoques SET Saldo = varSaldo WHERE id = varEstoquesId;
ELSE INSERT INTO estoques (GTEstoqueLocalId,ProdutoId,Saldo)
VALUE (varLocalId,varProdutoId,varQuantidade);
END IF;

SET NEW.Saldo = (CASE WHEN varSaldo IS NULL THEN varQuantidade ELSE varSaldo END);
SET NEW.DTUpdate= Now();
END$$
[/code]

O SC só faz o insert.

Estou perdida Haroldo,

Queria fazer este exemplo q vc me deu para ter a noção de como fica.
Aonde eu coloco este código?

Estou fazendo um form com os seguintes dados: Tenho dado sde Entrada e Saida e o valor final

Arquivo em anexo

Como posso fazer este cálculo?


valesEstoque.png

isso é tudo no banco, não é no sc, faz parte da tabela.

Obrigada

Vou fazer um teste com as tabelas q vc me informou para ver o funcionamento.

Olá,

Eu já tive uma situação simples e no ScriptCase fiz da seguinte forma:

Criei Eventos Ajax onchange nos campos, que no seu caso seriam o Saldo Início, Entrada e Tranfer para que colocassem o valor calculado no campo Total.

Seria mais ou menos assim:

{Campo_Total}={Valor_Campo_Inicio}+{Valor_Campo_Entrada}-{Valor_Campo_Transfer};

Desta forma, se for alterado qualquer um dos campos o Campo Total é atualizado.

A forma que o Mestre Haroldo explicou, com um trigger no Banco de Dados é a melhor e mais segura, sem precisar criar os Eventos Ajax nos campos, mas dá para fazer no ScriptCase da forma acima.

[]'s