ilch Forum » Ilch CMS 2.X » Kritik und Verbesserungen » Kasse Währung

Geschlossen
  1. #1
    User Pic
    blackcoder Entwickler
    Registriert seit
    22.05.2014
    Beiträge
    2.401
    Beitragswertungen
    389 Beitragspunkte
    Moin,

    bei der Kasse sollte man im Adminbereich die Währung auswählen können.
    Auf den Seiten wo man dann die Geldbeträge anzeigt, kann dann die Einstellung abgefragt werden und das entsprechende Währungssymbol anstatt "Euro" oder "Dollar" angezeigt werden.

    Indem man das Währungssymbol anzeigt, kann man sich in den Sprachdateien auch den Eintrag "currency" sparen.
    Außerdem hätte es den Vorteil, dass die Kasse wirklich von der Währung her total variabel ist. Aktuell hat man ja nur die Wahl zwischen Euro und Dollar abhängig davon welche Sprache ausgewählt ist. Wenn die Kasse in Euro ist und ein Benutzer anschließend auf Englisch umstellt, wird aus 10 Euro 10 Dollar.

    Zudem ist Dollar nicht zwangsläufig US-Dollar. Ich weiß aber nicht ob man soweit unterscheiden möchte.

    Vielleicht ist folgendes hilfreich:
    de.wikipedia.org/wiki/Währungssymbol
    php.net/manual/de/numberformatter.formatcurrency.php
    php.net/manual/de/function.money-format.php
    stackoverflow.com/questions/4013950/print-currency-number-format-in-php
    gist.github.com/Min2liz/5728013


    verwendete ilch Version: 2.0 (alpha)
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    blackcoder Entwickler
    Registriert seit
    22.05.2014
    Beiträge
    2.401
    Beitragswertungen
    389 Beitragspunkte
    Mit NumberFormatter::formatCurrency holt man sich noch eine Abhängigkeit vom Paket PHP Intl.
    php.net/manual/de/book.intl.php

    NumberFormatter::formatCurrency braucht den Parameter "currency", welcher der ISO 4217-Code als String ist.

    de.wikipedia.org/wiki/ISO_4217

    Das Währungssymbol ist auch nicht eindeutig, wie man z.B. an Dollar oder Kronen sieht (Norwegen und Schweden). Also müsste man dann schon den ISO-Code mit anzeigen, damit klar ist welche Währung gemeint ist.

    USD ($)
    SEK (kr)

    <?php
    	// https://de.wikipedia.org/wiki/ISO_4217
    	$array = array(
    		// ISO-4217 => ISO 4217 Code und Symbol
    		"EUR" => "EUR (€)",
    		"USD" => "USD ($)",
    		"GBP" => "GBP (£)",
    		"SEK" => "SEK (kr)",
    		"NOK" => "NOK (kr)",
    	);
    	
    	echo '<html><head><title>Test</title></head><body>';
    	echo '<select name="currency">';
    	foreach ($array as &$value) {
    		echo '<option>'.$value.'</option>';
    	}
    	echo '</select><br><br>';
    	echo 'Zuordnungen Wert (ISO 4217 Code und Symbol) zu Schlüssel (ISO 4217 Code): <br>';
    	echo 'SEK (kr) -> '.array_search('SEK (kr)', $array).'<br>';
    	echo 'NOK (kr) -> '.array_search('NOK (kr)', $array).'<br>';
    	echo 'USD ($) -> '.array_search('USD ($)', $array).'<br>';
    	echo '</body></html>';
    ?>

    php.net/manual/de/function.array-search.php

    Wenn man den ISO-Code nicht als Parameter für irgendwas gebraucht, kann man ja auch einfach die Auswahl der Währung abspeichern (z.B. "USD ($)") und diese immer nutzen, wenn in der Kasse ein Geldbetrag anzeigt wird. Die Zuordnung ISO-Code zu den Text den man später anzeigen will ist dann ja überflüssig.
    <?php
    	// https://de.wikipedia.org/wiki/ISO_4217
    	$array = array(
    		// ISO 4217 Code und Symbol
    		"EUR (€)",
    		"USD ($)",
    		"GBP (£)",
    		"SEK (kr)",
    		"NOK (kr)",
    	);
    	
    	echo '<html><head><title>Test</title></head><body>';
    	echo '<select name="currency">';
    	foreach ($array as &$value) {
    		echo '<option>'.$value.'</option>';
    	}
    	echo '</select></body></html>';
    ?>

    Also wenn die Kasse in USD ($) wäre:

    ZitatZitat
    Kontostand Gesamt: 10.00 USD ($)
    Insgesamt eingezahlt: 10.00 USD ($)
    Insgesamt ausgezahlt: 0 USD ($)

    Balance total: 10.00 USD ($)
    Total paid: 10.00 USD ($)
    Total paid out: 0 USD ($)


    Wenn man es furchtbar genau nimmt, müsste man ja sogar noch berücksichtigen ob die Währung vor oder nach der Zahl steht und ob Punkt oder Komma. schockiert

    ZitatZitat
    UK: €12,345.68
    DE: 12.345,68 €

    akrabat.com/using-phps-numberformatter-to-format-currencies/
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    corian Entwickler
    Registriert seit
    16.06.2011
    Beiträge
    1.096
    Beitragswertungen
    122 Beitragspunkte
    Hey ja könnte man sich später mit befassen, momentan liegt der Augenmerk eher darauf das System so wie es jetzt ist fertig zu stellen.

    Ich komme aber darauf zurück.

    Mfg vielen Dank.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Kritik und Verbesserungen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten