Korte herhaling: beheer van de wisselkoersen (conversie) in Mercator
Vroeger gold de volgende regel: 1 FRF = 6 BEF. Mercator sloeg dus de waarde 6 op in het veld CONVERSION van pieds_v en de koers werd vermeld voor een vreemde munteenheid (FRF).
Sinds de invoering van de euro werken we volgens het principe: 1 EUR = 1,31 USD. Dus nu wordt de koers vermeld voor een basismunteenheid (EUR).
Om de continuïteit te behouden, slaat Mercator alle velden CONVERSION (in PIEDS_V, PIEDS_A, PIEDS_C …) en de valutawisselkoersen (DEVISES, DEV_HIST) op in het eerste formaat.
Om dit te verhelpen werd in Mercator de volgende optie ingevoerd:
"Input / Wisselkoers valuta's" CONVER_INV (PARAMS)
Via deze optie kan de standaardweergave voor de valutawisselkoersen worden geselecteerd:
- EUR/XXX: wisselkoers uitgedrukt in de vorm van de breuk "basisvaluta / vreemde valuta" (standaard)
- XXX/EUR: wisselkoers uitgedrukt in de vorm van de breuk "vreemde valuta / basisvaluta"
Logisch gezien, zou deze optie overal XXX/EUR moeten zijn, wat de invoer mogelijk maakt zoals in het voorbeeld met USD.
We benadrukken nogmaals dat deze optie geen enkele invloed heeft op de Mercator-interface. In de database wordt nog steeds het oude formaat gebruikt: EUR/XXX.
Het verband tussen de notaties is uiteraard 1/wisselkoers.
Automatische compensatie bij conversie valuta -> euro
Bij het invoeren van een document opgesteld in een vreemde valuta voert de gebruiker enkel bedragen in die valuta in. Mercator zet deze bedragen zelf om in euro. De moeilijkheid hierbij is dat er een dubbel evenwicht moet bestaan tussen de debet- en de creditzijde, zowel in de vreemde valuta als in euro.
Het eerste evenwicht moet gerealiseerd worden door de gebruiker die de beweging invoert. Het tweede evenwicht wordt echter niet automatisch gerealiseerd, ook als het eerste gecontroleerd is. De lijn-per-lijnconversie naar euro kan immers een totaalbedrag in euro opleveren dat niet overeenstemt met het in euro omgezette totaalbedrag in vreemde valuta.
Even herhalen: de som van de afgeronde bedragen is niet noodzakelijk gelijk aan de afgeronde som.
Voorbeeld: een financiële transactie in GBP met een wisselkoers van 1,3465290 en bestaande uit twee lijnen, respectievelijk -2735.00 en -3496.00. Dat levert de onderstaande waarden op, en dus een verschil van 1 cent:
Aangezien de gebruiker niets kan wijzigen in de kolom in euro (tot), moet Mercator dat zelf corrigeren. In principe zal Mercator dit verschil van 1 cent zelf toepassen op het grootste bedrag in euro van de boeking. Als deze cent wordt toegevoegd aan of afgetrokken van een bedrag dat zelf gelinkt is aan de analytische module, moet deze wijziging uiteraard ook doorgetrokken worden naar de analytische module, die op zich ook over meerdere lijnen verdeeld kan zijn.
Dit gedrag wordt verzekerd door de opgeslagen procedure SP_REEQUIL_DEV, waarvan de code langer is als de analytische module is geïnstalleerd.
Invoer van de wisselkoers in de voettekst in Mercator Aruba
De textbox die bij PIEDS_C.CONVERSION hoort, heeft specifieke eigenschappen.
- Hij omvat een knop waarmee men kan omschakelen van de modus EUR/XXX naar de modus XXX/EUR. De knop geeft aan welke modus op dat ogenblik actief is. De modus wordt standaard gekozen in functie van de hierboven vermelde optie (in Legacy werd het formaat EUR/XXX gewoon cursief weergegeven en kon men omschakelen met behulp van de spatiebalk).
- Hij omvat een tooltip die duidelijk de waarde aangeeft van de basisvaluta en van de vreemde valuta in verhouding tot de andere valuta. Op die manier kan men zich nooit vergissen.
Gevolg: u moet deze textbox handmatig langer maken, want volgens de bestaande parameterinstelling zal hij te smal zijn. Bij het initialiseren van een nieuwe sequentie zal Mercator dit object standaard initialiseren met dezelfde breedte als de combobox Magazijn erboven.
Wisselkoers per lijn
Optioneel kunt u een veld CONVERSION toevoegen aan LIGNES_C decimal(17,10) om de wisselkoers per lijn te beheren; dit geldt enkel voor financiële transacties en DT. In tegenstelling tot de Legacy-versie moet u de kolom zelf toevoegen in het parameterinstellingsscherm.
De modus "EUR/XXX - XXX/EUR" van deze kolom is altijd identiek aan de modus gekozen in de textbox van PIEDS_C.CONVERSION. Als u deze modus dus wijzigt in de textbox, verandert die ook voor de kolom in kwestie.
We herhalen even het principe van deze kolom:
- Ofwel bevat ze een waarde boven nul: Mercator past deze wisselkoers toe voor deze lijn.
- Anders past Mercator de wisselkoers in PIEDS_C.CONVERSION toe.
Indien u bij de input de wisselkoers van de voorgaande lijn wilt herhalen, drukt u op de spatiebalk. Deze functionaliteit bestond niet in de Legacy-versie.
Opmerking betreffende de programmering: om de wisselkoers van een lijn in een C#-code te kennen, gebruikt u:
public double GetConversion(DataRow drLignesC)
of
public double GetConversion( int rowIndex)
(waarbij rowIndex het nummer van de lijn is in lignes_c)
Dit levert steeds de juiste wisselkoers op, op basis van het feit dat LIGNES_C.CONVERSION al dan niet bestaat, en desgevallend op basis van de hierboven beschreven criteria.
Zie ook: Beheer van de wisselkoers per lijn in financiële transacties en DT.
Gevolgen van het wisselkoersbeheer per lijn
In een financiële transactie
In financiële transacties zal Mercator de boekingen op de financiële rekening (55) kopiëren, rekening houdend met zowel de wisselkoersen per lijn als de optie "Boeking op financiële rekening", en uiteraard ook rekening houdend met de volgende optie: "Boekhouding / Boeking op financiële rekening" CENTR_FIN (PARAMS).
Boekingswijze op de algemene rekening horend bij de bankrekening in de financiële transacties:
- 1 = rekening met één enkele lijn
- 2 = één lijn debet, één lijn credit
- 3 = één lijn voor elke boeking.
Dus bij een document met 2 wisselkoersen en deze optie ingesteld op 1, zullen er wel degelijk twee boekingen worden gedaan op rekening 550000 (één boeking per wisselkoers).
In de DT
In de DT moet vooral aandacht worden besteed aan het feit dat het document hier wordt ingevoerd in buitenlandse valuta, terwijl Mercator een "debet/credit"-evenwicht vereist in de basisvaluta (EUR). Logisch gezien zullen de wisselkoersen correct moeten worden ingevoerd (bv. per lijnenpaar "debet - credit"). Daartoe wordt onderaan rechts op het scherm ook het saldo van het document in basisvaluta (EUR) weergegeven.
Deze laatste zone moet in Aruba handmatig worden toegevoegd via het parameterinstellingsscherm. De naam van deze zone: FinalBalanceBase.
Wat echter niet wordt vermeld op de webpagina, maar perfect gebeurt in de Legacy-versie is het volgende: als de koersverschilrekeningen correct geparametreerd zijn in de opties van Mercator, zal Mercator voorstellen om dit verschil in euro in te voeren op een van deze rekeningen. Dan wordt een lijn toegevoegd, met type_ligne=89 en valutabedrag gelijk aan nul.
Om dat te realiseren, volstaat het bijvoorbeeld een DT in te voeren bestaande uit twee lijnen:
- 100 C met een wisselkoers x
- 100 D met een wisselkoers y en y<>x
Herbeoordeling van valuta
De DT voor valutaherbeoordeling zijn ook beschikbaar in Aruba.
Korte herinnering aan het nut van dit soort DT.
Voorbeeld: een financiële transactie in GBP. Het hele jaar door worden in deze financiële transactie bewegingen in GBP ingevoerd. Voor elke beweging wordt de op het rekeninguittreksel vermelde wisselkoers gebruikt, en elke beweging wordt omgezet in EUR. Uiteindelijk zal deze beweging in EUR worden gebruikt voor de boekhouding (saldi, balans …).
Op 31/12 zou het bedrag in GBP van mijn financiële transactie absoluut correct moeten zijn, want ik heb alle bewegingen ingevoerd in GBP. Het saldo in euro van mijn (financiële) rekening 550000 die bij deze bankrekening hoort, zal echter licht afwijken, want de wisselkoers van de GBP heeft gedurende het jaar uiteraard schommelingen gekend. Maar boekhoudkundig gezien, moet de balans op datum van 31/12 de vermogenssituatie van de onderneming op die datum weergeven. Het is dan ook belangrijk om de wisselkoers voor de GBP op 31/12 te nemen en het eindsaldo in GBP om te zetten naar euro. Dat zal leiden tot enkel een verschil in euro, dat vervolgens wordt ingevoerd in een DT voor valutaherbeoordeling.
Ditzelfde principe geldt ook voor de herbeoordeling van de klanten-/leverancierssaldi in valuta's, van schulden uitgedrukt in valuta's, van andere vorderingen uitgedrukt in valuta's ...
DT voor valutaherbeoordeling = beweging enkel in euro, zonder overeenstemmende beweging voor de herbeoordeelde valuta.
Meer informatie over DT voor herbeoordeling van posten in valuta's.
Afpunting in valuta's
De afpuntingen in valuta's vertonen de volgende bijzonderheid: als een actieve afpunting slechts één vreemde valuta betreft en het saldo in valuta nul is, zal de afpunting volledig zijn in valuta, maar kan ze wel een compensatie vereisen indien de wisselkoersen niet identiek zijn voor alle betrokken bewegingen. In dat geval zal het verschil in euro rechtstreeks opgenomen worden in het vak "Koersverschil".
Uiteraard is het ook mogelijk om af te punten met wisselkoers per lijn.