Created
November 22, 2016 13:31
-
-
Save denrad/4b82913373488678ddca6e4f3297d4af to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Алгоритм проверки счёта с помощью БИКа банка: | |
1. Изменение счета с учетом БИКа(см ниже). | |
2. Вычисляется контрольная сумма со следующими весовыми коэффициентами: (7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1) | |
3. Вычисляется контрольное число как остаток от деления контрольной суммы на 10 | |
4. Контрольное число сравнивается с нулём. В случае их равенства расчётного счёт считается правильным. | |
*/ | |
//функция проверки правильности указания банковского счёта | |
function fn_bank_account(Str) | |
{ | |
var result = false; | |
var Sum = 0; | |
//весовые коэффициенты | |
var v = [7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1,3,7,1]; | |
for (var i = 0; i <= 22; i++) | |
{ | |
//вычисляем контрольную сумму | |
Sum = Sum + ( Number(Str.charAt(i)) * v[i] ) % 10; | |
} | |
//сравниваем остаток от деления контрольной суммы на 10 с нулём | |
if(Sum % 10 == 0) | |
{ | |
result = true; | |
} | |
return result; | |
} | |
/* | |
Проверка правильности указания корреспондентского счёта: | |
1. Для проверки контрольной суммы перед корреспондентским счётом добавляются "0" и два знака БИКа банка, начиная с пятого знака. | |
*/ | |
function fn_checkKS(Account,BIK) | |
{ | |
return fn_bank_account('0'+BIK.substr(4,2)+Account); | |
} | |
/* | |
Проверка правильности указания расчётного счёта: | |
1. Для проверки контрольной суммы перед расчётным счётом добавляются три последние цифры БИКа банка. | |
*/ | |
function fn_checkRS(Account,BIK) | |
{ | |
return fn_bank_account(BIK.substr(6,3)+Account); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment