Login
Newsletter
Werbung

Do, 5. Juni 2014, 15:00

Kassensystem in C.U.O.N.

In der neuen C.U.O.N.-Version wird jetzt auch ein Kassensystem emuliert. Außerdem werden im neuen C++-Client Lager- und Bestellwesen sowie eine spezielle Projektverwaltung enthalten sein. Das C.U.O.N.-System ist eine Auftragsbearbeitung, Warenwirtschaft und allgemeine Datenverwaltung. Zusätzlich beinhaltet es ein Dokumenten Management System (DMS). Das komplette System steht unter der GPLv3.

Vorwort

Kaufmännische Anwendungen mit Kassensoftware gibt es unter Linux nicht allzu viele und bei einem Premium-Unterstützer von C.U.O.N. bestand der Bedarf, ein Kassensystem in C.U.O.N. zu integrieren. Außerdem war es mir ein persönliches Anliegen, den Quellcode dieses Programms selber zu verwalten. Deshalb wurde als erste Neuerung im C++-Client eine Quellcode-Verwaltung eingeführt.

Komponenten

Das C.U.O.N.-System ist in drei Komponenten unterteilt. Der Server kann nur auf Linux installiert werden, benötigt aber keine GUI. Das Setup-, Konfigurations- und Pflegeprogramm ist eine Python-GTK-Komponente und läuft am besten auf einen Linux-System mit GUI. Der Python-Client ist der derzeitige Hauptclient, aber der neue C++-Client ist in der Entwicklung und neue Erweiterungen werden nur im C++-Client programmiert.

Der Server

Der Server ist als Komponente voll auf ein Linux-System abgestimmt. Er basiert auf einem PostgreSQL-Server sowie diversen Python-Modulen. Ebenfalls wird in der Regel ein Loadbalancer empfohlen, der »cuond« ist vorkonfiguriert für den TXLB Loadbalancer. Jede Änderung der SQL-Daten wird in History-Tabellen vorgehalten, damit können relativ schmerzfrei z.B. versehentlich überschriebene Dokumente aus der History-Tabelle wiederhergestellt werden, ohne ein Monate altes Backup einzuspielen. Die Kommunikation mit den Clients wird über XML-RPC abgewickelt. Ein Report-Server-Modul generiert PDF Dokumente für Listen, Rechnungen, etc.

Das Setup-Tool und die Clients

Dieses Programm benötigt eine GUI und im Prinzip Linux, da viele Befehle in Linux problemlos vorhanden sind. Es wären da u.a. rsync, scp und ssh zu nennen. Dieses Tool verwaltet die Benutzer und deren Rechte, Mandanten und hunderte von Einstellungen. Darüber hinaus dient es der Server-Aktualisierung. Als Besonderheit kann in kleineren Firmen das Setup-Tool auf dem Server laufen, falls dort eine GUI existiert.

Als Client fungiert vornehmlich der pyCuon-Hauptclient. Dieser läuft auf verschiedenen Umgebungen, er benötigt im Prinzip Python und GTK+ und kann sehr umfangreich angepasst werden. Zum einen kann der Administrator festlegen, welche Menüs für jeden Benutzer aktiviert sind, zum anderen kann die GUI vollständig für jede Firma, ja sogar für einzelne Benutzer mit dem GUI-Designer Glade angepasst werden.

Das neue Kassensystem

Hiermit ist es sehr einfach, ein kleines Ladenlokal oder Bargeld/Kreditkarten-Geschäfte in die Warenwirtschaft einzugliedern. Im Prinzip können beliebig viele Kassen angelegt werden. Das Kassenmodul emuliert einen Barauftrag und kann z.B. von einem Touchpanel bedient werden, aber natürlich funktioniert jeder normale PC ebenso. Nach dem Einrichten eines Kassen-Benutzers wird beim Einloggen dieses Benutzers automatisch die Auftragsverwaltung hochgefahren, allerdings nicht mit der gewöhnlichen Maske, sondern einer vereinfachten Form, die mehrere Shortcuts für Stückzahl, Bezahlen etc. hat. Das Eingeben der Kunden-ID oder Artikel-ID kann über einen Barcodescanner oder einfach per Hand geschehen. Da der C.U.O.N.-Reportserver auch Barcodes drucken kann, können die Artikel-Etiketten oder die Kundenkarte einfach selbst hergestellt werden. Dafür stehen verschiedene Barcode-Typen wie z.B. Barcode 39, Barcode 128 oder Barcode 39STD zur Verfügung, die in einstellbaren Größen und Richtungen gedruckt werden können.

Das Kassenmodul

Jürgen Hamel

Das Kassenmodul

Bei der Kunden-ID handelt es sich um die normale ID in der C.U.O.N.-Adressverwaltung, es empfiehlt sich, dort auch einen anonymen Kassen-Kunden anzulegen, damit dann für normale Kunden ohne Kundenkarte einfach ein Auftrag angelegt werden kann. Handelt es sich um einen Kunden mit Kundenkarte und bekommt dieser Kunde Vergünstigungen für z.B. eine erteilte Abbuchungserlaubnis, wird diese Vergünstigung beim Kassenkauf nicht gewährt.

Anschließend öffnet sich die Artikel-Maske und es können jetzt einfach die Artikel eingegeben werden.

Wenn alle Artikel eingegeben sind, wird durch den Bezahlknopf der Druck des Kassenzettels angestoßen und der Rückgabebetrag ermittelt. Intern wird das alles wie bei einem normalen Auftrag behandelt, der sofort bezahlt wurde. Damit steht der Auftrag für Statistiken, Bonusermittlungen etc. zur Verfügung.

Weiterhin gibt es verschiedene Reports, die vom einfachen Kassenjournal bis zur Aufschlüsselung der Umsätze verschiedener User/Kassen/Zeiträume gehen.

Lager- und Bestellwesen

Desweiteren bin ich jetzt dazu übergegangen, im C++-Client die Lagerverwaltung zu erweitern und mit dem neu zu programmierenden Bestellwesen zu verbinden. In der Lagerverwaltung können beliebig viele Lager angelegt werden. Datenbanktrigger ermitteln jeweils den aktuellen Bestand eines Artikels in dem dazugehörigen Lager. Außerdem will ich eine Verbindung eines jeden Lagervorganges zu den entsprechenden Ein- und Ausgangslieferscheinen ermöglichen.

Ebenfalls werden die Artikelstammdaten erweitert um einen Mindestbestelllagerbestand und einem Notlagerbestand, um entsprechende Listen zu generieren oder Warnungen einzublenden. Über einen Schalter in der Mandanten-Konfigurationsdatei soll festgelegt werden, ob die Abbuchung am Lager bei Erstellung des Lieferscheins oder der Rechnung erfolgen soll. Durch PL/SQL-Routinen und Trigger wird die Konsistenz des Lagers gewährleistet. Das Bestellwesen soll auch eng mit der Artikelverwaltung verknüpft werden, um jeweils preisgünstige Bestellungen heraussuchen zu können. Dazu müssen dann allerdings auch Rabatte und Liefermengen berücksichtigt werden.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung