MudGuard: Warum wird die falsche Endsumme ausgegeben?

Beitrag lesen

Hi,

Erst im der 3. Art von Dienstleistung sind 2 Posten in die Rechnung eingeflossen. Beide mit einem Betrag von 3545 Euro. Beide stehen auf Seite 1 der Rechnung. Dann wird das Zwischenergebnis der Seite 1 angefordert und auch returniert.
Auf Seite 2 stehen weitere Informatijonen und es werden 2 Anzahlungen in Gesamthöhe von 7000,- Euro abgezogen (aus der Logdatei nicht ersichtlich, aber mit Parameter "overwrite" an die Funktion übergeben)

2*3545 = 7090, nach Abzug von 7000 Anzahlung ergibt sich ein Rest von 90.

Somit steht leider im PDF in Seite 2 nicht 0.00 als Ergebnis, sondern 7000.

Wieso erwartest Du 0 statt 90?

Liegt wohl daran, dass $overwrite bei jedem Funktionsaufruf wieder auf 0 gesetzt wird. Aber es kann doch nicht die Lösung sein, hieraus eine statische Variable zu sein, oder?

Naja, wenn der Wert von einem zum nächsten Funktionsaufruf erhalten bleiben soll, dann kann die Variable ja nicht nur innerhalb der Funktion existieren.

Statisch muß sie deswegen aber nicht sein. Sie könnte ja in der aufrufenden Funktion als lokale Variable existieren und jeweils mit reingereicht werden …

cu,
Andreas a/k/a MudGuard