Boa tarde pessoal gostaria de uma dica com meu probleminha aqui…
Tenho um trigger em mysql onde tenho uma entidade fraca entre duas tabelas, onde são elas ordemdeproducao, produto e ordemdeproducaoitem…
onde quero inserir muitos produtos em muitas ordens, resumindo
CREATE TRIGGER t_adicionaestoqueproduzidos
AFTER UPDATE ON ordemdeproducaoitem
FOR EACH ROW
BEGIN
DECLARE var BOOLEAN;
DECLARE idordem INT;
DECLARE idproduto INT;
SELECT NEW.ordemdeproducaoitem_id FROM ordemdeproducaoitem INTO idordem;
SELECT NEW.produto_produto_id FROM ordemdeproducaoitem WHERE ordemdeproducaoitem_id INTO idproduto;
SELECT ordemdeproducao_statusitempronto FROM ordemdeproducaoitem WHERE ordemdeproducaoitem_id = idordem INTO var;
IF(var)THEN
UPDATE produto SET produto_quantidade= NEW.ordemdeproducao_quantidade + produto_quantidade WHERE produto_id = idproduto;
END IF;
END;$$
CREATE TRIGGER t_adicionaestoqueproduzidos AFTER UPDATE ON ordemdeproducaoitem FOR EACH ROW BEGIN DECLARE var BOOLEAN; DECLARE idordem INT; DECLARE idproduto INT; SELECT NEW.ordemdeproducaoitem_id FROM ordemdeproducaoitem INTO idordem; SELECT NEW.produto_produto_id FROM ordemdeproducaoitem WHERE ordemdeproducaoitem_id INTO idproduto; SELECT ordemdeproducao_statusitempronto FROM ordemdeproducaoitem WHERE ordemdeproducaoitem_id = idordem INTO var; IF(var)THEN UPDATE produto SET produto_quantidade= NEW.ordemdeproducao_quantidade + produto_quantidade WHERE produto_id = idproduto; END IF; END;$$
Minha idéia é a seguinte uma ordemdeservico diz quantos e quais produtos serão produzidos, e por si ordemdeservicoitem possuirá seu codigo único. Então a ordem de serviço será aberta e quando for alterada ( fechada ) a quantidade de produtos da ordem será somada ao estoque.
Imagino que esses meus selects não estão corretos, imagino que tenho sido claro, mas jóia
Obrigado.[b]