From 64b7c07e37cb00f4bd2bd2acfe3ec02899722119 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 21 Feb 2010 17:27:21 +0000 Subject: [PATCH] Add function to check swiss bvrb number. --- htdocs/lib/functions_ch.lib.php | 172 ++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 htdocs/lib/functions_ch.lib.php diff --git a/htdocs/lib/functions_ch.lib.php b/htdocs/lib/functions_ch.lib.php new file mode 100644 index 00000000000..dfc01bab9f5 --- /dev/null +++ b/htdocs/lib/functions_ch.lib.php @@ -0,0 +1,172 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * or see http://www.gnu.org/ + */ + +/** + * \file htdocs/lib/functions_ch.lib.php + * \brief A set of swiss functions for Dolibarr + * This file contains rare functions. + * \version $Id$ + */ + + +/** + * Return if a BVRB number is valid or not (For switzerland) + * + * @param string BVRB number + * @return bool True if OK, false if KO + */ +function dol_ch_controle_bvrb ($bvrb) +{ + // Init array for control + $tableau[0][0]=0; + $tableau[0][1]=9; + $tableau[0][2]=4; + $tableau[0][3]=6; + $tableau[0][4]=8; + $tableau[0][5]=2; + $tableau[0][6]=7; + $tableau[0][7]=1; + $tableau[0][8]=3; + $tableau[0][9]=5; + $tableau[0][10]=0; + + $tableau[1][0]=9; + $tableau[1][1]=4; + $tableau[1][2]=6; + $tableau[1][3]=8; + $tableau[1][4]=2; + $tableau[1][5]=7; + $tableau[1][6]=1; + $tableau[1][7]=3; + $tableau[1][8]=5; + $tableau[1][9]=0; + $tableau[1][10]=9; + + $tableau[2][0]=4; + $tableau[2][1]=6; + $tableau[2][2]=8; + $tableau[2][3]=2; + $tableau[2][4]=7; + $tableau[2][5]=1; + $tableau[2][6]=3; + $tableau[2][7]=5; + $tableau[2][8]=0; + $tableau[2][9]=9; + $tableau[2][10]=8; + + $tableau[3][0]=6; + $tableau[3][1]=8; + $tableau[3][2]=2; + $tableau[3][3]=7; + $tableau[3][4]=1; + $tableau[3][5]=3; + $tableau[3][6]=5; + $tableau[3][7]=0; + $tableau[3][8]=9; + $tableau[3][9]=4; + $tableau[3][10]=7; + + $tableau[4][0]=8; + $tableau[4][1]=2; + $tableau[4][2]=7; + $tableau[4][3]=1; + $tableau[4][4]=3; + $tableau[4][5]=5; + $tableau[4][6]=0; + $tableau[4][7]=9; + $tableau[4][8]=4; + $tableau[4][9]=6; + $tableau[4][10]=6; + + $tableau[5][0]=2; + $tableau[5][1]=7; + $tableau[5][2]=1; + $tableau[5][3]=3; + $tableau[5][4]=5; + $tableau[5][5]=0; + $tableau[5][6]=9; + $tableau[5][7]=4; + $tableau[5][8]=6; + $tableau[5][9]=8; + $tableau[5][10]=5; + + $tableau[6][0]=7; + $tableau[6][1]=1; + $tableau[6][2]=3; + $tableau[6][3]=5; + $tableau[6][4]=0; + $tableau[6][5]=9; + $tableau[6][6]=4; + $tableau[6][7]=6; + $tableau[6][8]=8; + $tableau[6][9]=2; + $tableau[6][10]=4; + + $tableau[7][0]=1; + $tableau[7][1]=3; + $tableau[7][2]=5; + $tableau[7][3]=0; + $tableau[7][4]=9; + $tableau[7][5]=4; + $tableau[7][6]=6; + $tableau[7][7]=8; + $tableau[7][8]=2; + $tableau[7][9]=7; + $tableau[7][10]=3; + + $tableau[8][0]=3; + $tableau[8][1]=5; + $tableau[8][2]=0; + $tableau[8][3]=9; + $tableau[8][4]=4; + $tableau[8][5]=6; + $tableau[8][6]=8; + $tableau[8][7]=2; + $tableau[8][8]=7; + $tableau[8][9]=1; + $tableau[8][10]=2; + + $tableau[9][0]=5; + $tableau[9][1]=0; + $tableau[9][2]=9; + $tableau[9][3]=4; + $tableau[9][4]=6; + $tableau[9][5]=8; + $tableau[9][6]=2; + $tableau[9][7]=7; + $tableau[9][8]=1; + $tableau[9][9]=3; + $tableau[9][10]=1; + + + // Clean data + $bv=str_replace(' ','',$bvrb); + + // Make control + $report=0; + while (strlen($bv)>1) + { + $match=substr($bv,0,1); + $report=$tableau[$report][$match]; + $bv=substr($bv,1); + } + $controle=$tableau[$report][10]; + + return ($controle==$bv); +}