Neu Postfinance (Schweiz) und QR-Rechnung

  • Ersteller des Themas Ersteller des Themas bubu
  • Erstellungsdatum Erstellungsdatum

stefan44

Aktives Mitglied
9. März 2008
5
1
Mahlzeit zusammen,

kurz und schmerzlos: Die Funktion JTL_QR_SWISSCODE kann nicht funktionieren. Die IBAN wird immer als "normale" IBAN und die Referenz immer als QR-Referenz in den Generator geworfen. Diese Kombination ist nicht zulässig, denn wenn eine "normale" IBAN genommen wird, darf man nur die Creditor oder gar keine Referenz angeben.

Workaround: Alles selber machen...

Einmal vier Benutzervariablen anlegen:
@EsrKonto: "XXXXXX" (5 Zahlen, wie in der bisherigen ESR-Nummer)

@RefIBAN: Hier kommt die QR-IBAN rein. Wenn keine QR-IBAN ausgestellt, bitte nur "" für ein leeres Feld angebenen! Es wird dann die IBAN aus der Firma genommen, die als "normale" IBAN interpretiert wird und die Referenz bleibt leer.

@RefNr:
Code:
Cond(Len(LTrim$(RTrim$(@RefIban)))=0, "", @EsrKonto +
Rep$('0', 20-Len(Report.Customer.CustomerNumber) - 8) + Report.Customer.CustomerNumber +
Rep$('0', 8-Len(Report.InvoiceNumber)) + Report.InvoiceNumber +
Fstr$(CheckMod10 (@EsrKonto +
Rep$('0', 20-Len(Report.Customer.CustomerNumber) - 8) + Report.Customer.CustomerNumber +
Rep$('0', 8-Len(Report.InvoiceNumber)) + Report.InvoiceNumber), '#', 1)
+ JTL_SavePaymentReference(Report.InternalId, @EsrKonto +
Rep$('0', 20-Len(Report.Customer.CustomerNumber) - 8) + Report.Customer.CustomerNumber +
Rep$('0', 8-Len(Report.InvoiceNumber)) + Report.InvoiceNumber +
Fstr$(CheckMod10 (@EsrKonto +
Rep$('0', 20-Len(Report.Customer.CustomerNumber) - 8) + Report.Customer.CustomerNumber +
Rep$('0', 8-Len(Report.InvoiceNumber)) + Report.InvoiceNumber), '#', 1)))

@RefTyp: Cond(Len(@RefNr) = 0, "NON", "QRR")

Als nächstes erstellen wir den QR-Code. Dafür einfach einen Barcode einfügen. Diesen füllen wir aus einer Formel:
Den Anhang 54218 betrachten

Die Formel lautet:
Code:
Barcode ("SPC¶" +
"0200¶" +
"1¶" +
Cond(Len(Ltrim$(Rtrim$(@RefIban))) = 0, Report.Company.IBAN, @RefIban) +"¶" +
"K¶" +
Report.Company.CompanyName +"¶" +
Report.Company.Address +"¶" +
Report.Company.PostalCode +" " + Report.Company.City + "¶" +
"¶" +
"¶" +
Report.Company.CountryISO +"¶" +
"¶" +
"¶" +
"¶" +
"¶" +
"¶" +
"¶" +
"¶" +
CStr$(Report.TotalGrossPrice, '%.2f') + "¶" +
Report.CurrencyISO + "¶" +
"K¶" +
Cond(Len(Ltrim$(Rtrim$(Report.Address.Company))) = 0, Report.Address.FirstName + " " + Report.Address.LastName, Report.Address.Company) + "¶" +
Report.Address.Address + "¶" +
Ltrim$(Rtrim$(Report.Address.AddressSupplement +" " +Report.Address.PostalCode +" " + Report.Address.City)) + "¶" +
"¶" +
"¶" +
Report.Address.CountryISO + "¶" +
@RefTyp + "¶" +
@RefNr + "¶" +
"Invoice " + Report.InvoiceNumber + "¶" +
"EPD","QRCode")
Hallo,
Wie hast du das Problem mit der fehlenden UTF-8 Formatierung für die Umlaute gelöst? Ich habe es auf sehr "unelegante" Weise mit der Funktion StrSubst$ für jeden einzelnen Umlaut und é,è etc. lösen können. Aber es müsste doch eine einfachere Variante geben??
 
  • Gefällt mir
Reaktionen: W&M Sport

phönix

Gut bekanntes Mitglied
26. Juli 2010
164
5
Schweiz
Hallo Zusammen,
mittlerweile Schreiben wir Januar 2024. Und in den Funktionen für die Bearbeitung der Rechnungsvorlage habe ich die Funktion "JTL_QR_SwissCode (Zeichenkette)" gefunden.
Ist das immer noch ein Rudiment vergangener Zeiten oder funktioniert das nun unterdessen?
Weil, in meinen Rechnungen wird ein wunderschöner QR-Code ausgegeben. Ich gehe mal davon aus, dass der für DE auch funktioniert. Leider jedoch nicht in der Schweiz.
Nun kann ich den zwar entfernen, um meine Kunden nicht zusätzlich zu verwirren, aber schöner wäre es ja doch, ich könnte den mit dem Swiss_QR-Code ersetzen.

Da ich meine Brötchen eher mit Anlagenbau als mit Programmierung verdiene, sind meine Fähigkeiten da eher begrenzt. Naheliegend war für mich, den Code "JTL_QRGiroCode" durch "JTL_QR_SwissCode" zu ersetzen. Aber wie man vermuten darf, funktioniert das nicht so einfach! Jetzt motzt er nämlich über Parse error: Invalid parameter bic. Dieser sieht aber nicht anders aus als inder originalen Version.

Lange Rede kurzer Sinn, bietet die WAWI aktuell nun einen funktionierenden Swiss_QR-Code?
 

nxso

Aktives Mitglied
18. November 2020
7
4
Falls wieder mal jemand auf diesen Beitrag stösst:
SwissQR-Code kannst man sich im Prinzip auch einfach selber zusammenbauen mit dem (Barcode-Objekt > Formel) nach der Dokumentation von SIX (dort kann man auch gleich das hübsche Kreuzchen in der Mitte herunterladen.
Code:
Barcode (
"SPC¶"
+"0200¶"
+"1¶"
+StrSubst$ (Report.Company.IBAN," ","")+"¶"
+"K¶"
[...usw]
,"QRCode")

Die PaymentReference kann man sich in den Dokumeneditor > Projekt > Benutzervariabeln eine Variable (zB @PaymentReference) erstellen und per Formel berechnen. Anschliessend eine 2. Variable erstellen (zB @PaymentReferenceSaveMethod) und mit dieser Formel die PaymentReference in der Rechnung speichern
Code:
JTL_SavePaymentReference(Report.InternalId,@PaymentReference)
 
  • Gefällt mir
Reaktionen: Ricky_Lee

Solarpeak

Aktives Mitglied
1. April 2021
16
4
Hat schon jemand den unstrukturierten Datentyp "K" auf strukturiert "S" geändert? Die Hausnummer muss ja auf eine eigene Zeile. Wie habt Ihr dies gelöst?
 

fhinok

Aktives Mitglied
9. September 2021
6
0
Hat schon jemand den unstrukturierten Datentyp "K" auf strukturiert "S" geändert? Die Hausnummer muss ja auf eine eigene Zeile. Wie habt Ihr dies gelöst?
Code:
# Strasse:
Atrim$(Left$(Report.Address.Address, StrRPos(Report.Address.Address," ")))

# Hausnummer:
Atrim$(Right$(Report.Address.Address, Len(Report.Address.Address) - StrRPos(Report.Address.Address," ")))

...und viel Hoffnung auf korrekte Eingaben😉
 

Ähnliche Themen