COMMANDE FOUNISSEUR PLAFONNEE SELON UTILISATEUR ET GROUPE

NOTICE – gestion des achats

OBJECTIF

Placer un filigrane sur le formulaire en tenant compte de 2 paramètres :

  1. L’appartenance ou pas de l’utilisateur à un groupe autorisé
  2. 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 :
// Variables

iMontantMax 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 entier

iMontantCde = SAI_TOTAL_HT_FINAL
iDUuser = wgpUSERIDmeca

iNomGroupe = » »
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 alors

iOccurence = ChaîneOccurrence(gauche(SAI_CHAMP_LIBRE1,3), gauche(iTxtCdeValidee,3), SansCasse + MotComplet)
Si iOccurence = 0 alors
si (iMontantCde > iMontantMax) alors

info(« 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 entier

iMontantCde = COMMANDE.TOTAL
iDUuser = wgpUSERIDMeca

iNomGroupe = » »
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
FIN

MonFiligrane..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

 

Laisser un commentaire