Message d'information depuis Trigger

Forum consacré aux développements d'applications interfacées avec les logiciels Sage

Modérateurs: Super Modérateur, Modérateurs

Règles du forum
Merci de prendre connaissance des règles d'utilisation du forum

Avant de poster un nouveau message, utilisez la fonction RECHERCHER. Indiquez la VERSION de votre logiciel et toutes informations utiles à la résolution de votre question. Ne rédigez pas vos messages en MAJUSCULES. Soyez courtois et pensez aux formules de POLITESSE d'usage. Les messages à vocation COMMERCIALE ou PUBLICITAIRE seront supprimés.

*** LORSQU'UN SUJET EST RESOLU, SON AUTEUR DOIT EDITER LE 1ER MESSAGE DU SUJET EN HAUT DE PAGE ET COCHER "SUJET RESOLU" ***

Message d'information depuis Trigger

Messagede eprogest » Sam 5 Juil 2008 12:45

Bonjour tout le monde,

Je développe sur Sage depuis pas mal de temps mais je bloque sur un truc tout bête (enfin je pense...)

Je veux mettre en place un système de carte de fidélité (exactement la même chose que dans nos magasins préférés.. :wink: ), j'ai donc créé une info libre sur l'entete nommée CARTE_FIDELITE. Ma règle : tous les 10 achats, 10% de réductions, donc je penser faire un trigger qui compter les anciens achats faits avec la carte de fidélité (en réalité un code à barres) et qui tous les modulo 10 lance un message non bloquant du type "réduction de 10% pour cette facture..." mais je n'ai trovué que raiserror qui est bloquant.

J'ai pas mal cherché mais rien de satisfaisant,

Je me suis même penché vers les formules de calculs avec des Pour, des Si... mais j'ai rien trouvé pour cherché dans les entetes de documents.

En appréciant votre aide par avance,

Bon Week-end tout le monde.
eprogest
Posteur néophyte
Posteur néophyte
 
Messages: 1
Inscription: Sam 5 Juil 2008 12:29

Messagede vrp2 » Mar 8 Juil 2008 14:37

j'ai cherché et n'ai jamais trouver avec le raiseerror. manifestement avec sage le message ne peut etre que bloquant, donc à mon avis la solution ne se trouvera pas via SQL. en revanche il me semble que des cas similaires au tiens on était fait avec les modeles d'enregistrement il faudrait aller voir le forum gestion commerciale
vrp2
Super Contributeur
Super Contributeur
 
Messages: 222
Inscription: Sam 5 Mai 2007 20:13

Re: Message d'information depuis Trigger

Messagede silvia » Mar 17 FĂ©v 2009 11:42

Avec un peu de retard... mais si ca peut aider des personnes similère...

Moi, j'utilise une fonction dans les triggers qui envoie une information Ă  l'utilisateur, le message n'est pas bloquant :

Code: Tout sélectionner
CREATE TRIGGER TG_Promo ON [dbo].[F_DOCLIGNE]
FOR INSERT
AS

-- On regarde si la ligne est une vente...
IF (SELECT COUNT(*) FROM INSERTED WHERE Do_Domaine = 0) = 1 BEGIN
   DECLARE @idArticle varchar(10), @alert varchar(250)
   DECLARE @DateF datetime, @DateD datetime, @DateFac datetime
   DECLARE @PrixP float, @PrixOb float

   -- On rĂ©cupère l'identifiant de l'article
   SELECT @idArticle = AR_Ref, @DateFac = DO_Date,  @PrixOb = DL_PrixUnitaire FROM INSERTED

   -- On va rechercher les donnĂ©es sur cet article
   SELECT @DateF = DATE_FIN_PROMO, @DateD = DATE_DEBUT_PROMO, @PrixP = PRIX_PROMO FROM F_ARTICLE WHERE AR_Ref = @idArticle

   IF ( @DateD is not null AND @DateF is not null ) BEGIN
      IF ( @DateD <= @DateFac AND @DateFac <= @DateF) BEGIN
         IF (@PrixOb <> @PrixP) BEGIN
            
            SELECT @alert = 'Attention, vous avez saisit un prix de '+ CAST(@PrixOb as varchar)+' €. L article '+@idArticle+' est en promotion Ă  '+ CAST(@PrixP as varchar)+' € du '+convert(varchar(10),@DateD,103) +' au '+convert(varchar(10),@DateF,103)+'.'
            
            -- Message d'information
            EXEC dbo.CB_SendMessage @@SPID, @alert

         END
         
      END

   END
END
silvia
Posteur habitué
Posteur habitué
 
Messages: 34
Inscription: Jeu 26 Juin 2008 17:16
Localisation: RODEZ

Re: Message d'information depuis Trigger

Messagede vrp2 » Mar 17 FĂ©v 2009 14:56

grand merci
vrp2
Super Contributeur
Super Contributeur
 
Messages: 222
Inscription: Sam 5 Mai 2007 20:13

Re: Message d'information depuis Trigger

Messagede Le_Maraudeur » Jeu 26 Mar 2009 12:51

merci pour cette astuce précieuse que je ne connaissais bizarrement pas ! :D
Le_Maraudeur
Super Contributeur
Super Contributeur
 
Messages: 104
Inscription: Jeu 12 Juil 2007 10:39

Re: Message d'information depuis Trigger

Messagede stephane3381 » Jeu 26 Mar 2009 14:19

bonjour,

pour ceux qui veulent utiliser des modèles d'enregistrement pour les cartes de fidélité.
il faut créer des informations libres clients :
- Points fidélité utilisés de type valeur
- Total points fidélité de type valeur en cochant valeur calculée application source gescom /scd
- Points fidélité restants

ensuite il faudra créer 2 modèles d'enregistrement :
- point fidélité: permet le calcul du nombre de points
DocTyp = DocEntete.TypeDoc;
Si (DocTyp = 6) Ou (DocTyp = 30) Alors
CompteT.InfoLibValeur(6) = CompteT.InfoLibValeur(6) + Arrondi(DocLigne.MontantTTC / 5;0);
CompteT.InfoLibValeur(7) = CompteT.InfoLibValeur(6) - CompteT.InfoLibValeur(5);
Si CompteT.InfoLibValeur(7) >= 500 Alors
Alerte("Le client " + DocEntete.Tiers + " peut bénéfichier d'une réduction fidélité. Il a cumulé " + CVText(CompteT.InfoLibValeur(7)) + " points. Vous pouvez appliquer la réduction via l'article ZZZ-REMFID !")
FinSi
FinSi

dans l'onglet complément il faudra rajouter les prduits et le domaine


- Réduction fidélité
Si CompteT.InfoLibValeur(7) <= 500 Alors
Alerte("Le client " + DocEntete.Tiers + " ne peut bénéficier de réduction fidélité. Il possède " + CVText(CompteT.InfoLibValeur(7)) + " points en cours. Il pourra bénéficier d'une réduction à partir de 500 points !");
DocLigne.PrixUnitaire = 0;
DocLigne.Designation = "Ligne Ă  supprimer !"
Sinon
DocLigne.PrixUnitaire = - ArrondiInf(CompteT.InfoLibValeur(7) / 500;0) * 100;
DocLigne.Designation = "Réduction fidélité équivalente à " + CVText( - DocLigne.PrixUnitaire * 5) + " points.";
CompteT.InfoLibValeur(5) = CompteT.InfoLibValeur(5) + Arrondi( - DocLigne.PrixUnitaire * 5;0);
CompteT.InfoLibValeur(7) = CompteT.InfoLibValeur(6) - CompteT.InfoLibValeur(5)
FinSi


dasn l'onglet complément il faudra rajouter l'article remise utilisé ici ZZZ-REMFID dans le domaine des ventes et ventes comptoir pour ceux qui ont la scd.

Bien sur cela doit être modifié en focntion de vos société, du montant de la remise et de l'article remise utilisé chez vous
Stéphane, Formateur ligne 100 (SCD, gescom, compta)
conseils en intégration, installation SCD
A la recherche d'un emploi
stephane3381
Modérateur
Modérateur
 
Messages: 1027
Inscription: Lun 12 Mar 2007 15:35

Re: Message d'information depuis Trigger

Messagede vrp2 » Lun 15 Juin 2009 12:02

bonjour,
je suis en train d'utiliser la procedure stockée "send message" , mon soucis est que le message n'apparait pas instantanément y a t il un moyen que le message se fasse comme l'utilisation du raiseerror.
en gros le message apparait 1 minute plus tard.
vrp2
Super Contributeur
Super Contributeur
 
Messages: 222
Inscription: Sam 5 Mai 2007 20:13

Modification du prix saisi lors de la facturation

Messagede roka02 » Ven 28 Jan 2011 13:24

Bonjour !
J'utilise un version sql ligne 100 de gescom, je voudrais fixer un prix par rapport à la quantité saisie et l'appliquer automatiquement lors de la facturation: par exemple pour l'article1 si quantité <50 prix de vente =100€, si qté>50 prix de vente = 80€ de telle sorte que si on saisi une quantité de 60 automatiquement le prix passe à 80€. j'ai crée deux info libre sur le fichier article pour stoker les quantités qui provoquent la modificatio de prix. comment peut-on gerer à l'aide des trigger? aidez moi svp

Je parviens Ă  modifier automatiquement le prix, mais le total HT dans l'entĂŞte ne change pas. si par exemple l'utilisateur saisit 400 au lieu de 500, l'application automatiquement affecte 500 Ă  la ligne, mais le montant de ligne ne change pas et reste 400, le Total HT ne change pas et reste 400 et seul le puTTC change
roka02
Posteur néophyte
Posteur néophyte
 
Messages: 4
Inscription: Mar 25 Jan 2011 10:53

Modification automatique du prix unitaire en saisi

Messagede roka02 » Mar 22 Mar 2011 09:15

J'utilise un version sql ligne 100 de gescom, je voudrais fixer un prix par rapport à la quantité saisie et l'appliquer automatiquement lors de la facturation: par exemple pour l'article1 si quantité <50 prix de vente =100€, si qté>50 prix de vente = 80€ de telle sorte que si on saisi une quantité de 60 automatiquement le prix passe à 80€. j'ai crée deux info libre sur le fichier article pour stoker les quantités qui provoquent la modificatio de prix. comment peut-on gerer à l'aide des trigger? aidez moi svp

Je parviens Ă  modifier automatiquement le prix, mais le total HT dans l'entĂŞte ne change pas. si par exemple l'utilisateur saisit 400 au lieu de 500, l'application automatiquement affecte 500 Ă  la ligne, mais le montant de ligne ne change pas et reste 400, le Total HT ne change pas et reste 400 et seul le puTTC change

il n'ya vraiment personne pour m'aider ici?

voila ce que j'ai fait
select @qtegros=qte_gros,@qtesgros=qte_supgros from f_article
select @qtesaisie=dl_qte FROM INSERTED
SELECT @prixsaisie=INSERTED.dl_puttc from inserted
SELECT @cle=cbmarq From inserted
SELECT @idart=ar_ref from inserted
select @prixdetail=ac_prixven from f_artclient where ac_categorie='1' and f_artclient.ar_ref=@idart
select @prixgros=ac_prixven from f_artclient where ac_categorie='2' and f_artclient.ar_ref=@idart
select @prixsgros=ac_prixven from f_artclient where ac_categorie='3' and f_artclient.ar_ref=@idart

IF @qtesaisie<@qtegros and @prixsaisie<@prixDETAIL
begin
update f_docligne
set dl_puttc=@prixdetail,
dl_montantttc=@prixdetail*@qtesaisie
where @cle=f_docligne.cbmarq
end
roka02
Posteur néophyte
Posteur néophyte
 
Messages: 4
Inscription: Mar 25 Jan 2011 10:53


Retourner vers Développements ODBC, Objets métiers, SQL

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités