Abgelehnt [SHOP-2159] USt-ID Format Fehler Frankreich?

Baltazar80

Gut bekanntes Mitglied
18. Januar 2014
101
1
Hallo,

wir haben erneut ein Fehler mit der Eingabe der USt-ID, diesmal betrifft es Frankreich.

Dort kommt immer die Fehlermeldung, dass die ID in folgendem Format sein muss: FR999999999

aber wir haben einen Kunden, bei dem die USt-ID an der zweiten Stelle einen Buchstaben hat, also so z.B. FR0A000000000.

Nur leider können weder wir noch der Kunde das so eingeben, weil wie gesagt das Format nicht angenommen wird.

Ich habe das geprüft und es ist tatsächlich so, dass die französiche USt-ID einen Buchstaben enthalten kann.

Hier mal was ich recherchiert habe:
"Frankreich: elf, nur Ziffern bzw. die erste und / oder die zweite Stelle kann ein Buchstabe sein"

Wie kann ich dass den in JTL Shop ändern, dass der auch bei Frankreich Buchstaben akzeptiert?
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
737
83
Halle (Saale)

Baltazar80

Gut bekanntes Mitglied
18. Januar 2014
101
1
Ja, ich bin mir sicher, wie gesagt, nachdem der Kunde uns das mitgeteilt hat, habe ich selber recherchiert, und bei mir kommen bei allen Google Ergebnissen, dass die ersten beiden Stellen nach "FR" auch Buchstaben sein können.

Hier mal ein Link zum Bundeszentralamt für Steuern:

https://www.bzst.de/DE/Steuern_Inte...er/Merkblaetter/Aufbau_USt_IdNr.html?nn=19560

In der PDF kann man lesen, dass die ersten beiden Stellen Buchstaben enthalten können.

Wie könnte ich das jetzt händisch ändern, so dass auch Buchstaben akzeptiert werden?
 
Zuletzt bearbeitet:

Mirko.Schmidt

Moderator
Mitarbeiter
14. August 2015
1.801
127
Hallo,
ich habe dazu einmal folgendes Ticket angelegt https://issues.jtl-software.de/issues/SHOP-2159. In der genannten Code Stelle von FMoche muss der Regex angepasst werden, sodass dieser auch Zeichen zulässt. Muss gerade selbst erstmal schauen wie der dann aufgebaut sein muss.

EDIT:
../classes/class.JTL- Shop.UstID.php Zeile 317-318 müssen ausgetauscht werden und zwar sieht es so bisher aus:
Code:
if (preg_match('/^[0-9]{11}$/', $cIDNummer) !== 1) {
                    $oReturn->cError = 'FR99999999999';
es muss aber so aussehen:
Code:
if (preg_match('/^[A-Z0-9]{2}[0-9]{9}$/', $cIDNummer) !== 1) {
                    $oReturn->cError = 'FRXX999999999';