Paramétrage >  Comptabilité >  Interface comptabilité >  Variables pièces automatiques  

Afficher tout Masquer tout

Cette fonction permet de définir des variables de pièces automatiques pouvant être exploitées dans les formules des lignes de pièces automatiques.

L'utilisation d'une variable dans une formule peut être utile lorsque l'initialisation d'un champ d'une ligne d'écriture est complexe et qu'elle ne peut pas se réduire à une expression simple. Dans ce cas, l'appel à une variable va se traduire par un appel à un sous-programme qui aura la charge d'évaluer la variable et de permettre au générateur d'initialiser le contenu du champ de la ligne comptable.

Paramétrage des variables de pièces automatiques

Chaque variable de pièces automatiques est associée à un code pouvant être utilisé dans n'importe quelle ligne de pièce automatique.

L'appel à une variable dans une formule va se traduire par un appel à un sous-programme défini dans un traitement dont les noms sont à paramétrer dans les champs prévus à cet effet.

Chaque variable :

 Peut comporter un certain nombre de paramètres 'par valeur' nécessaires à l'évaluation de la variable (ces variables seront passées comme des paramètres au sous-programme).

 Doit comporter obligatoirement un paramètre 'par adresse'. Ce paramètre correspond au résultat de l'évaluation de la variable.

 Renvoie, outre le paramètre d'évaluation, une variable de type entier permettant de définir un code d'erreur. Ce paramètre n'a pas à être défini dans la liste des paramètres, mais il est ajouté automatiquement dans l'appel du sous-programme : le code du sous-programme doit donc l'inclure.

Exemple :

Dans certaines lignes de pièces automatiques, on a besoin de connaître le taux de TVA à appliquer compte tenu du code taxe, de la date comptable et de la société. La variable 'TVA' a été introduite en standard pour permettre l'évaluation du taux de taxe et comporte donc les paramètres suivants  :

 Trois paramètres par 'valeur' nécessaires à l'évaluation du taux de taxe : la société (CPY) de type 'Char', le code taxe (TAX) de type 'Char', la date (DAT) de type 'Date'

 Un paramètre par 'adresse' correspondant au résultat qu'on cherche à obtenir : le taux de taxe (VATRAT) de type 'Décimal'

Pré-requis

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Gestion de l'écran

Ecran de saisie

Présentation

Principe de paramétrage dans les formules

Chaque variable peut être exploitée dans le tableau des formules associées aux champs des lignes d'écritures par le biais de la syntaxe V_XXXXX (XXXXX désignant le code de la variable). La saisie d'une variable déclenche l'ouverture d'une petite fenêtre dans lequel l'utilisateur doit indiquer la valeur de chaque paramètre nécessaire à l'évaluation de la variable (paramètre de type 'Valeur'). La valeur indiquée pour chaque paramètre doit être du bon type.

Il est à noter que les paramètres transmis lors de l'appel du sous-programme peuvent être des constantes, des variables, ou des expressions complexes intégrant des variables en ligne.

Exemple :

Si on désire passer, dans une formule associée à la pièce automatique BPCIN, le code du journal se trouvant dans cette table à une variable, on donnera la formule [F:SIH]JOU en paramètre.

Il est à noter qu'une formule d'une ligne de pièces automatiques peut exploiter plusieurs variables de pièces automatiques.

Exemple :

V_CONVERT-ar2(V_CONVERT/(1+V_TVA)),  où V_CONVERT doit renvoyer un montant TTC, V_TVA doit renvoyer un taux de taxe et où la formule entière doit renvoyer un montant de TVA

La référence à une variable sur une ligne de pièce automatique génère dans le traitement WMGAUYYYYY (YYYYY désignant le code de la pièce automatique) l'appel au sous-programme en question avec :

 Les paramètres de la variable dans l'ordre dans lequel ils ont été saisis dans le paramétrage de la variable de pièce automatique

 Un paramètre 'STAT' de type 'Integer' permettant éventuellement de renvoyer un statut de retour au générateur de pièces automatiques. Si en retour, la variable STAT est égale à 98, la pièce comptable ne sera pas générée et l'erreur affichée sera celle contenue dans la variable globale GMESSAGE.

Notons par ailleurs que, dans les traitements générés par la comptabilisation des pièces automatiques, la table principale est ouverte non sous son abréviation propre, mais sous l'abréviation [F:TB0] ; la table des lignes est quant à elle ouverte sous l'abréviation [F:TB1]. Ceci na aucune incidence sur les formules saisies ou sur les expressions de paramètres passés en paramétrage des pièces. On peut continuer à utiliser les abréviations habituelles des tables principales, la validation de la pièce automatique réalisant automatiquement les substitutions d'abréviations dans les expressions. Par contre, si le traitement appelé par la variable doit faire appel à des champs de la table principale ou de la table des lignes pour l'enregistrement courant (si par exemple le traitement teste des champs de ces enregistrements qui n'auraient pas été passés comme argument), il faudra alors utiliser les abréviations [TB0] et [TB1] dans le traitement.

Exemple : La référence à la variable 'TVA' sur la ligne 11 de la pièce automatique 'PRINC' génère dans le traitement WMGAUPRINC l'appel suivant : 

Call LECTAUX([F:TB0]CPY,[F :TB1]VATLIN,[F:TB0]ACCDAT,[L]VATRAT,STAT) From CPTINIVAR

 TB0 désignant l'abréviation de la table déclenchante (table PAYMENTH pour la pièce automatique PRINC) ;            

 TB1 désignant l'abréviation de la table 'générale' (table PAYMENTD) ;

 Les paramètres [F:TB0]CPY, [F :TB1]VATLIN, [F:TB0]ACCDAT correspondant aux paramètres 'par valeur' ;

 Le paramètre [L]VATRAT correspondant au paramètre 'par adresse' ;

 Le paramètre STAT pour le statut de retour.

Règle d'écriture du sous-programme qui va évaluer la variable

Le sous-programme qui va évaluer la variable doit être en adéquation avec les paramètres qui sont passés pour son appel, c'est-à-dire qu'il doit contenir dans l'ordre :

 Les paramètres de la variable dans l'ordre dans lequel ils ont été saisis dans le paramétrage de la variable et avec le bon type (Char, Integer, Date ou Décimal)

 Un paramètre 'STAT' de type 'integer' permettant éventuellement de renvoyer un statut de retour au générateur de pièces automatiques. Si une erreur dans l'évaluation de la variable (erreur de lecture par exemple), doit empêcher la création de la pièce comptable, le sous-programme devra positionner la variable STAT à 98 et alimenter la variable globale GMESSAGE qui devra contenir l'erreur qui va empêcher la création de la pièce comptable

Exemple :

Subprog LECTAUX(SOC,TAX,DAT,TAUX,STAT)

Value    Char    SOC()

Value    Char    TAX()

Value    Date    DAT

Variable Decimal TAUX

Variable Integer STAT

If clalev([F:TRA])=0 : Local File TABRATVAT [TRA] : Endif

Filter [TRA] Where CPY=SOC & VAT=TAX & STRDAT<=DAT

Read [TRA]TRA0 Last

If fstat>2

 Filter [TRA] Where CPY="" & VAT=TAX & STRDAT<=DAT

  Read [TRA]TRA0 Last

  If !fstat

   TAUX = [F:TRA]VATRAT/100

  Endif

 Filter [TRA]

Endif

If fstat>2

  STAT = 98

  GMESSAGE =  "Erreur d'évaluation du taux de taxe"-TAX

Endif

End

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

En-tête

  • Code variable (champ CODVAR)

 

  • champ DESTRA

 

Bloc numéro 2

 

Sous-programmes

  • Traitement (champ CODTRT)

 

  • Sous-programmes (champ SUBPRG)

 

Tableau Paramètres

  • No (champ NUMLIG)

 

  • Code (champ CODPAR)

 

  • Intitulé paramètre (champ DESTRAPAR)

 

  • Type paramètre (champ TYPPAR)

 

  • Type d'argument (champ ADRVAL)

 

Descriptif

  • champ ZINFO

 

Fermer

 

Boutons spécifiques

Ce bouton permet de copier une code variable de pièce automatique vers un autre dossier.

Messages d'erreur

Il n'y a pas de message d'erreur autre que les messages d'erreur génériques.

Tables mises en oeuvre

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre