Bom dia , estamos com o seguinte problema :
Ao fazer um “update es_movto_estoque set quantidade=100 where id=1000” , o
retorno é :
“Query returned successfully: 0 rows affected, 41 ms execution time.”
Nessa tabela temos as 3 trigger abaixo , se eu excluir a trigger
“tr_bu_ret_ctrlnf” o update funciona , alguem poderia me dizer o porque ??
Obrigado
na tabela tem as triggers :
CREATE TRIGGER tr_ad_ret_ctrlnf
AFTER DELETE
ON es_movto_estoque
FOR EACH ROW
EXECUTE PROCEDURE tf_ad_es_movto_estoque_ret_ctrlnf();
CREATE TRIGGER tr_ai_adi_ctrlnf
AFTER INSERT OR UPDATE
ON es_movto_estoque
FOR EACH ROW
EXECUTE PROCEDURE tf_ai_es_movto_estoque_adi_ctrlnf();
CREATE TRIGGER tr_bu_ret_ctrlnf
BEFORE UPDATE
ON es_movto_estoque
FOR EACH ROW
EXECUTE PROCEDURE tf_ad_es_movto_estoque_ret_ctrlnf();
As funções são :
CREATE OR REPLACE FUNCTION tf_ad_es_movto_estoque_ret_ctrlnf()
RETURNS trigger AS
$BODY$
BEGIN
IF OLD.controle_nota THEN
IF OLD.entrada_saida = 'E' THEN
UPDATE cd_saldo_produto SET ctrl_entrada = ctrl_entrada - old.quantidade
, ctrl_vlr_entrada=ctrl_vlr_entrada - old.valor_controle WHERE
id_produto=old.id_produto and id_empresa=old.id_empresa ;
ELSE
UPDATE cd_saldo_produto SET ctrl_saida = ctrl_saida - old.quantidade ,
ctrl_vlr_saida=ctrl_vlr_saida - old.valor_controle WHERE
id_produto=old.id_produto and id_empresa=old.id_empresa ;
END IF;
else
UPDATE cd_saldo_produto SET empenhado=2 WHERE id_produto=old.id_produto and
id_empresa=old.id_empresa ;
END IF;
RETURN NULL;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
CREATE OR REPLACE FUNCTION tf_ai_es_movto_estoque_adi_ctrlnf()
RETURNS trigger AS
$BODY$
BEGIN
IF NEW.controle_nota THEN
IF NEW.entrada_saida = 'E' THEN
UPDATE cd_saldo_produto SET ctrl_entrada=ctrl_entrada + new.quantidade ,
ctrl_vlr_entrada=ctrl_vlr_entrada + new.valor_controle WHERE
id_produto=new.id_produto and id_empresa=new.id_empresa ;
ELSE
UPDATE cd_saldo_produto SET ctrl_saida=ctrl_saida + new.quantidade ,
ctrl_vlr_saida=ctrl_vlr_saida + new.valor_controle WHERE
id_produto=new.id_produto and id_empresa=new.id_empresa ;
END IF;
END IF;
RETURN NULL;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral