diff --git a/htdocs/compta/bank/bank.lib.php b/htdocs/compta/bank/bank.lib.php index 2f069eff0cd..8b306347618 100644 --- a/htdocs/compta/bank/bank.lib.php +++ b/htdocs/compta/bank/bank.lib.php @@ -43,25 +43,41 @@ \return int true si les infos sont bonnes, false si la clé ne correspond pas */ -function verif_rib($code_banque , $code_guichet , $num_compte , $cle, $iban) { - if (eregi("^FR",$iban)) { // Cas de la France - $coef = array(62, 34, 3) ; - // Concatenation des differents codes. - $rib = strtolower($code_banque.$code_guichet.$num_compte.$cle); - // On remplca les eventuelles lettres par des chiffres. - $rib = strtr($rib, "abcdefghijklmnopqrstuvwxyz","12345678912345678912345678"); - - // Separation du rib en 3 groupes de 7 + 1 groupe de 2. - // Multiplication de chaque groupe par les coef du tableau - for ($i=0, $s=0; $i<3; $i++) { - $code = substr($rib, 7 * $i, 7) ; - $s += (0 + $code) * $coef[$i] ; - } - - // Soustraction du modulo 97 de $s à 97 pour obtenir la clé RIB - $cle_rib = 97 - ($s % 97) ; - if ($cle_rib == $cle) { return true; } - return false; +function verif_rib($code_banque , $code_guichet , $num_compte , $cle, $iban) +{ + if (eregi("^FR",$iban)) + { // Cas de la France + + $coef = array(62, 34, 3) ; + + // Concatenation des differents codes. + $rib = strtolower(trim($code_banque).trim($code_guichet).trim($num_compte).trim($cle)); + + // On remplace les eventuelles lettres par des chiffres. + + //Ne marche pas + //$rib = strtr($rib, "abcdefghijklmnopqrstuvwxyz","12345678912345678912345678"); + + $rib = strtr($rib, "abcdefghijklmnopqrstuvwxyz","12345678912345678923456789"); + + print $rib; + // Separation du rib en 3 groupes de 7 + 1 groupe de 2. + // Multiplication de chaque groupe par les coef du tableau + for ($i=0, $s=0; $i<3; $i++) + { + $code = substr($rib, 7 * $i, 7) ; + $s += (0 + $code) * $coef[$i] ; + } + + // Soustraction du modulo 97 de $s à 97 pour obtenir la clé RIB + $cle_rib = 97 - ($s % 97) ; + + if ($cle_rib == $cle) + { + return true; + } + + return false; } return true;