Cette table permet de définir les codes pays utilisés par le logiciel, ainsi que les caractéristiques associées, et notamment les contrôles à réaliser sur des informations normalisées.

Pré-requis

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Gestion de l'écran

En-tête

Onglet Général

Onglet Coordonnées

Onglet Banque

Législation Belge

Programme contrôle

Dans la zone "Programme contrôle", il est possible de renseigner le contrôle CONTBELG lié à la législation belge.
Ce contrôle permet de vérifier le formatage du numéro de TVA intracommunautaire et du RIB.

Contrôle du numéro de TVA

Rappel sur la structure du numéro de TVA Belge
Le numéro de TVA Belge est composé de la façon suivante : code pays + dix caractères numériques.
Par exemple, BE 0419. 618.535.

Le contrôle s'applique sur les fonctions "Société", "Tiers", "Prospects", "Clients", "Fournisseurs", "Représentants", "Transporteur", et pour lesquelles le pays est "BE".

Le programme de contrôle vérifie les deux derniers numéros par la formule suivante (check-digit modulo 97) :

  • Soit le numéro de TVA BE0419.618.535.
  • Retenir les 8 premiers chiffres : NbTVA=04196185.
  • Calculer le reste de la division : RT = Modulo (NbTVA/97) soit Modulo (04196185/97) = 62.
  • Soustraire 97-RT c'est-à-dire 97 - 62 = 35.

Le numéro de TVA est valide.

Contrôle du RIB

Rappel sur la structure du numéro RIB Belge
Le numéro de RIB Belge de douze chiffres est composé de la façon suivante : dix caractères numériques dont les trois premiers renseignent sur le code de la banque tenant le compte et les sept chiffres suivants indiquent le numéro de compte.
Les deux derniers chiffres sont contrôlés par un check-digit modulo 97.

  • Soit le numéro de compte 510-0075470-61.
  • Retenir les 10 premiers chiffres : Nb=5100075470.
  • Calculer le reste de la division : RT = Modulo (Nb/97) soit Modulo (5100075470/97) = 61.

Le numéro de compte est valide.

Ce contrôle s'applique sur les fonctions "Société", "Tiers", "Clients", "Fournisseurs", "Règlements", "Banque", et pour lesquelles le pays est "BE".

Lors de la saisie du RIB, sur les fiches citées ci-dessus, le contrôle se fait. Et ceci en fonction du pays et du paramétrage de la zone "Programme contrôle" défini sur la fiche "Pays".

Etats

Par défaut, les états suivants sont associés à la fonction :

  TABCOUNTRY : Pays

Mais ceci peut être modifié par paramétrage.

Messages d'erreur

Outre les messages génériques, les messages d'erreur suivants peuvent apparaître lors de la saisie :

Format trop long

Le format donné correspond à une information qui ne peut être stockée complètement dans la table.

Programme inexistant

Le programme de contrôle n’a pas été défini.

Tables mises en oeuvre

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Annexe technique : programme de contrôle

Les programmes de contrôles par pays doivent contenir un ensemble de sous-programmes normalisés qui font des contrôles additionnels de validité (par exemple, un test d’une clé de contrôle, ou de longueur), lorsque ces contrôles ne peuvent être réalisés par un simple format. Si de nouveaux programmes sont réalisés, la norme de nommage sera de les appeler CONT suivi du nom du pays (une abréviation pouvant être employée si le nom du pays est trop long, un traitement étant limité à 12 caractères).

Les sous-programmes nécessaires sont décrits ci-dessous :

 

##########################################################
##  Contrôle du RIB                                                                              ###
##  SPSTAT=0 si le RIB est correct
##  SPSTAT=1 si la clé de contrôle est incorrecte
##  SPSTAT=2 si la longueur du RIB n’est pas la bonne
##########################################################
Subprog RIB(RIB,SPSTAT)
Value Char RIB()
Variable Integer SPSTAT
End

 


##########################################################
##  Contrôle du SIRET                                                                         ###
##  SPSTAT=0 si le SIRET est correct
##  SPSTAT=1 si le SIRET est incorrect
##  SPSTAT=2 si la longueur du SIRET est incomplète
##########################################################
Subprog SIRET(SIRET,SPSTAT)
Variable Char SIRET()
Variable Integer SPSTAT
End

 


##########################################################
##  Contrôle du Numéro TVA                                                               ###
##  SPSTAT=0 si le code de TVA est correct
##  SPSTAT=1 si le code de TVA est incorrect
##########################################################
Subprog TVA(TVA,SPSTAT)
Value Char TVA()
Variable Integer SPSTAT
End

 


######################################################
##  Contrôle du no d'immatriculation sociale       ###
##  SPSTAT=0 si le numéro de sécurité sociale est correct
##  SPSTAT=1 si la clé de contrôle est incorrect
##  SPSTAT=3 si la numéro est incohérent vis à vis des autres paramètres s’ils ont été donnés
######################################################
Subprog SS(NOSS,ETR,SEX,DNAISS,DEPT,COMNNO,SPSTAT)
Value Char NOSS() : # Numéro de sécurité sociale
Value Char DEPT() : # Code département de naissance
Value Char COMNNO() : # Code commune de naissance
Value Integer SEX : # Sexe
Value Date DNAISS : # Date de naissance
Value Libelle ETR : # =1 si non étranger
Variable Integer SPSTAT
End

 

 ###############################################################
##  Sous-programme permettant de définir une valeur par défaut
#    pour le numéro d'immatriculation sociale       ###
###############################################################
Subprog VDSS(ETR,SEX,DNAISS,DEPT,COMNNO,NOSS)
Value Libelle ETR : # =1 si non étranger
Variable Char NOSS() : # Numéro renvoyé
Value Integer SEX : # Sexe
Value Date DNAISS : # Date de naissance
Value Char DEPT : # Code département
Value Char COMNO : # Code commune
End

 

##########################################################
##  Contrôle du numéro de téléphone                                                                    ###
##  STAT=0 si le numéro de téléphone est correct
##  STAT=1 si le numéro de téléphone est incorrect
 
##MESSA Libellé du message d'erreur
##########################################################
Subprog CNTTEL(TEL,MESSA,STAT)
Value Char TEL
Variable Char MESSA
Variable Integer STAT
End

 

##########################################################
##  Adaptation du format de la ville                                                                    ###
##  STAT=0 si le format est correct
##  STAT=1 si le format est incorrect
 
##MESSA Libellé du message d'erreur
##########################################################
Subprog FMTCTY(SCTY,MESSA,STAT)
Value Char SCTY
Variable Char MESSA
Variable Integer STAT

Raz  MESSA
STAT = 0

End