Lors de l'enregistrement d'une nouvelle ligne d'un document d'achat de gestion commerciale (lignes_a), il faudrait qu'une ligne soit ajoutée dans la fiche de l'article courant sur l'onglet "Fournisseurs".
Celle-ci reprendra le fournisseur, le prix unitaire, la remise, la devise, le nombre de décimale (pour autant que ce fournisseur ne soit pas déjà attaché à cet article).
Voici le trigger qui gère ce comportement :
create trigger TR_LIGNESA_ARTFOU
on LIGNES_A
FOR INSERT not for replication
AS
insert ARTFOU(id_art,id_fou,prix,remise,id_dev,n_dec,id_artfou)
(select inserted.id_article,pieds_a.id_fou,inserted.pu,inserted.remise,pieds_a.id_dev,pieds_a.n_dec_pu,right(newid(),10)
from inserted,pieds_a
where (inserted.id=pieds_a.id) and (inserted.journal=pieds_a.journal)
and (inserted.piece=pieds_a.piece) and (pieds_a.type<=2)
and (inserted.id_article IS NOT NULL)
and not exists (select * from artfou where (id_art=inserted.id_article) and (id_fou=pieds_a.id_fou)))