...
- W_FLG_CTRL contient une valeur *Vrai si le SIRET ou SIREN est valide, *Faux sinon.
Bloc de code | ||
---|---|---|
| ||
[DECLARATION] Alpha(9) WA_SIREN Alpha(14) WA_SIRET Nun_E(14,0) WN_SIRET Alpha(1) W_A Nun_E(1,0) W_N Num_Bin_2 W_POS Bool W_IMPAIRE Num_E(3,0) W_SOM Num_E(1,0) W_UNIT Num_E(2,0) W_DIZ |
Bloc de code | ||
---|---|---|
| ||
[TRAITEMENT] Si ZADH_NIC_ADH = 0 /* ___ traitement SIREN ____________________________________________ Placer_A_Droite ZADH_NUM_SIR_ADH WA_SIREN W_POS = 9 W_IMPAIRE = *Vrai Tant_Que W_POS >= 1 W_A = &Extraction(WA_SIREN;W_POS;1) W_N = &Alpha_Num(W_A) Si W_IMPAIRE /* --- impair W_SOM = W_SOM + W_N Sinon /* --- pair W_DIZ = W_N * 2 Si W_DIZ <= 9 W_SOM = W_SOM + W_DIZ Sinon /* --- Résultat multiplication sur 2 positions W_DIZ = W_DIZ - 10 W_SOM = W_SOM + 1 + W_DIZ Fin Fin W_POS = W_POS - 1 W_IMPAIRE = Non W_IMPAIRE Refaire Sinon /* ___ traitement SIRET ____________________________________________ WN_SIRET = (ZADH_NUM_SIR_ADH * 100000) + ZADH_NIC_ADH Placer_A_Droite WN_SIRET WA_SIRET W_POS = 14 W_IMPAIRE = *Vrai Tant_Que W_POS >= 1 W_A = &EXTRACTION(WA_SIRET;W_POS;1) W_N = &ALPHA_NUM(W_A) Si W_IMPAIRE /* --- impair W_SOM = W_SOM + W_N Sinon /* --- pair W_DIZ = W_N * 2 Si W_DIZ <= 9 W_SOM = W_SOM + W_DIZ Sinon /* --- Résultat multiplication sur 2 positions W_DIZ = W_DIZ - 10 W_SOM = W_SOM + 1 + W_DIZ Fin Fin W_POS = W_POS - 1 W_IMPAIRE = Non W_IMPAIRE Refaire Fin /* ___ Récupère l'unité de W_SOM ______________________________________ W_UNIT = W_SOM / 10 Reste W_UNIT W_FLG_CTRL = (W_UNIT = 0) |
...