Mik3e
Erfahrenes Mitglied
Hi zusammen,
Es geht um das leidige Thema Multiwährungsfähigkeit. Ein System in dem verschiedene Produkte erfasst werden, soll die Preise dieser Produkte in verschiedenen Währungen erfassen bzw. abbilden können.
Die Währungs-Tabelle:
Hierfür gibt es mal eine Währungs-Tabelle, in der vier Währungen sowie die entsprechenden Wechselkurse gespeichert sind. Weiters ist eine "Standard-Währung" (Referenzwährung) definiert, in der die Preise erfasst werden.
Die Tabelle sieht (schematisch) folgendermaßen aus:
Nebenbei bemerkt: Die Wechselkurse werden täglich automatisch über das XML File der ECB aktualisiert (http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml).
Funktionen der Währungs-Tabelle:
1) Der User soll jederzeit eine der vier Währungen als Standard-Währung definieren können, in der dann die Produktpreise erfasst werden.Wenn er zum Beispiel nun USD als Standardwährung festlegt, führt das System folgende Operationen in der Tabelle aus:
Nun ist USD als Referenz (Standard) Währung definiert. Ich hoffe ich sehe das richtig?
Die Produkttabelle / erfassen der Produktpreise:
Nun zum eigentlichen Problem. Es gibt eine simple Produkttabelle, in der die Produkte mit Ihrem Preis erfasst werden:
Wie man sieht wird auch die Währung gespeichert, in der der Preis erfasst wurde.
Das Problem:
Angenommen der User erfasst die Preise zuerst in Euro (in der Beispieltabelle die ersten beiden Produkte) und stellt danach die Standardwährung auf US Dollar und erfasst weitere Produkte (hier das dritte Produkt), dann gibt es bereits das erste Problem: Zuerst war der Wechselkurs von EUR = 1.000, plötzlich ist er aber 0.85375. D.h. der Preis stimmt nicht mehr.
Ich möchte auch jedenfalls vermeiden, dass beim ändern der Standardwährung sämtliche Preise neu berechnet werden müssen (das wäre eine theoretische Möglichkeit).
Mein Lösungsansatz:
Mir würde als Lösung einfallen, dass man eine fixe Referenzwährung definiert, in der alle Preise gespeichert werden. (z.B.: Euro). Erfasst der User die Preise nun in USD, werden diese einfach durch den aktuellen Wechselkurs von Euro dividert und gespeichert.
Das Problem dabei ist allerdings wieder, dass das Berechnen des Preises in Euro natürlich nur für den aktuellen Zeitpunkt stimmt, da sich der Kurs am nächsten Tag bereits wieder geändert hat...
Hat sich vielleicht schon mal jemand mit diesem Thema beschäftigt oder vielleicht ein Modell bei der Hand, wie man dieses Thema am elegantesten abfrühstücken kann?
Danke Euch im Voraus,
Ciao,
Mike
Es geht um das leidige Thema Multiwährungsfähigkeit. Ein System in dem verschiedene Produkte erfasst werden, soll die Preise dieser Produkte in verschiedenen Währungen erfassen bzw. abbilden können.
Die Währungs-Tabelle:
Hierfür gibt es mal eine Währungs-Tabelle, in der vier Währungen sowie die entsprechenden Wechselkurse gespeichert sind. Weiters ist eine "Standard-Währung" (Referenzwährung) definiert, in der die Preise erfasst werden.
Die Tabelle sieht (schematisch) folgendermaßen aus:
Code:
Währung Kurs Standard
-------------------------------------------------------
EUR 1.00000 standard=true
USD 1.17130
CHF 1.53970
GBP 0.67285
Funktionen der Währungs-Tabelle:
1) Der User soll jederzeit eine der vier Währungen als Standard-Währung definieren können, in der dann die Produktpreise erfasst werden.Wenn er zum Beispiel nun USD als Standardwährung festlegt, führt das System folgende Operationen in der Tabelle aus:
Code:
EUR = 1.00000 / 1.17130 = 0.85375
USD = 1.00000 standard = true
CHF = 1.53970 / 1.17130 = 1.31452
GBP = 0.67285 / 1.17130 = 0.57447
Die Produkttabelle / erfassen der Produktpreise:
Nun zum eigentlichen Problem. Es gibt eine simple Produkttabelle, in der die Produkte mit Ihrem Preis erfasst werden:
Code:
Produkt Preis Währung
----------------------------------------------------------
CPU AMD 110,00 EUR
CPU INTEL 150,00 EUR
RAM 1024MB 72,00 USD
Das Problem:
Angenommen der User erfasst die Preise zuerst in Euro (in der Beispieltabelle die ersten beiden Produkte) und stellt danach die Standardwährung auf US Dollar und erfasst weitere Produkte (hier das dritte Produkt), dann gibt es bereits das erste Problem: Zuerst war der Wechselkurs von EUR = 1.000, plötzlich ist er aber 0.85375. D.h. der Preis stimmt nicht mehr.
Ich möchte auch jedenfalls vermeiden, dass beim ändern der Standardwährung sämtliche Preise neu berechnet werden müssen (das wäre eine theoretische Möglichkeit).
Mein Lösungsansatz:
Mir würde als Lösung einfallen, dass man eine fixe Referenzwährung definiert, in der alle Preise gespeichert werden. (z.B.: Euro). Erfasst der User die Preise nun in USD, werden diese einfach durch den aktuellen Wechselkurs von Euro dividert und gespeichert.
Das Problem dabei ist allerdings wieder, dass das Berechnen des Preises in Euro natürlich nur für den aktuellen Zeitpunkt stimmt, da sich der Kurs am nächsten Tag bereits wieder geändert hat...
Hat sich vielleicht schon mal jemand mit diesem Thema beschäftigt oder vielleicht ein Modell bei der Hand, wie man dieses Thema am elegantesten abfrühstücken kann?
Danke Euch im Voraus,
Ciao,
Mike