sprinque-js-sdk-wip
Version:
UI kit to implement Pay by Invoice with Sprinque
84 lines (83 loc) • 3.02 kB
JavaScript
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: '',
};
}
}
};