From d8d68248b2fbe9810663df60f30240ffe3f9f804 Mon Sep 17 00:00:00 2001 From: Karting06 Date: Sun, 21 Sep 2025 20:00:50 +0200 Subject: [PATCH] Fix VAT Syntax Checker for Belgian VAT numbers starting with 1 --- .../java/com/helger/masterdata/vat/VATINSyntaxChecker.java | 6 ++---- ph-masterdata/src/main/resources/codelists/vatin-data.xml | 2 +- .../com/helger/masterdata/vat/VATINSyntaxCheckerTest.java | 2 ++ 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ph-masterdata/src/main/java/com/helger/masterdata/vat/VATINSyntaxChecker.java b/ph-masterdata/src/main/java/com/helger/masterdata/vat/VATINSyntaxChecker.java index 200173d6..9bc75216 100644 --- a/ph-masterdata/src/main/java/com/helger/masterdata/vat/VATINSyntaxChecker.java +++ b/ph-masterdata/src/main/java/com/helger/masterdata/vat/VATINSyntaxChecker.java @@ -327,11 +327,9 @@ public static boolean isValidVATIN_BE (@Nonnull final String sVATIN) final char [] c = sVATIN.toCharArray (); if (c.length != 10) return false; - if (c[0] != '0') + if (c[0] != '0' && c[0] != '1') return false; - if (!_isNum1to9 (c[1])) - return false; - for (int i = 2; i <= 9; ++i) + for (int i = 1; i <= 9; ++i) if (!_isNum (c[i])) return false; diff --git a/ph-masterdata/src/main/resources/codelists/vatin-data.xml b/ph-masterdata/src/main/resources/codelists/vatin-data.xml index b3db3a70..d90946f7 100644 --- a/ph-masterdata/src/main/resources/codelists/vatin-data.xml +++ b/ph-masterdata/src/main/resources/codelists/vatin-data.xml @@ -21,7 +21,7 @@ ATU99999999 - + BE0999999999 diff --git a/ph-masterdata/src/test/java/com/helger/masterdata/vat/VATINSyntaxCheckerTest.java b/ph-masterdata/src/test/java/com/helger/masterdata/vat/VATINSyntaxCheckerTest.java index c527333d..6c6fec1b 100644 --- a/ph-masterdata/src/test/java/com/helger/masterdata/vat/VATINSyntaxCheckerTest.java +++ b/ph-masterdata/src/test/java/com/helger/masterdata/vat/VATINSyntaxCheckerTest.java @@ -42,6 +42,7 @@ public void testBasic () assertFalse (VATINSyntaxChecker.isValidVATIN ("ATU63030067")); assertTrue (VATINSyntaxChecker.isValidVATIN ("BE0776091951")); + assertTrue (VATINSyntaxChecker.isValidVATIN ("BE1019887692")); assertFalse (VATINSyntaxChecker.isValidVATIN ("BE077609195")); assertFalse (VATINSyntaxChecker.isValidVATIN ("BE0776091962")); assertFalse (VATINSyntaxChecker.isValidVATIN ("BE2H000687700")); @@ -279,6 +280,7 @@ public void testValid () assertTrue (VATINSyntaxChecker.isValidVATIN ("BE0846985786")); assertTrue (VATINSyntaxChecker.isValidVATIN ("BE0875730549")); assertTrue (VATINSyntaxChecker.isValidVATIN ("BE0881858474")); + assertTrue (VATINSyntaxChecker.isValidVATIN ("BE1019887692")); assertTrue (VATINSyntaxChecker.isValidVATIN ("BG000220548")); assertTrue (VATINSyntaxChecker.isValidVATIN ("BG020983095")); assertTrue (VATINSyntaxChecker.isValidVATIN ("BG030122572"));