Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: DOKU Punkt 9.36 Globale Preisänderungen in der Datenbank

    jonnyB

    • Fördermitglied
    • Beiträge: 519
    • Geschlecht:
    Im Anwenderhandbuch findet man unter Punkt 9.36 die Beschreibung zur Globalen Preisänderungen in der Datenbank. Diese lautet hier wie folgt (Beispiel mit Preiserhöhung um 5%):

    Code: SQL  [Auswählen]
    UPDATE products SET products_price=round(products_price*1.05);

    Dies hat aber einen kleinen Haken, denn die Funktion "round()" innerhalb der Anweisung rundet die Preise nicht auf Cent-Beträge sonder auf volle Euros. Das führt dann zu nicht gewollten Preisänderungen.
    z.B.:
    1,50€ werden zu 2,00€
    1,40€ werden zu 1,00€

    Somit ergeben sich hier völlig ungewollte Preisänderungen die zum Teil nicht mal eine Preiserhöhung sondern eine Preisminderung zur Folge haben.

    Man kann das nun wie folgt umgehen.
    1. man lässt die Funktion "round()" komplett aus der Anweisung raus
    oder
    2. man erweitert die Funktion "round()" um die Angabe von Decimalstellen

    Mit der Angabe von z.B. 4 Dezimalstellen würde das wie folgt aussehen:

    Code: SQL  [Auswählen]
    UPDATE products SET products_price=round(products_price*1.05,4);

    Somit würde das Ergebnis wie folgt aussehen:
    [Preis 1,4567€] * [Preiserhöhung 5%] = [Ergebnis inkl. Rundung 1,5295€] // altes Ergebnis wäre hier = 2,0000€
    [Preis 1,3745€] * [Preiserhöhung 5%] = [Ergebnis inkl. Rundung 1,4432€] // altes Ergebnis wäre hier = 1,0000€

    @Dokuman:
    Ich denke man sollte dies mit in die Doku übernehmen um hier evtl. falsche Ergebnisse zu vermeiden.

    Grüße
    Thomas



    Linkback: https://www.modified-shop.org/forum/index.php?topic=13480.0
    Shop Hosting

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    DOKU Punkt 9.36 Globale Preisänderungen in der Datenbank
    Antwort #1 am: 10. Juni 2011, 09:05:39
    Danke für den Hinweis. :thx:

    Ich schicke ihm das Thema mal als E-Mail, falls er es nicht sieht. :)

    Grüße

    Torsten

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    DOKU Punkt 9.36 Globale Preisänderungen in der Datenbank
    Antwort #2 am: 10. Juni 2011, 09:09:07
    Ich sehe alles und bin gerade dabei, das zu aktualisieren!  :/

    Vielen Dank für's Feedback, Thomas. :thx:

    KAT

    • Mitglied
    • Beiträge: 196
    • Geschlecht:
    Re: DOKU Punkt 9.36 Globale Preisänderungen in der Datenbank
    Antwort #3 am: 21. März 2012, 17:53:42
    Hallo

    Code: SQL  [Auswählen]
    UPDATE products SET products_price=round(products_price*1.05,4);

    ... rundet die Preise auf 4 Stellen nach dem Komma. Rundet der Befehl z.b. bei 1.23455 auf 1.2346 ?
    Wo ist die Schwelle? Ab 6 aufrunden oder bereits ab 5?
    Wie sieht es bei z.b. 1.23595 aus? Rundet das dann auf 1,2460 ? Beim runden bin ich extrem vorsichtig geworden ...

    LG
    KAT

    jonnyB

    • Fördermitglied
    • Beiträge: 519
    • Geschlecht:
    Re: DOKU Punkt 9.36 Globale Preisänderungen in der Datenbank
    Antwort #4 am: 21. März 2012, 18:31:38
    Ab 5 wird aufgerundet und bis 4 wird abgerundet.

    KAT

    • Mitglied
    • Beiträge: 196
    • Geschlecht:
    Re: DOKU Punkt 9.36 Globale Preisänderungen in der Datenbank
    Antwort #5 am: 21. März 2012, 18:53:36
    Danke Jonny! :-)

    LG KAT
    2 Antworten
    3513 Aufrufe
    25. August 2011, 10:38:28 von sciency
    16 Antworten
    10573 Aufrufe
    11. Mai 2012, 18:03:43 von mahagma
    11 Antworten
    4419 Aufrufe
    12. Dezember 2010, 21:29:41 von franky_n
               
    anything