Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Gestion des devises

0000002113     -      19/10/2016

Petit rappel sur la gestion des cours de change (conversion) dans Mercator

Jadis, on disait que 1 FRF valait 6 BEF. Mercator stockait donc 6 dans le champ CONVERSION de pieds_v. Donc, à cette époque, le cours était exprimé pour une unité de devise étrangère (FRF).

Depuis l’Euro, on dit que 1 EUR vaut 1,31 USD. Donc, à présent, le cours est exprimé pour une unité de devise de base (EUR).

Par souci de continuité, Mercator stocke toujours tous les champs CONVERSION (dans PIEDS_V, PIEDS_A, PIEDS_C, …) et les taux des devises (DEVISES, DEV_HIST) sous la première forme.
Pour pallier à cela, Mercator a amené cette option :
"Encodage / Taux de change devises" CONVER_INV (PARAMS)

Cette option permet de sélectionner le mode d'affichage des taux de change de devise par défaut :

  • EUR/XXX : taux de change exprimé sous forme de la fraction "devise de base / devise étrangère" (par défaut)
  • XXX/EUR : taux de change exprimé sous forme de la fraction "devise étrangère / devise de base"

De façon logique, cette option devrait partout être à XXX/EUR qui permet l’encodage tel que dans l'exemple sur l’USD.

 

Nous insistons une nouvelle fois sur le fait que cette option n’a d’influence que sur l’interface de Mercator. Dans la DB, c’est toujours l’ancien format qui est utilisé : EUR/XXX.

La liaison entre les notations est bien entendu 1/taux de change.

 

Equilibrage automatique de la conversion devise -> Euro

Lors de la saisie d’une écriture en devise étrangère, l’utilisateur ne saisit que des montants dans cette devise. Mercator convertit lui-même ces montants en Euro. La difficulté ici est qu’il faut un double équilibre "débit-crédit", à la fois en devise et en Euro.

Le premier équilibre incombe à l’utilisateur qui encode son mouvement. Par contre, le second équilibre n’est pas automatique, même si le premier est vérifié. En effet, la conversion ligne par ligne en Euro, peut donner un total en Euro qui ne correspond pas à la conversion du total en devise converti en Euro.

Rappelons-nous : la somme des arrondis n’est pas nécessairement égale à l’arrondi de la somme.
Exemple : un financier en GBP avec un taux de change de 1,3465290 et deux lignes reprenant respectivement -2735.00 et  -3496.00. Cela produit ces valeurs et donc une différence de 1 cent :

 

devises_1

 

Comme l’utilisateur n’agit pas sur la colonne en Euro (tot), il faut que Mercator corrige cela lui-même. Le principe est que Mercator va appliquer lui-même ce cent de différence au plus grand montant en Euro de l’écriture. Bien entendu, si ce cent est ajouté ou déduit d’un montant lui-même lié à de l’analytique, il faut aussi répercuter cette modification sur l’analytique, qui peut elle-même être répartie sur plusieurs lignes.

 

 

Ce comportement est assuré par la procédure stockée SP_REEQUIL_DEV, dont le code est plus long si l’analytique est installée.

 

Saisie du taux de change en pieds dans Mercator Aruba

Le textbox associé à PIEDS_C.CONVERSION présente des caractéristiques particulières.

 

devises_2

  1. Il montre un bouton qui permet de basculer du mode EUR/XXX au mode XXX/EUR. Le bouton indique le mode dans lequel on se trouve actuellement. Par défaut, le mode est choisi en fonction de l’option reprise ci-dessus (en legacy, c’était juste en italique pour EUR/XXX et on changeait de mode avec la barre d’espace).
  2. Il présente un tooltip qui indique clairement la valeur de la devise de base et de la devise étrangère par rapport à l’autre devise. Ainsi, on est certain de ne jamais se tromper.

Corolaire : il faut allonger manuellement ce textbox qui, dans les paramétrages déjà en cours, sera trop étroit. Par défaut, lors de l’initialisation d’une nouvelle séquence, Mercator initialisera cet objet avec la même largeur que le combo dépôt situé au-dessus.

 

 

 

 

 

 

 

Taux de change à la ligne

De façon optionnelle, on peut ajouter un champ CONVERSION dans LIGNES_C decimal(17,10) pour gérer le taux de change à la ligne; ceci uniquement dans les financiers et les OD. Contrairement à la version legacy, il faut ajouter soi-même la colonne dans le paramétrage d’écran.

Le mode "EUR/XXX - XXX/EUR" de cette colonne est toujours le même que celui choisi dans le textbox de PIEDS_C.CONVERSION. Donc, si on le change dans le textbox, cela change aussi pour la colonne en question.

Rappelons le principe de cette colonne :

  • Soit elle contient une valeur strictement supérieure à zéro, alors Mercator prend ce taux de change pour cette ligne
  • Sinon, Mercator prend le taux de change dans PIEDS_C.CONVERSION.

Lors de l’encodage, si on veut répéter le taux de change de la ligne précédente, il faut appuyer sur la barre d’espace. Cette fonctionnalité n’existait pas en legacy.

 

Note pour la programmation : pour connaître le taux de change d’une ligne dans un code C#, il faut utiliser :

 

Zoom
public double GetConversion(DataRow drLignesC)

 

ou

 

Zoom
public double GetConversion( int rowIndex)

 (avec rowIndex étant le numéro de la ligne dans lignes_c)

 

qui renvoie toujours le bon taux par rapport au fait que LIGNES_C.CONVERSION existe ou pas et par rapport aux critères décrits ci-dessus le cas échéant.

Voir aussi : Gestion du cours de devise à la ligne dans les financiers et les O.D..

 

Conséquences de la gestion du taux de change à la ligne

Dans un financier

Dans les financiers, Mercator dupliquera les imputations passées sur le compte financier (55) en tenant compte à la fois des taux de change à la ligne et de l'option "Imputation sur compte financier" et en tenant compte bien entendu de l’option suivante : "Comptabilité / Imputation sur compte financier" CENTR_FIN (PARAMS)

Mode d'imputation sur le compte général associé au compte en banque dans les financiers :

  • 1 = une seule ligne sur ce compte
  • 2 = une ligne au débit, une ligne au crédit
  • 3 = une ligne pour chaque imputation

Donc, si 2 taux de change pour l’écriture et cette option à 1, on aura bien deux imputations sur le compte 550000 (une imputation pour chacun des taux).

Dans les OD

Dans les O.D., une attention particulière doit être apportée au fait que la saisie se fait ici en devise étrangère, alors que Mercator requiert aussi un équilibre "débit-crédit" en devise de base (EUR). De façon logique, les cours devront être saisis de façon correcte (par exemple par paire de ligne "débit - crédit"). A cette fin, le solde de l'écriture en devise de base (EUR) est aussi affiché dans la partie inférieure droite de l'écran.

Cette dernière zone, en Aruba, doit être ajoutée manuellement via le paramétrage d’écran. Elle s’appelle FinalBalanceBase.

Toutefois, ce que la page sur le site web ne dit pas et que la version legacy fait pourtant parfaitement, c’est que, si les comptes de différence de change sont bien paramétrés dans les options de Mercator, alors Mercator propose de passer cette différence en Euro sur un de ces comptes. Il ajoute alors une ligne où type_ligne=89 et où le montant en devise en nul.

Pour provoquer ceci, il suffit, par exemple, d’encoder une OD contenant deux lignes :

  • 100 C avec un taux de change x
  • 100 D avec un taux de change y et y<>x

 

 

 

Réévaluation de devise

Les OD de réévaluation de devise sont aussi disponibles en Aruba.

Petit rappel de l’utilité de ce type d’OD.
Exemple : un financier en GBP. Tout au long de l’année, on encode dans ce financier des mouvements en GBP. Chaque mouvement utilise le taux de change repris dans l’extrait de compte et chaque mouvement est converti en EUR. C’est, en définitive, ce mouvement en EUR qui est utilisé pour la comptabilité (balances, bilan, …).

Au 31/12, le montant en GBP de mon financier sera forcément correct puisque j’ai encodé tous les mouvements en GBP. Par contre, le solde en Euro de mon compte 550000 (financier) associé à ce compte bancaire sera un peu farfelu puisque, sur une année, le cours de GBP a varié. Or comptablement, le bilan au 31/12 doit refléter la situation patrimoniale de l’entreprise à cette date. Il est donc important de prendre le taux de change de GBP au 31/12 et de convertir le solde final de GBP vers l’Euro. Cela conduira à une différence en euro uniquement qui sera encodée dans une OD de réévaluation.

Ce même principe s’applique pour la réévaluation des soldes clients/fournisseurs en devises, de dettes exprimées en devises, d’autres créances exprimées en devises, …

attention OD de réévaluation = mouvement en Euro uniquement, sans mouvement correspondant sur la devise réévaluée.

Plus d’info sur O.D. de réévaluation des postes en devises.

 

Lettrage en devises

Les lettrages en devises présentent cette particularité : si un lettrage en cours concerne une seule devise étrangère et que le solde en devise en nul, alors le lettrage sera complet en devise mais pourra requérir un équilibrage si les taux de change n’ont pas été identiques dans tous les mouvements impliqués. Dans ce cas, la différence en Euro sera proposée directement sur la case "Différence de change".

Il est bien entendu possible de faire du lettrage avec taux de change à la ligne.