From ef5e5c161aef4e16882c282879e34120d7ddd7a4 Mon Sep 17 00:00:00 2001 From: Ramon Balthazar Date: Tue, 4 Jun 2024 10:18:44 +0100 Subject: [PATCH] fix: French VAT checksum failing for leading zero --- src/fr/tva.spec.ts | 2 ++ src/fr/tva.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/fr/tva.spec.ts b/src/fr/tva.spec.ts index f848419..53561c4 100644 --- a/src/fr/tva.spec.ts +++ b/src/fr/tva.spec.ts @@ -19,6 +19,8 @@ describe('fr/tva', () => { '23334175221', 'K7399859412', '4Z123456782', + '04494887854', // First digit of checksum is 0 + 'FR04494887854', // First digit of checksum is 0 'FR84323140392', ])('validate:%s', value => { const result = validate(value); diff --git a/src/fr/tva.ts b/src/fr/tva.ts index 1bc8355..40dec79 100644 --- a/src/fr/tva.ts +++ b/src/fr/tva.ts @@ -80,7 +80,7 @@ const impl: Validator = { if (strings.isdigits(check)) { const sum = (12 + 3 * (parseInt(back, 10) % 97)) % 97; - if (String(sum) !== check) { + if (sum !== parseInt(check, 10)) { return { isValid: false, error: new exceptions.InvalidChecksum() }; } } else {