- Realisiert 2019
- Free Pascal und Lazarus
- Microsoft SQL Server Express
Nachdem Subway® im Jahr 2018 mit SubwayPOS ein neues Kassensystem eingeführt hat, fehlen dort leider viele der praktischen Funktionen, die das Vorgängersystem SubShop/2000 noch hatte.
Eine sehr praktische Funktion in SubShop war der „Inventory Spot Check“ – also eigentlich eine ganz einfache Soll-Lagerbestandsauskunft. Der Work-Around der seitens Subway® empfohlen wurde war, eine leere Inventur ohne Zählung anzulegen, und dann die Inventur-Differenz als Soll-Bestand zu interpretieren … nun ich glaube dazu muss ich nicht viel sagen.
Leider ist die gesamte SQL-Server Datenbank nicht dokumentiert, bzw. steht den Subway® Franchise-Nehmern diese Doku nicht zu Verfügung. Also musste alles mittels Reverse-Engineering entwickelt werden.
Um die diversen Spalten für den letzten Inventur-Bestand, den Wareneingang, Store-Store Transfers, Abfall, Verkauf und den aktuellen Soll-Lagerbestand zu ermitteln musste eine durchaus komplexe SQL-Abfrage entwickelt werden. Da das System keinen „Bestand“ speichert, sondern diesen immer „live“ ermittelt.
Der Vorteil der Bestandsermittlung aus „Live-Daten“ ist, dass man z.B. auch Soll-Bestände zu einem vergangenen Zeitpunkt ermitteln kann. Hierzu dient im Hauptfenster der rechte Kalender-Popup-Feld.
Im linken Drop-Down-Feld hingegen wählt man den Inventur-Bestand aus, von dem aus losgerechnet werden soll. Dies hat den Vorteil, dass man z.B. bei einer falsch gezählten Inventur einfach die vorherige auswählen kann.
Die Entwicklung dauerte – nach der Einarbeitung in Lazarus – ca. 2 Tage. Meine vorherige Erfahrung mit Delphi war dabei sehr hilfreich. Die besteht ausschließlich aus einer einzelnen EXE-Datei. Es gibt – mit Ausnahme von einer eingerichteten ODBC-Datenquelle – keine DLL-Abhängigkeiten.
Die Entwicklung dauerte – nach einer eher kurzen Einarbeitung in Lazarus – ca. 2 Tage. Meine vorherige Erfahrung mit Delphi war dabei sehr hilfreich. Die App besteht ausschließlich aus einer einzelnen EXE-Datei. Es gibt – mit Ausnahme von einer eingerichteten ODBC-Datenquelle – keine Abhängigkeiten (DLLs o.ä.).