adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Seg Ago 13, 2018 8:58 am Assunto: Duvida com trigger postgre? |
|
|
Tenho uma trigger que dispara no after update de uma tabela chamada grade
Código: | CREATE OR REPLACE FUNCTION public.tg_grade_up() RETURNS trigger AS
$BODY$DECLARE id_grade_old BIGINT;
DECLARE qtd_old DECIMAL(10, 2);
DECLARE qtd_new DECIMAL(10, 2);
DECLARE id_usuario_op BIGINT;
DECLARE id_cadastro_old BIGINT;
BEGIN id_grade_old = OLD.id_grade;
qtd_old = OLD.qtd_atual;
qtd_new = NEW.qtd_atual;
id_usuario_op = NEW.id_usuario_alterou;
id_cadastro_old = OLD.id_cadastro;
IF id_usuario_op IS NOT NULL
AND ((OLD.codigo_barra != NEW.codigo_barra)
OR (OLD.qtd_atual != NEW.qtd_atual)
OR (OLD.valor_custo != NEW.valor_custo)
OR (OLD.valor_varejo_aprazo != NEW.valor_varejo_aprazo)
OR (OLD.ativo != NEW.ativo)
OR (OLD.valor_atacado_aprazo != NEW.valor_atacado_aprazo)) THEN
INSERT INTO grade_historico(id_cadastro, id_grade, id_usuario, qtd_antigo, qtd_atual, codigo_barra_antigo, codigo_barra, valor_custo_antigo, valor_custo, valor_varejo_aprazo_antigo, valor_varejo_aprazo, ativo_antigo, ativo, data_hora_alteracao, valor_atacado_aprazo_antigo, valor_atacado_aprazo, origem_alteracao)
VALUES(id_cadastro_old,
id_grade_old,
id_usuario_op,
qtd_old,
qtd_new,
OLD.codigo_barra,
NEW.codigo_barra,
OLD.valor_custo,
NEW.valor_custo,
OLD.valor_varejo_aprazo,
NEW.valor_varejo_aprazo,
OLD.ativo,
NEW.ativo,
NOW(),
OLD.valor_atacado_aprazo,
NEW.valor_atacado_aprazo,
'OFF');
END IF;
RETURN NEW;
END;$BODY$
LANGUAGE plpgsql VOLATILE NOT LEAKPROOF
COST 100;
|
Ela é populada na tabela grade_historico com os valores.
Minha duvida é que no ultimo campo origem_alteracao chumbei OFF e preciso que se for uma venda na hora de disparar a trigger colocar o numero da venda que foi executado a origem e não ficar chumbado este OFF.
A trigger é disparada na venda a cada item da tabela venda_itens que é inserido, não sei como posso fazer isso quando vem deste local, o campo é id_venda que esta na tabela venda_itens.
Alguma dica? _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|