TRIGGERS POUR WAVESOFT

  • Auteur/autrice de la publication :
  • Post category:SQL / Wavesoft
  • Commentaires de la publication :0 commentaire

EXT_BOITAGE
Ce trigger rappatri le contenu du champ boitage de la fiche article vers la ligne du document de vente. Cela permettra à l’utilisateur d’intervenir ponctuellement sur ce paramètre Attention ! ce trigger est réglé pour la création, pas la modification

ALTER TRIGGER EXT_BOITAGE ON dbo.PIECEVENTELIGNES_P
after INSERT
AS
BEGIN

declare @PLVID int
declare @PCVID int
declare @BOITAGE int
declare @compteur int
declare @Pincode varchar(10)

SELECT @PLVID = PLVID, @PCVID = PCVID from inserted

SELECT @Pincode = PIECEVENTES.PINCODE, @BOITAGE = ARTICLES_P.BOITAGE, @Compteur = PIECEVENTELIGNES.PLVID
FROM PIECEVENTELIGNES_P INNER JOIN
PIECEVENTELIGNES ON PIECEVENTELIGNES.PCVID = PIECEVENTELIGNES_P.PCVID
INNER JOIN ARTICLES_P ON PIECEVENTELIGNES.ARTID = ARTICLES_P.ARTID
INNER JOIN PIECEVENTES ON PIECEVENTES.PCVID = PIECEVENTELIGNES_P.PCVID
WHERE (PIECEVENTELIGNES_P.PLVID = @PLVID) AND (PIECEVENTELIGNES_P.PCVID = @PCVID)

IF @Pincode = ‘BDP’
UPDATE PIECEVENTELIGNES_P SET BOITAGE = @BOITAGE WHERE PLVID = @compteur
END

EXT_DESCRIPTIF_ARTICLE
Permet de récupérer le descriptif article lié au produit et le mettre dans le champ commentaire de la ligne de commande fournisseur.

ALTER TRIGGER EXT_DESCRIPTIF_ARTICLE ON dbo.PIECEACHATLIGNES
after INSERT,UPDATE
AS
BEGIN

declare @PLAID int
declare @PCAID int
declare @BOITAGE int
declare @compteur int
declare @DESCRIPTIFLIGNE varchar(max)
declare @DESCRIPTIF varchar(max)
declare @Pincode varchar(10)

SELECT @PLAID = PLAID, @PCAID = PCAID from inserted

SELECT @Pincode = PIECEACHATS.PINCODE,
@DESCRIPTIF = ARTICLES.ARTDESCRIPTION,
@DESCRIPTIFLIGNE = PIECEACHATLIGNES.PLACOMMENTAIRE,
@Compteur = PIECEACHATLIGNES.PLAID
FROM PIECEACHATLIGNES INNER JOIN
PIECEACHATS ON PIECEACHATLIGNES.PCAID = PIECEACHATS.PCAID
INNER JOIN ARTICLES ON PIECEACHATLIGNES.ARTID = ARTICLES.ARTID
WHERE (PIECEACHATLIGNES.PLAID = @PLAID) AND (PIECEACHATLIGNES.PCAID = @PCAID)

IF @Pincode = ‘CDEFOU’
BEGIN
IF @DESCRIPTIFLIGNE IS NULL
BEGIN
UPDATE PIECEACHATLIGNES SET PLACOMMENTAIRE = @DESCRIPTIF WHERE PLAID = @compteur
END
END
END

EXT_IMPRIMABLE
Un trigger qui permet de traiter les lignes normalement non imprimables en imprimable lors de la phase de transformation

CREATE TRIGGER EXT_IMPRIMABLE ON dbo.PIECEVENTELIGNES
after INSERT,UPDATE
AS
BEGIN

declare @PLVID int
declare @PCVID int
declare @compteur int
declare @Pincode varchar(10)

SELECT @PLVID = PLVID, @PCVID = PCVID from inserted

SELECT @Pincode = PIECEVENTES.PINCODE,
@Compteur = PIECEVENTELIGNES.PLVID
FROM PIECEVENTES INNER JOIN
PIECEVENTELIGNES ON PIECEVENTES.PCVID = PIECEVENTELIGNES.PCVID
WHERE (PIECEVENTELIGNES.PLVIDNOMCPERE <> 0)
AND (PIECEVENTELIGNES.PLVID = @PLVID)
AND (PIECEVENTELIGNES.PCVID = @PCVID)

IF @Pincode = ‘BDP’
UPDATE PIECEVENTELIGNES SET PLVISIMPRIMABLE= ‘O’ WHERE PLVID = @compteur

IF @Pincode <> ‘BDP’
UPDATE PIECEVENTELIGNES SET PLVISIMPRIMABLE= ‘N’ WHERE PLVID = @compteur
END

Laisser un commentaire