NOTICE – gestion des achats
OBJECTIF
Placer un filigrane sur le formulaire en tenant compte de 2 paramètres :
- L’appartenance ou pas de l’utilisateur à un groupe autorisé
- Le plafond du montant de la commande
Il faut d’abord créer une feuille perso
Ce sont ces paramètres qui vont être utilisés
La macro :
A placer à la validation de la commande fournisseur.
Elle vérifie appartenance de l’utilisateur au groupe autorisé à administrer les commandes fournisseurs et vérifie aussi le montant total de la commande. Selon le cas, des messages d’alertes apparaitront à l’écran. Un filigrane sur le document empêchera l’impression d’un document conforme.
// Macro créé par MAS INFORMATIQUE le 26/06/2018
// Description de la macro :
// Code principal de la macro :
// VariablesiMontantMax est un Numérique
iMontantCde est un Numérique
iDGroupe est un entier
iDUuser est un entier
iDEmploye est un entier
iflagAchat est un booleen
iNomGroupe est une chaine
iTxtCdeValidee est une chaine
iTxtCdeNonValidee est une chaine
iOccurence est un entieriMontantCde = SAI_TOTAL_HT_FINAL
iDUuser = wgpUSERIDmecaiNomGroupe = » »
iMontantMax = 0
iOccurence = 0//Vérification de l’existence des paramétres
//Les paramètres se trouve dans une fiche perso utilitaires
HlitRecherchePremier(« FP_UTILITAIRES », »PACLEUNIK »,1)
si htrouve(« FP_UTILITAIRES ») alors
iMontantMax = FP_UTILITAIRES.MONTANT_LIMITE_ACHAT
iNomGroupe = FP_UTILITAIRES.GROUPE_AUTORISE_ACHATS
iTxtCdeValidee = FP_UTILITAIRES.TXT_VALIDEE
iTxtCdeNonValidee = FP_UTILITAIRES.TXT_NON_VALIDEE
sinon
Info(« Les préférences ne sont pas renseignées »)
fin//*******************************************************************************
// On cherche l’ID du groupe utilisateurs à partir du nom du groupe
HlitRecherchePremier(« FA4_EMPLOYE_GROUPE », « LIB_GROUPE », iNomGroupe)
si htrouve(« FA4_EMPLOYE_GROUPE ») alors
iDGroupe = FA4_EMPLOYE_GROUPE.IDFA4_EMPLOYE_GROUPE//On recherche la fiche de l’employé
HlitRecherchePremier(« EMPLOYE », « M0CLEUNIK »,iDUuser )
si htrouve(« EMPLOYE ») alors// On vérifie si l’employé fait partie du groupe autorisé
HlitRecherchePremier(« FA4_EMPLOYE_GROUPE_LIEN », « TYPE_ATTACHEID_ATTACHEIDFA4_EMPLOYE_GROUPE »,[1,EMPLOYE.EMCLEUNIK,iDGroupe])//On flag en conséquence
si htrouve(« FA4_EMPLOYE_GROUPE_LIEN ») alors
iflagAchat = Vrai
sinon
iflagAchat = Faux
fin
fin
Fin//*******************************************************************************
//Si l’utilisateur ne fait pas partie du groupe autorisé
si iflagAchat = Faux alorsiOccurence = ChaîneOccurrence(gauche(SAI_CHAMP_LIBRE1,3), gauche(iTxtCdeValidee,3), SansCasse + MotComplet)
Si iOccurence = 0 alors
si (iMontantCde > iMontantMax) alorsinfo(« vous avez atteint le montant maximal autorisé qui est de » + iMontantMax + » Euros HT »)
si SAI_CHAMP_LIBRE1 = « » alors
SAI_CHAMP_LIBRE1 = iTxtCdeNonValidee + » le » + DateVersChaîne(DateSys(), »DD/MM/YYYY ») + » à » + HeureVersChaîne(HeureSys(), »HH h MM ») + » par » + wgpusernom
fin
fin
fin
Sinon
iOccurence = ChaîneOccurrence(gauche(SAI_CHAMP_LIBRE1,3), gauche(iTxtCdeNonValidee,3), SansCasse + MotComplet)
si iOccurence <> 0 alors
Si OuiNon(« Voulez vous valider cette commande ? ») = Oui ALORS SAI_CHAMP_LIBRE1 = iTxtCdeValidee + » le » + DateVersChaîne(DateSys(), »DD/MM/YYYY ») + » à » + HeureVersChaîne(HeureSys(), »HH h MM ») + » par » + wgpusernom
fin
fin
Le résultat de la macro
Le code du formulaire pour y mettre un filigrane
A placer à la fin de la section » Avant impression de BLOC_DEBUT »
// DEBUT MAS **************************************
// Variables
LOCAL
iMontantMax est un numérique
iMontantCde est un numérique
iDGroupe est un entier
iDUuser est un entier
iflagAchat est un booléen
iNomGroupe est une chaîne
iNomFiligrane est une chaîne
IOpacite est un entier
MonFiligrane est un Filigrane
iTxtCdeValidee est une chaîne
iTxtCdeNonValidee est une chaîne
iOccurence est un entieriMontantCde = COMMANDE.TOTAL
iDUuser = wgpUSERIDMecaiNomGroupe = » »
iMontantMax = 0
iOccurence = 0//Vérification de l’existence des paramétres
//Les paramètres se trouve dans une fiche perso utilitaires
HLitRecherchePremier(« FP_UTILITAIRES », »PACLEUNIK »,1)
SI HTrouve(« FP_UTILITAIRES ») ALORS
iMontantMax = {« FP_UTILITAIRES.MONTANT_LIMITE_ACHAT »}
iNomGroupe = {« FP_UTILITAIRES.GROUPE_AUTORISE_ACHATS »}
iNomFiligrane = {« FP_UTILITAIRES.FILIGRANE »}
IOpacite = {« FP_UTILITAIRES.OPACITE »}
iTxtCdeValidee = {« FP_UTILITAIRES.TXT_VALIDEE »}
iTxtCdeNonValidee = {« FP_UTILITAIRES.TXT_NON_VALIDEE »}
SINON
Info(« Les préférences ne sont pas renseignées »)
FIN//*******************************************************************************
// On cherche l’ID du groupe utilisateurs à partir du nom du groupe
HLitRecherchePremier(« FA4_EMPLOYE_GROUPE », « LIB_GROUPE », iNomGroupe)
SI HTrouve(« FA4_EMPLOYE_GROUPE ») ALORS
iDGroupe = FA4_EMPLOYE_GROUPE.IDFA4_EMPLOYE_GROUPE//On recherche la fiche de l’employé
HLitRecherchePremier(« EMPLOYE », « M0CLEUNIK »,iDUuser )
SI HTrouve(« EMPLOYE ») ALORS// On vérifie si l’employé fait partie du groupe autorisé
HLitRecherchePremier(« FA4_EMPLOYE_GROUPE_LIEN », « TYPE_ATTACHEID_ATTACHEIDFA4_EMPLOYE_GROUPE »,[1,EMPLOYE.EMCLEUNIK,iDGroupe])//On flag en conséquence
SI HTrouve(« FA4_EMPLOYE_GROUPE_LIEN ») ALORS
iflagAchat = Vrai
SINON
iflagAchat = Faux
FIN
FIN
FINMonFiligrane..Texte = iNomFiligrane
MonFiligrane..Opacité = IOpacite
MonFiligrane..Police..Couleur = RougeFoncé
MonFiligrane..Police..Gras = Vrai//*******************************************************************************
//Si l’utilisateur ne fait pas partie du groupe autorisé
SI iflagAchat = Faux ALORS
iOccurence = ChaîneOccurrence(Gauche(COMMANDE.CHAMP_LIBRE1,3), Gauche(iTxtCdeValidee,3), SansCasse + MotComplet)
SI iOccurence = 0 ALORS
SI iMontantCde > iMontantMax ALORS
iParamètreFiligrane(iFiligraneImpression,MonFiligrane)
FIN
FIN
FIN// FIN MAS ************************************************************
Le résultat du formulaire