Forum

Benachrichtigungen
Alles löschen

[Gelöst] Servermodus und Problem mit Umlaut

Seite 2 / 2
janvl
(@janvl)
Estimable Member

Hallo Stefan und Chris,

Mit iconv drinnen bekomme ich folgende Fehler, der JSON-Datei bricht ab bei der erste Umlaut
Meldung im Terminal
iconv: ungültige Eingabe-Sequenz an der Stelle 31

Ich habe nach dem Vorbild mit dem Komma PrinterTicket angepasst wie folgt

------------------------
{ "count": "
#set ($mengeKomma = ${ticketline.printMultiply()})
#set ($mengePunkt = $mengeKomma.replace(",", "."))
${mengePunkt}
",
"name": "
<!-- ${velocityCount} von ${anzahl} -->
#set ($textreplace=${ticketline.printName()})
#set ($textreplace1 = $textreplace.replace("ä", "ae"))
#set ($textreplace2 = $textreplace1.replace("ö", "oe"))
#set ($textreplace3 = $textreplace2.replace("ü", "ue"))
#set ($textreplace4 = $textreplace3.replace("ß", "ss"))

$textreplace4
",
"gross": "
---------------------------

ist vielleicht nicht schön aber funktionell.

Frage an Stefan, mit #set kann man vieles erreichen, welche Funktionen ausser
"replace" kann man nutzen, wo ist der Dokumentation?

LG
Jan

AntwortZitat
Themenstarter Veröffentlicht : 18. August 2017 14:49
Stefan
(@stefaan)
Eminent Member

Servus,

das Ersetzen in den Templates geht natürlich auch, aber wenn schon ae/oe/ue/sz, dann kann man ja gleich die Produktbezeichnungen anpassen. Oder Chromis anpassen, dass es den Schritt UTF8->IBM437 auslässt.

Die Templates sind mit Apache Velocity "programmiert", das ist eine Java-basierende Template-Engine:

http://velocity.apache.org/engine/1.7/user-guide.html

 

Oder per Velocity ein Replace von ä in z.B. #ae# und per bon2json.sh/sed von #ae# -> ä. Dann gingen alle Umlaute/Sonderzeichen, wenn man sie manuell codiert.

Ad iconv-Fehler: Hänge einmal eine Json-Datei (als Anhang) hier an oder mach ein Issue bei Github mit der Datei auf.

Grüße, Stefan

AntwortZitat
Veröffentlicht : 18. August 2017 15:24
janvl
(@janvl)
Estimable Member

Hallo Stefan,

es ist nicht so wichtig, nur müssen die Umsätze in beide Stimmen.

Wo es velocity betrifft, ich versuche in Chromis MWSt und Summe inkl. MWSt zu berechnen für
Printer.PreviewTicket das klappt, nur runden geht nicht oder Summe mit 2 decimal Positionen.
Ich bekomme z.B. MWSt. 1.5000000000000002 und Summe 9.0 alles was ich bis jetzt versucht habe
funktioniert nicht, es sieht so aus als ist velocity nicht komplett installiert.

Hast Du ein Idee?

Weiter bekomme ich auf der Kassenbon von QRK das Chromis-Ticketnummer aber keine Text vor dem Nummer.
Ich habe "customerText" in "Rechnung" geändert, dann kommt auch kein Chromis-Ticketnummer mehr.

Wenn ich als Kopfzeile in QRK kommt das zentriert. Was kann ich da noch ändern?

PS. Das ganze funktioniert erstaunlich gut! Meine Achtung!

MfG
Jan

AntwortZitat
Themenstarter Veröffentlicht : 27. August 2017 18:47
Stefan
(@stefaan)
Eminent Member

Servus,

kannst du das Problem mit der MWST nochmals erklären?

Für die Signatur ist ja nur der Brutto-Betrag der einzelnen Produkte inkl. Steuersatz relevant, die Registrierkassa soll ja nur den Umsatz zählen. QRK und POS stimmen brutto centgenau überein.
Wo willst du da eine Mwst berechnen? Die Buchhaltung macht mein Kunde über den Kassenabschlag vom POS.
Hänge ev. einmal ein Foto oder einen Screenshot an.

Einen Text vor die Rechnungsnr müsstest du mit

<text>{"receipt" "TEXT VOR DER RECHNUNGSNR ${ticket.printId()}","payedBy": "0","items":[

bekommen. customerText ist der Name der Variable und darf nicht geändert werden. Groß- und Kleinschreibung beachten!

Grüße, Stefan

 

AntwortZitat
Veröffentlicht : 28. August 2017 21:30
janvl
(@janvl)
Estimable Member

Hallo Stefan,
es geht nicht um den Signatur, das macht QRK problemlos.
Rechnungnummer als Text drinnen funktioniert schon, Danke!

Es geht um ein Preview vom Ticket in Chromis dass nur zur Kontrolle genutzt wird.
Das selbe werde ich nutzen für eine Verbindung mit Frontaccounting.
Da berechne ich selber im Ticket wieviel Umsatz pro Steuerkategorie und wieviel Steuer im Summe Steckt,
das funktioniert, nur kann ich es in Chromis nicht so richtig gestalten.

MfG
Jan

AntwortZitat
Themenstarter Veröffentlicht : 28. August 2017 22:21
Stefan
(@stefaan)
Eminent Member

Servus,

die Werte kannst du ja auch direkt aus Chromis abgreifen:

https://github.com/ChromisPos/ChromisPOS/blob/master/src-pos/uk/chromis/pos/templates/Printer.Ticket.xml#L183-L190

Grüße, Stefan

AntwortZitat
Veröffentlicht : 29. August 2017 22:29
janvl
(@janvl)
Estimable Member

Nein, das geht nur wenn eine Rechnung abgeschlossen wird mit "="
bei einem Preview sind diese doch noch nicht gespeichert.

Ich lasse mich gerne des besseren belehren denn direkt aus Chromis heisst
korrekt formatiert.

MfG
Jan

AntwortZitat
Themenstarter Veröffentlicht : 29. August 2017 22:42
Stefan
(@stefaan)
Eminent Member
janvl
(@janvl)
Estimable Member

Obwohl nicht ganz ordentlich funktioniert es

## round up to 2 digits:
#set($vat1 = $vat1 + .005)
## truncating is same as Math.Floor at this point:
#set($endi1 = $vat1.toString().indexOf('.') + 3)
#set($vat1=$vat1.toString().substring(0, $endi1))

So bekommt man statt MWSt. 1.5000000000000002 und Summe 9.0
ordentliche 1.50 und 9.00

MfG
Jan

AntwortZitat
Themenstarter Veröffentlicht : 1. September 2017 10:09
chris
(@chris)
Noble Member Admin

In javascript geht das wohl mit toFixed();

var num = 5.56789;
var n = num.toFixed(2);

In java sollte man BigDecimal verwenden. In Cpp gibt es das leider nicht. Da bin ich auf der suche nach einer funktionierenden Version

AntwortZitat
Veröffentlicht : 1. September 2017 13:56
janvl
(@janvl)
Estimable Member

Danke Chris,

aber hier geht es um Velocity, das ist der Scriptsprache die bei alle Openbravopos-forks
genutzt wird um Tickets zu gestalten.

Ich werde es nutzen eine Verbindung mit Frontaccounting zu machen über "externe Journalposten",
das möchte ich endlich mal zu Ende machen. Frontaccounting is ein etwas kleineres Open-Source-ERP.

MfG
Jan

AntwortZitat
Themenstarter Veröffentlicht : 1. September 2017 14:12
Seite 2 / 2
Teilen:

Bitte beachte auch unsere Knowledgebase und das Handbuch!