Forum

Bitte beachte auch unsere Knowledgebase und das Handbuch!

Benachrichtigungen
Alles löschen

[Gelöst] Betrag gegeben per JSON/am Bon bzw. Bonlayout

45 Beiträge
6 Benutzer
6 Reactions
41.9 K Ansichten
(@stefaan)
Beiträge: 66
Trusted Member
Themenstarter
 

Servus,

ich hab heute Abend die unter
https://www.ckvsoft.at/forum/qrk-feature-request/qrk-server-als-dienst/#post-1075
beschriebene Verbindung direkt an der alten Kassa getestet und das klappt wunderbar. Bis auf die Druckgeschwindigkeit, denn der alte Drucker ist seriell angeschlossen und der Druck per Windows-Treiber daaaaaaauert ;). Nach dem Motto "jeder QR-Code mit viel Liebe gedruckt" - an einem neuen Drucker solls aber nicht scheitern.

Interessant wären für uns noch zwei Sachen:

1) Im Kassen-Modus kann ja das Wechselgeld berechnet werden. Bekommt man "gegeben/retour" auch irgendwie auf den Bon? Besonders auch über den Server-Modus. Über die alte Kassenlösung könnte ich den Wert für "gegeben" ins json-Objekt verpacken, damit es auf den Bon kommen könnte (nur für die Bezahlungsmethode Cash).

2) Eingriff ins Layout des Bons. In der alten Kassenlösung geht das ganz super per Apache Velocity, hier ist defacto alles möglich, wenn man sich ein bisschen eingelesen hat. Im ersten Schritt wäre es hilfreich, wenn man die Leerzeilen zwischen den Artikelzeilen anpassen/entfernen könnte, dann wären die Bons nicht ganz so lang und man sponsert die Thermopapier-Industrie nicht so stark.

Die Lösung, falls es noch jemanden interessiert:

  • In der Kassa das Bon-Template so anpassen, dass eine passendes json-Objekt gedruckt wird.
  • Mit https://sourceforge.net/projects/mfilemon/ einen Drucker einrichten, der das json-Objekt in eine Textdatei schreibt. Auf diesem Weg wird die Textdatei auch noch durch ein kleines C#-Programm geschickt, das die Steuerzeichen vorne und hinten aus der Druckdatei entfernt (hier suche ich noch nach einer eleganteren Lösung, aber es funktioniert gut). Der Text/Generic-Druckertreiber liefert leider keine brauchbare Datei.
  • Das C#-Programm schreibt das json-Objekt als Textdatei mit der Dateiendung .json in das Importverzeichnis von qrk und es wird dort verarbeitet.

Danke!

Grüße, Stefan

 
Veröffentlicht : 10. März 2017 23:15
christian.a
(@christian-a)
Beiträge: 319
Reputable Member Admin
 

Hi!

Welche "alte" Kasse ist das? Bin gerade auf der Suche, ob / wie man von GPLpos / Unicenta diesen Druck schaffen würde. Damit wären auch diese Programme RKSV Fit 😉

 
Veröffentlicht : 17. März 2017 15:05
(@stefaan)
Beiträge: 66
Trusted Member
Themenstarter
 

Servus,

das alte Produkt ist POSper, den Sourcen nach auf Tinapos basierend. Dürfte aber gewisse Ähnlichkeiten mit Chromis/UnicentaPOS haben. Die Layouts basieren bei allen Systemen auf Apache Velocity, also dürfte die Umleitung des Bondrucks funktionieren.

Den Code für den Bondruck in die Datei kann ich morgen genauer dokumentieren.

Grüße, Stefan

 
Veröffentlicht : 17. März 2017 23:51
christian.a
(@christian-a)
Beiträge: 319
Reputable Member Admin
 

Super! Das wäre spitze!

 
Veröffentlicht : 18. März 2017 18:30
(@stefaan)
Beiträge: 66
Trusted Member
Themenstarter
 

Servus,

hier einmal schnell der Velocity-Code:
https://github.com/stefankugler/print-qrk-json

Den Umweg über den Druckertreiber hab ich schon hier im Forum beschrieben, ich werd die Doku auf Github weiterführen.
Mehr später oder morgen.

Grüße, Stefan

 
Veröffentlicht : 18. März 2017 19:17
(@stefaan)
Beiträge: 66
Trusted Member
Themenstarter
 

So, die Doku sollte vollständig sein:

https://github.com/stefankugler/print-qrk-json

Bei Fragen melde dich, die exe-Datei des C#-Programms kann ich nicht über Github verteilen, die hängt hier im ZIP-Archiv dran.

Das Template-File muss für andere POS-Programme ev. noch angepasst werden.

Fehlt nur noch die Möglichkeit, den Server-Modus direkt zu starten (und der Wunsch nach dem Retourgeld).

Grüße, Stefan

 
Veröffentlicht : 19. März 2017 18:32
Stefan
(@stefan)
Beiträge: 252
Reputable Member
 

Benötigt man die exe Datei? Ich arbeite nämlich mit Ubuntu Linux. 

 

LG

Stefan 

 
Veröffentlicht : 19. März 2017 20:47
(@stefaan)
Beiträge: 66
Trusted Member
Themenstarter
 

Servus,

unter Linux würde ich einmal unter CUPS ansetzen und schauen, ob dort der Generic/Text only-Treiber funktioniert. Oder einen Cups-Filter und ein Script (bash, perl, python, ...), das ev. die Steuerzeichen entfernt. Dazu kann ich dir aber nicht wirklich weiter helfen, das hab ich noch nie gemacht.

Grüße, Stefan

 
Veröffentlicht : 19. März 2017 23:22
chris
(@chris)
Beiträge: 1267
Noble Member Admin
 

Gibt es für das C#-Programm den source? Bzw. was macht es genau? Nur die ESC Sequenzen entfernen?

 
Veröffentlicht : 20. März 2017 15:05
(@stefaan)
Beiträge: 66
Trusted Member
Themenstarter
 

Servus,

das C#-Programm entfernt die Steuerzeichen vor und nach den JSON-Daten.

Den Code gibt's auf github (nur die Program.cs, nicht den ganzen C#-Projektordner):
https://github.com/stefankugler/print-qrk-json

Grüße, Stefan

 
Veröffentlicht : 20. März 2017 15:23
chris
(@chris)
Beiträge: 1267
Noble Member Admin
 

Hab das direkt in QRK eingebaut. Sind ja nur 3 Zeilen 😉

 
Veröffentlicht : 20. März 2017 19:14
(@stefaan)
Beiträge: 66
Trusted Member
Themenstarter
 

Wunderbar, danke!
Wann darf man mit einer neuen Version rechnen?

Gibt es einen Status zu meinen anderen Anfragen (gegeben/Retourgeld per JSON, ev. kompaktes Bonlayout)?

Grüße, Stefan

 
Veröffentlicht : 20. März 2017 19:57
chris
(@chris)
Beiträge: 1267
Noble Member Admin
 

Die Version wird schon fleißig getestet. Da sehr große interne Änderungen gemacht wurden hat es etwas länger gedauert. Ich werde versuchen das ich nicht in diese aber in die nächste Version den Betrag gegeben rein bekomme. Hab noch ein paar aus-ständige Sachen die gemacht werden müsse. Die kommen aber auch erst in die nächste Version.

kompaktes Bonlayout

Schwer zu sagen was ist kompakt. Ich hab da schon von Anfang an versucht einen Kompromiss zu finden. Vieles in eine Zeile geht sich leider nicht bei jedem aus. In der nächsten Version wurden ein paar Änderungen gemacht. Es gibt auch mehrere Einstellungsmöglichkeiten wie Zeilen Abstand oder QR-Code links neben der Summenzeile zu schreiben. Das wird dann schon um einiges kürzer.

 
Veröffentlicht : 21. März 2017 3:15
Stefan
(@stefan)
Beiträge: 252
Reputable Member
 

Hallo Stefan,

 

wegen cups, hast Du zufällig eine Ahnung wie man den Generic Text Drucker anweist in eine JSON Datei zu Drucken ? Ich finde nämlich nur PDF

 

lg

 

Stefan

 

 
Veröffentlicht : 22. März 2017 12:57
(@stefaan)
Beiträge: 66
Trusted Member
Themenstarter
 

Servus,

vielleicht helfen die beiden Einträge [0] mit dem Ziel nach /dev/null. Probiere einmal nach /pad/nach/ckv-import/datei.json zu drucken.

Ich hoffe, dass Cups die Datei nach dem Druckvorgang freigibt, damit QRK die Datei nachher umbenennen kann. Ev. auch auf Berechtigungen achten.

[0]: https://superuser.com/questions/304670/how-to-add-a-fake-dummy-null-printer-in-cups

Grüße, Stefan

 
Veröffentlicht : 23. März 2017 23:54
Stefan
(@stefan)
Beiträge: 252
Reputable Member
 

Ich bin scheinbar zu ********** ich kapiere das nicht bzw. bei mir passiert nichts. Habe aus dem Beitrag zu cups alles verscuht aber hatte keinen erfolg. Das Drucken in /home/user/daten hat nichts gebracht, es wurde keine textdatei erstellt.

 

lg

 

Stefan

 
Veröffentlicht : 25. März 2017 22:19
(@stefaan)
Beiträge: 66
Trusted Member
Themenstarter
 

Lieber Stefan,

hier ein Update mit einer Lösung ganz elegant über eine Pipe, ohne CUPS (unter Linux):

https://github.com/stefankugler/print-qrk-json

Grüße, Stefan

 
Veröffentlicht : 27. März 2017 8:07
Stefan
(@stefan)
Beiträge: 252
Reputable Member
 

Hallo Stefan,

erst einmal vielen Dank für Deine Mühe.

Ich bin ja nun schon einen Riesenschritt weiter, bekomme aber diesen Fehler

./bon2json.sh: Zeile 20: /opt/json/bon.txt: Datei oder Verzeichnis nicht gefunden
mv: Aufruf von stat für '/opt/json/bon.txt' nicht möglich: Datei oder Verzeichnis nicht gefunden

Fehlerausgabe qrk

Viele Grüße

 

Stefan

 
Veröffentlicht : 27. März 2017 13:14
chris
(@chris)
Beiträge: 1267
Noble Member Admin
 

Das Verzeichnis "/opt/json" gibt es?

Die Fehlerausgabe ist nicht von qrk

 
Veröffentlicht : 27. März 2017 13:18
(@stefaan)
Beiträge: 66
Trusted Member
Themenstarter
 

Servus,

das Verzeichnis gibt es wahrscheinlich nicht.

mkdir /opt/json

Wenn man streng nach der Linux-Verzeichnisstruktur geht, würde das irgendwo nach /var gehören und nicht nach /opt. Funktionieren tuts aber trotzdem ;).

Grüße, Stefan

 
Veröffentlicht : 27. März 2017 13:23
Stefan
(@stefan)
Beiträge: 252
Reputable Member
 

Das Verzeichnis hatte ich schon angelegt 🙂

Hier siehst Du den Inhalt davon

Inhalt /opt/json

 
Veröffentlicht : 27. März 2017 13:27
(@stefaan)
Beiträge: 66
Trusted Member
Themenstarter
 

Häng bitte einmal so eine false-Datei an, da ist ev. noch ein Steuerzeichen drinnen.

Die Rechte stimmen? Kann QRK die Daten umbenennen?

Stefan

 
Veröffentlicht : 27. März 2017 13:51
Stefan
(@stefan)
Beiträge: 252
Reputable Member
 

Hier die Berechtigungen und die datei

kasse1@kasse1-450-a141ng:/opt$ ls -la
insgesamt 20
drwxr-xr-x  5 root   root   4096 Mär 27 12:57 .
drwxr-xr-x 24 root   root   4096 Mär 16 15:24 ..
prw-r--r--  1 kasse1 kasse1    0 Mär 27 13:11 chromis.pipe

 

kann die datei leider nicht anhängen 🙁

drwxr-xr-x  7 root   root   4096 Sep 30 15:30 chromispos
drwxr-xr-x  3 root   root   4096 Apr 24  2016 epson_pcs
drwxr-xr-x  2 kasse1 kasse1 4096 Mär 27 13:11 json

 hier habe ich die Datei hochgeladen

false datei

nun der richtige link

 
Veröffentlicht : 27. März 2017 13:56
(@stefaan)
Beiträge: 66
Trusted Member
Themenstarter
 

Die Datei ist leer.

Mach einmal ein "ls -l" im json-Verzeichnis

Bzw. stoppe das Script, drucke einen Bon und mach ein "cat /name/der.pipe" und poste die Ausgabe (oder Screenshot).

Stefan

 
Veröffentlicht : 27. März 2017 14:10
Stefan
(@stefan)
Beiträge: 252
Reputable Member
 

/opt/json$ ls -l
insgesamt 28
-rw-rw-r-- 1 kasse1 kasse1    1 Mär 27 12:58 20170327-125844.false
-rw-rw-r-- 1 kasse1 kasse1 6688 Mär 27 12:58 20170327-125856.false
-rw-rw-r-- 1 kasse1 kasse1 6688 Mär 27 13:02 20170327-130224.false
-rw-rw-r-- 1 kasse1 kasse1 6688 Mär 27 13:11 20170327-131142.false
-rw-rw-r-- 1 kasse1 kasse1    0 Mär 27 13:11 bon.txt

 

 

 
Veröffentlicht : 27. März 2017 14:15
Seite 1 / 2
Teilen: