Getränkeabrechnung mittels PHP
3.3.5 Preise
Preise für buchbare Artikel müssen hier erfasst werden. Nachdem sie sich durchaus schneller ändern können, ist dieses Attribut historisiert. Für jeden Artikel ist somit ein von-bis Zeitraum angegeben in welchem er den jeweiligen Preis hat.
Wichtig: Zu beachten ist, dass neue Artikel nicht automatisch einen Preis besitzen; der Kassenwart muss einen solchen erst aktiv anlegen.
3.3.6 AutoCalc
Dieses Modul soll dem Kassenwart eine gute Hilfe zum Erstellen und Kalkulieren von neuen Preisen für buchbare Artikel leisten. Es ist für jährlichen Aufruf ausgelegt, benutzt also zur Kalkulation die Daten eines vollständigen Jahres als Rechengrundlage.
Gleich zu Anfang möchte ich anmerken, dass hier keine Prediction stattfindet. Es erfolgt nur eine Berechnung aufgrund vorhandener Daten, keine Abschätzungen irgendwelcher Verbräuche.
Eine weitere Anmerkung betrifft die Masken: Weiße Felder können beschrieben werden, graue und gelbe hingegen nicht.
3.3.6.1 Teil Eins – Auswahl der Berechnungsgrundlage
Zunächst zum ersten Teil der Maske. Hier das das Jahr, das als Berechnungsgrundlage dient, auszuwählen. Die Maske wird dann mit den Daten dieses Jahres befüllt.
Im sich öffnenden oberen Teil werden die Ausgaben für nicht-buchbare Artikel aufgeführt, aufgeschlüsselt nach Artikeln. Für jeden dieser Artikel kann der ausgegebene Betrag auch angepasst und das Umlageziel ausgewählt werden.
Man würde z.B. die Milch und den Zucker nur auf den Kaffeepreis umlegen, während etwa der Flaschenpfand auf alle Artikel Auswirkungen hätte.
- Der Knopf „linear“ verteilt die Auslagen gleichverteilt auf alle buchbaren Artikel.
- „Gewichtet“ schlägt mit der verbrauchten Anzahl an Artikeln linear gewichtet auf.
- „Auswahl“ übernimmt die DropDown-Einstellungen.
3.3.6.2 Teil Zwei – Kalkulation
Der zweite Teil der Maske ist etwas komplizierter aufgebaut, hier werden die neuen Preise für die Artikel berechnet, wie gesagt, basierend auf den Daten des Ausgewählten Jahres.
- In der linken Spalte finden sich die Artikelnamen, wie sie im System eingegeben wurden.
- Die nächste Spalte (editierbar) gibt an, wie viele Artikel verbraucht wurden. Gegenübergestellt (editierbar) ist im Folgenden die Anzahl der gekauften Artikel.
- Ausgerechnet aus dem Gesamtpreis und des eingekauften Volumens wird der Einzelpreis pro Flasche oder Einheit. Auch diese Größe ist editierbar.
An dieser Stelle sei angemerkt, dass die Maske bei Änderung einer editierbaren Größe neu berechnet wird. Ändert man z.B. die verbrauchten Artikel (Erhöhen der Anzahl), so würde sich der Einkaufspreis ebenfalls anpassen.
- Der Einzelpreis Verkauf berechnet sich aus (EK Gesamt / max(Verbrauch, Einkauf))
- Direkt ausgelesen wird der aktuelle Preis aus der Datenbank. Grün ist er, wenn der Preis paßt, rot, wenn der Verkaufspreis zu niedrig (=unter dem Einkaufspreis) liegt.
Es werden nun in der blauen Spalte die Aufschläge aus Teil eins auf den Gesamtpreis pro Zeile addiert (editierbar).
- Die blaue Spalte ist immer gleich der Summe der Ausgaben aus Teil 1; man kann hier die Umlage noch einmal beliebig von Hand anpassen. Die anderen Artikel erhalten dann entsprechend mehr oder weniger Aufschlag.
- Der finale Preis wird auf die nächsten ganzen 5 Cent aufgerundet und steht in der letzten Spalte. Auch hier läßt er sich noch einmal vollständig und unabhängig anpassen.
Sofern die Preise stimmen, kann man sie alle mit dem Knopf „Übernehmen“ direkt in die Datenbank schreiben. Sie gelten ab Klickzeitpunkt.
3.3.7 Benutzermanagement
Das Modul ist trivial und sollte keine Schwierigkeiten in der Bedienung bereiten. Benutzer lassen sich hier aktivieren, ändern und neu anlegen. Kleine Anmerkung: Das gesamte System ist Uni-Code-fähig, ausländische Namen sind kein Problem.
3.3.8 Systemmails
Um Benutzer zu benachrichtigen bietet das System ein eMail-System. Abhängig von bestimmten Konditionen können für jeden Benutzer an einem bestimmten Zeitpunkt (täglich oder auch punktuell) Mails versendet werden. Die Typen umfassen:
- Wöchentlicher Statusbericht (vom Benutzer deaktivierbar)
- Mail bei Verbuchung einer Einzahlung (immer)
- Hinweis bei Überschreiten (korrekt: Unterschreiten) eines bestimmten Kontostandes (vom Kassenwart konfigurierbar)
Die Datei kw_email_cron.php muss zum Aktivieren der Mailfunktion jeden Tag um 17:00 Uhr ausgeführt werden. Sie prüft, ob Freitag ist für Wochenberichte, und prüft sonst jeden Tag, ob schon Unterschreitungsbeträge für einen Benutzer vorhanden sind.
Die Maske bietet mehrere Eingabemöglichkeiten für jede Benachrichtigung.
Zunächst muss der Betrag eingegeben werden, der zu unterschreiten ist, um den Reminder abzusenden. Bei -10,00 EUR z.B. würden alle Benutzer mit 11 EUR Schulden eine Nachricht erhalten.
Eine Logik stellt sicht, dass ein Benutzer nur für die jeweils tiefste Grenze eine Nachricht erhält. Sind z.B. -5, -10 und -15 EUR konfiguriert, würde der Benutzer mit 20 EUR Schulden nur den Reminder für die -15 EUR erhalten.
Ferner kann man sich aussuchen, wann der Reminder gesendet werden soll:
- Sofort bei Unterschreiten des Betrages (beim Scannen)
- Bestimmte Wochentage (Montag-Sonntag), jeweils zur oben eingestellten Ausführungszeit
Wichtiges Augenmerk kann man auf den Text legen. Es sind hier einige Textersetzungsvariablen definiert, die vor dem Versand der Mail durch Inhalte aus dem System ersetzt werden:
- %R_WENN_MANN%: wird durch ein kleines „r“ ersetzt, sofern der Betroffene männlichen Geschlechts ist.
- %VORNAME%: Platzhalter für Vornamen.
- %NACHNAME%: Platzhalter für Nachnamen.
- %LIMIT%: Gibt das Triggerlimit an (z.B. „-10,00“)
- %BETRAG%: Wird durch den aktuellen Kontostand ersetzt.
Ein vollständiger Text könnte somit lauten:
Liebe%R_WENN_MANN% %VORNAME%,
Dies ist eine automatische Erinnerung, dass Dein Konto den Betrag von %LIMIT% EUR überschritten hat. Dein jetztiger Kontostand beträgt %BETRAG% EUR.
Viele Grüße,
Dein Getränkesystem
4 Kommentare zu “Getränkeabrechnung mittels PHP”
Hallo,
kann man die „Kühlschranksoftware“ irgendwo downlaoden ?
MFG
Dietmar
Öhm, im Moment nein, in welchem Zusammenhang fragst Du denn? Cheers, Christoph
Hallo,
wir haben in der Firma einen Kühlschrank.
Selbstbedieungsladen 🙂 und ich hätte gerne was auf meinen
WAMP Server gestellt, wo meine Kollegen Ihren Kühlschrankverbrauch
eingeben können, damit ich Ende Monat das Geld einsammeln kann.
Gruss Dietmar
Hallo Christophn,
du scheinst dir sehr viel Gedanken zu deinem Software gemacht zu haben – sehr interessantes Konzept!
Mir ist kürzlich auch der Gedanke gekommen etwas in dieser Richtung einzuführen. Ich wohne in einem Studentenwohnheim und wir haben hier ein großes Problem mit unseren Strichlisten.
Ich würde mich sehr freuen, wenn du mit mir Kontakt aufnehmen würdest.
Beste Grüße,
Manuel
Einen Kommentar hinterlassen