Wie berechne ich diese Werte, sodass der Rest als Ergebnis übrig bleibt?

  • Hallo, ich brauche ein wenig Hilfe bei der Mathematik, bzw. Logik einer Rechnung. Wir haben erstmal eine Tabelle:


    Produkt Menge Pfand Zurück
    cola Kiste 12x1l
    12 Kisten
    8 Kisten
    Wasser Kiste 12x1l
    6 Kisten
    6 Kisten
    -3 Flaschen
    Bier Kiste 24x0,33l
    20 Kisten
    20 Kisten


    Zur Erklärung: Der Kunde bekommt Diese 3 Produkte in der angegebenen Menge. "Pfand Zurück" ist so viel, wie er zurück bringt. Im Hintergrund stellen wir uns noch eine Datenbank vor, die die Leergutpreise gespeichert hat. der Pfandpreis einer Kiste Cola beträgt 3,30€. Bier: 3,40€ und Wasser: 4,50€


    3,30*12 = 39,6€

    3,40*20 = 68€

    4,50*6 = 27€


    Da 4 Kisten Cola fehlen, entsteht nun eine Differenz von 13,2€

    Beim Wasser sind alle Kisten zurück gekommen, bis auf 3 Flaschen. also besteht hier eine Differenz von 0,25€*3 = 0,75€

    Beim Bier passt alles, daher beträgt hier die Differenz 0€


    Die Summe ergibt: 13,2 + 0,75 + 0 = 13,95

    Und genau diese Summe brauche ich.


    Ich habe viel versucht und überlegt, doch es passt irgendwie nie. Mein letzter Versuch war:

    $Ergebnis = $PfandSummeMenge (39,6€ + 68€ + 27€) - $pfandSummeZurück (26,4€ + 27 + 68)


    Aber hier sind die -3 Flaschen nicht mit einbezogen und ich weiß nicht wie man das machen kann, sodass es auf jede Mögliche Tabellenkonstellation anwendbar ist.

    Denn sowas ist ja auch möglich:

    Produkt Menge
    Pfand Zurück
    Wasser 12x1l
    12 Kisten
    11 Kisten
    11 Flaschen


    Dann sind 11 Kisten und 11 Flaschen zurück gekommen. Das heißt, dass der Rahmen und eine Flasche fehlen.

    Kann mir da einer helfen?

  • Dann bin ich ja nur noch mehr verwirrt.

    Wieso? Ich kenne jetzt nicht die genauen Zahlen, aber bei einer Kiste Cola hättest du das:


    Pfand = 12 (Flaschen) * 0, 15 (Pfand pro Flasche) + 1,50 (Pfand für Rahmen)


    Somit kannst du doch alles berechnen. Volle Kästen, halbe Kästen, nur Flaschen. Wo ist jetzt das Problem? Das ist doch nicht mehr als Grundschulen-Mathematik.

  • Mein Problem wäre dann, dass die Tabelle dann nicht zur einzelnen Berechnung des Rahmenpfands ausgelegt ist. Es werden ja nur Kisten angezeigt und nicht Rahmen + Flaschen. Dann müsste man im Hintergrund jedes mal alles nochmal neu berechnen, damit man alles einzeln hat.

    Bei 6 Kisten Wasser muss man dann 6*12 und 6*1,50 berechnen. Das erscheint mir als unnötiger Aufwand.


    Andersrum, wenn man alles bereits einzeln in die Tabelle speichert, muss man dann zur Darstellung auch wieder alles zusammenrechnen. Dann müsste man die Summe der Flaschen geteilt durch 12 berechnen, damit man anzeigen kann, wie viele Kisten das hat. Ich glaube, dass wäre alles unnötiger Aufwand. Oder nicht?

  • Wenn du mir verraten kannst, wie du eine Kiste mir nur 5 leeren Flaschen oder sogar nur ein leeren Rahmen berechnen willst, dann hast du recht, ansonsten sehe ich nur die Möglichkeit, alles in einzelne Teile zu zerlegen.

  • Eine Kiste mit 5 Flaschen würde in der Tabelle so eingetragen werden:


    Produkt
    Menge
    Pfand zurück
    Cola 12x1l
    10 Kisten
    10 Kisten
    -7 Flaschen


    Es sind an sich 10 Kisten da, aber eben -7 Flaschen. Für denjenigen, der die Tabelle ausfüllt, ist das so am einfachsten.

    Die letzte Kiste ist also 3,30€ - 7*0,15€ Wert.


    Wie man jetzt aber so eine Funktion" entwickelt, konnte ich noch nicht entschlüsseln.


    Achso, es werden nicht nur die leeren Flaschen gezählt, sondern grundsätzlich alle, ob voll oder nicht, weil der Kunde alles zurückbringt, was er nicht verbraucht hat.

  • PS: Was also wenn man einen leeren Rahmen hat? Normalerweise würde man jetzt davon ausgehen, dass man bei dem Pfand einen leeren Rahmen einträgt, doch das ist aus UI Sicht zu kompliziert. Dann würde man es wohl so eintragen:


    Produkt Menge Pfand Zurück
    Cola 12x1l
    12 Kisten
    12 Kisten
    -12 Flaschen
  • Es gibt wohl wirklich keine andere Möglichkeit, als alles zu zerlegen. Ich habe noch einiges ausprobiert, doch es ist wohl nicht möglich, in jedem Fall ein passendes Ergebnis zu erhalten.

  • Du könntest es auch z.B. so machen:

    Ist grad auf die schnelle entstanden. Die mehrfachen "number_format" sind nicht absolut notwendig, nutze es hier aber gerne um kleine "Rundungen" zu vermeiden. Das "return" kann man auch mit der vorherigen Zeile kombinieren.

    Ist ja auch nur ein kurzes Beispiel...

  • Danke, aber irgendwie haut das auch nicht hin. Bei so einer Tabelle zum Beispiel:

    Ware
    Menge Pfand
    Bier 24x0,33l
    12 Kisten
    13 Kisten

    Erhält man das Ergebnis von: 1.92€

    Hier werden nur die Flaschen, aber nicht der Rahmen berechnet. Außerdem ist es eine positive Zahl, es müsste aber eine negative Zahl entstehen.

    Andererseits hier:

    Ware Menge Pfand
    Cola 12x1l
    12 Kisten
    12 Kisten
    4 Flaschen

    erhält man korrekterweise: -0,60€


    Trotzdem danke! Ich werd mal selbst mit einer neuen Taktik versuchen, ein neues Skript zu schreiben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!