Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

  • W_FLG_CTRL contient une valeur *Vrai si le SIRET ou SIREN est valide, *Faux sinon.
Bloc de code
languageadelia
[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
languageadelia
[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)

...