UNPKG

sprinque-js-sdk-wip

Version:

UI kit to implement Pay by Invoice with Sprinque

84 lines (83 loc) 3.02 kB
import { getTranslationKey } from './helpers'; const SUPPORTED_COUNTRY_CODES = ['nl', 'be', 'es', 'fr', 'NL', 'BE', 'ES', 'FR']; const SUPPORTED_LANGUAGES = ['en', 'nl', 'de', 'es', 'fr']; export const checkRegistrationNumber = (regNumber, countryCode, lang = 'en') => { if (!regNumber || !countryCode) { return { isValid: false, message: getTranslationKey(lang, 'errors', 'required') }; } switch (countryCode.toLowerCase()) { case 'nl': { // The Netherlands if (Number.isInteger(+regNumber) && regNumber.length === 8) { return { isValid: true, message: '' }; } else if (Number.isInteger(+regNumber) && regNumber.length === 12) { return { isValid: false, message: getTranslationKey(lang, 'errors', 'deleteFourLastDigits'), }; } else { return { isValid: false, message: getTranslationKey(lang, 'errors', 'formatIs') + ' "77651006"', }; } } case 'be': { // Belgium // Not allowing to use values like BE0711949514, as it is VAT ID. if (Number.isInteger(+regNumber) && regNumber.length === 9) { return { isValid: true, message: '' }; } else if (regNumber.toLowerCase().startsWith('be')) { return { isValid: false, message: getTranslationKey(lang, 'errors', 'itIsVat') + ' "071194951"', }; } else { return { isValid: false, message: getTranslationKey(lang, 'errors', 'formatIs') + ' "071194951"', }; } } case 'es': { // Spain if (regNumber.length === 9) { return { isValid: true, message: '' }; } else { return { isValid: false, message: getTranslationKey(lang, 'errors', 'formatIs') + ' "00275914Y" or "B10612307"', }; } } case 'fr': { // France if (Number.isInteger(+regNumber) && regNumber.length === 9) { return { isValid: true, message: '' }; } else if (regNumber.toLowerCase().startsWith('fr')) { return { isValid: false, message: getTranslationKey(lang, 'errors', 'itIsVat') + ' "410034607"', }; } else { return { isValid: false, message: getTranslationKey(lang, 'errors', 'formatIs') + ' "410034607"', }; } } default: { return { isValid: true, message: '', }; } } };