weboob.tools.capabilities.bank.investments

weboob.tools.capabilities.bank.investments.is_isin_valid(isin)

Méthode générale Table de conversion des lettres en chiffres A=10 B=11 C=12 D=13 E=14 F=15 G=16 H=17 I=18 J=19 K=20 L=21 M=22 N=23 O=24 P=25 Q=26 R=27 S=28 T=29 U=30 V=31 W=32 X=33 Y=34 Z=35

1 - Mettre de côté la clé, qui servira de référence à la fin de la vérification. 2 - Convertir toutes les lettres en nombres via la table de conversion ci-contre. Si le nombre obtenu est supérieur ou égal à 10, prendre les deux chiffres du nombre séparément (exemple : 27 devient 2 et 7). 3 - Pour chaque chiffre, multiplier sa valeur par deux si sa position est impaire en partant de la droite. Si le nombre obtenu est supérieur ou égal à 10, garder les deux chiffres du nombre séparément (exemple : 14 devient 1 et 4). 4 - Faire la somme de tous les chiffres. 5 - Soustraire cette somme de la dizaine supérieure ou égale la plus proche (exemples : si la somme vaut 22, la dizaine « supérieure ou égale » est 30, et la clé vaut donc 8 ; si la somme vaut 30, la dizaine « supérieure ou égale » est 30, et la clé vaut 0 ; si la somme vaut 31, la dizaine « supérieure ou égale » est 40, et la clé vaut 9). 6 - Comparer la valeur obtenue à la clé mise initialement de côté.

Étapes 1 et 2 : F R 0 0 0 3 5 0 0 0 0 (+ 8 : clé) 15 27 0 0 0 3 5 0 0 0 0

Étape 3 : le traitement se fait sur des chiffres 1 5 2 7 0 0 0 3 5 0 0 0 0 I P I P I P I P I P I P I : position en partant de la droite (P = Pair, I = Impair) 2 1 2 1 2 1 2 1 2 1 2 1 2 : coefficient multiplicateur

2 5 4 7 0 0 0 3 10 0 0 0 0 : résultat

Étape 4 : 2 + 5 + 4 + 7 + 0 + 0 + 0 + 3 + (1 + 0)+ 0 + 0 + 0 + 0 = 22

Étapes 5 et 6 : 30 - 22 = 8 (valeur de la clé)