Yurck
Messages postés1Date d'inscriptionmardi 18 octobre 2005StatutMembreDernière intervention 9 juillet 2009 9 juil. 2009 à 14:41
Merci pour ton code.
A noter qu'un contrôle supplémentaire peut être fait sur la tva intra française.
En effet sa structure est ainsi faite
FR XX 999 9999 99Y
Où XX représente une clef informatique dont je ne connais pas la méthode de contrôle
mais Y est une clé de contrôle des 8 chiffres précédents (le tout formant le code SIREN)
Le principe est le suivant : on multiplie les chiffres de rang impair à partir de la droite par 1,
ceux de rang pair par 2 ; la somme des chiffres obtenus doit être un multiple de 10.
exemple : soit le SIREN 732 829 320
pour vérifier : 7 3 2 8 2 9 3 2 0
rang pair x 2 : 6 16 18 4
rang impair x 1 : 7 2 2 3 0
----------------------
somme : 7+6+2+1+6+2+1+8+3+4+0 = 40
Le numéro est exact.
Je ne connais pas le VB alors je laisse le soin à qui en a besoin de faire ce bout de code.
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20108 3 févr. 2006 à 18:01
NB : ça serait sympas d'indiquer pourquoi vous mettez une mauvaise note afin que je puisse améliorer le code ou clarifier des points. Sinon ça n'a pas de sens.
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20108 3 févr. 2006 à 16:21
ECONS > je suppose que c'est pour ça. Je n'ai pas trouvé le detail dans la doc. Etant donné que ni Ecosse, ni Pays de Galles ont un code pays, j'imagine que GB les regroupent.
De toute façon, les codes pays sont fixés par les pays membres de UE et ne sont donc pas de moi.
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 3 févr. 2006 à 16:10
Zlub > Y'a pas de problème, tu peux laisser comme c'est là. Y'a pas de faute de programmation.
Je me demandais : le Case "GB" ne serait-il pas de la forme :
isIntraComValide = (Angleterre_valide Or Ecosse_Valide Or Pays_de_Galles_Valide) ?
C'est pour çà que tu l'as appelé GB ?
katsankat
Messages postés571Date d'inscriptionvendredi 30 décembre 2005StatutMembreDernière intervention12 juillet 20123 3 févr. 2006 à 16:06
Salut si tu veux on le fait ensemble car je vais faire le client en C sous linux: la méthode est la même.
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20108 3 févr. 2006 à 15:34
Salut,
Merci pour vos commentaires.
KatSankat > en effet, j'ai prévu de m'occuper de ça. En l'état c'est une version "autonome" donc sans connexion au Net. Mais l'idée de vraiment vérifier me plait bien et je vais sans doute bosser dessus.
ECONS > C'est vonlontairement que j'ai fait ainsi en hésitant sur ce point. J'ai opté pour cette solution pour faciliter les modifications au cas où les codes d'un pays changerait. Je me renseigne sur ce point et le cas échéant, je réduirais le nombres de lignes.
++
Zlub
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 3 févr. 2006 à 14:55
Pour ceux qui voudraient écrire beaucoup moins de lignes de code, il est possible de regrouper les pays qui nécessitent les mêmes actions.
Comme ces actions-ci :
Case "DE": isIntraComValide (finLength 9) And IsNumeric(fin) ' Allemagne
Case "EL": isIntraComValide (finLength 9) And IsNumeric(fin) ' Grèce
Case "GR": isIntraComValide (finLength 9) And IsNumeric(fin) ' Grèce
Case "PT": isIntraComValide (finLength 9) And IsNumeric(fin) ' Portugal
Case "EE": isIntraComValide (finLength 9) And IsNumeric(fin) ' Estonie
qui se regroupent comme ceci :
Case "DE","EL","GR","PT","EE": isIntraComValide (finLength 9) And IsNumeric(fin)
On peut ainsi enlever dix lignes de ton code.
Chacun fait comme il préfère. Ce n'est en aucun cas une critique de ta source qui est propre et facile à lire.
katsankat
Messages postés571Date d'inscriptionvendredi 30 décembre 2005StatutMembreDernière intervention12 juillet 20123 3 févr. 2006 à 06:47
J'aime. Et c'est du bon VB.
Deux remarques:
Il faut affiner le Royaume-Uni.
Ce qui serait intéressant serait un client HTTP qui vérifie en ligne: autant bénéficier de la base de données actualisée en temps réel.
9 juil. 2009 à 14:41
A noter qu'un contrôle supplémentaire peut être fait sur la tva intra française.
En effet sa structure est ainsi faite
FR XX 999 9999 99Y
Où XX représente une clef informatique dont je ne connais pas la méthode de contrôle
mais Y est une clé de contrôle des 8 chiffres précédents (le tout formant le code SIREN)
Le principe est le suivant : on multiplie les chiffres de rang impair à partir de la droite par 1,
ceux de rang pair par 2 ; la somme des chiffres obtenus doit être un multiple de 10.
exemple : soit le SIREN 732 829 320
pour vérifier : 7 3 2 8 2 9 3 2 0
rang pair x 2 : 6 16 18 4
rang impair x 1 : 7 2 2 3 0
----------------------
somme : 7+6+2+1+6+2+1+8+3+4+0 = 40
Le numéro est exact.
Je ne connais pas le VB alors je laisse le soin à qui en a besoin de faire ce bout de code.
3 févr. 2006 à 18:01
3 févr. 2006 à 16:21
De toute façon, les codes pays sont fixés par les pays membres de UE et ne sont donc pas de moi.
3 févr. 2006 à 16:10
Je me demandais : le Case "GB" ne serait-il pas de la forme :
isIntraComValide = (Angleterre_valide Or Ecosse_Valide Or Pays_de_Galles_Valide) ?
C'est pour çà que tu l'as appelé GB ?
3 févr. 2006 à 16:06
3 févr. 2006 à 15:34
Merci pour vos commentaires.
KatSankat > en effet, j'ai prévu de m'occuper de ça. En l'état c'est une version "autonome" donc sans connexion au Net. Mais l'idée de vraiment vérifier me plait bien et je vais sans doute bosser dessus.
ECONS > C'est vonlontairement que j'ai fait ainsi en hésitant sur ce point. J'ai opté pour cette solution pour faciliter les modifications au cas où les codes d'un pays changerait. Je me renseigne sur ce point et le cas échéant, je réduirais le nombres de lignes.
++
Zlub
3 févr. 2006 à 14:55
Comme ces actions-ci :
Case "DE": isIntraComValide (finLength 9) And IsNumeric(fin) ' Allemagne
Case "EL": isIntraComValide (finLength 9) And IsNumeric(fin) ' Grèce
Case "GR": isIntraComValide (finLength 9) And IsNumeric(fin) ' Grèce
Case "PT": isIntraComValide (finLength 9) And IsNumeric(fin) ' Portugal
Case "EE": isIntraComValide (finLength 9) And IsNumeric(fin) ' Estonie
qui se regroupent comme ceci :
Case "DE","EL","GR","PT","EE": isIntraComValide (finLength 9) And IsNumeric(fin)
On peut ainsi enlever dix lignes de ton code.
Chacun fait comme il préfère. Ce n'est en aucun cas une critique de ta source qui est propre et facile à lire.
3 févr. 2006 à 06:47
Deux remarques:
Il faut affiner le Royaume-Uni.
Ce qui serait intéressant serait un client HTTP qui vérifie en ligne: autant bénéficier de la base de données actualisée en temps réel.