/* */

Trigger SQL Mouvement d’entrée Sage L100

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