Les mouvement d’entrée sans montant = pas bien 😉 ! Comme je n’ai pas trouvé d’options dans la Gestion Commerciale de Sage permettant d’éviter ce genre d’oubli, j’ai créé un petit trigger SQL…
Les mouvements d’entrée vont s’insérer dans la table F_DOCLIGNE, le trigger devra donc être à l’écoute des insertions et mises à jour de celle-ci. Si le prix est inférieur ou égal à zéro pour les documents commençant par « ME », alors on affiche un message et on empêche l’insertion. Si on veut insérer une ligne de commentaire (sans référence et donc sans montant), je le gère également :
USE [VOTRE_BASE] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TRIGGER [dbo].[mouvement_entree_zero] ON [dbo].[F_DOCLIGNE] FOR INSERT, UPDATE AS BEGIN SET NOCOUNT ON; DECLARE @do_piece varchar(9), @prix numeric(24,6), @ar_ref varchar(19) SELECT @do_piece = INSERTED.do_piece, @prix = INSERTED.DL_PrixUnitaire, @ar_ref =INSERTED.ar_ref FROM INSERTED, f_docligne where INSERTED.do_piece = f_docligne.do_piece IF (@prix <= 0 and @do_piece like 'ME%' and @ar_ref not like '') BEGIN RAISERROR('Il faut obligatoirement mettre un prix !',11,1) rollback transaction RETURN END END