checkSpainBBAN function
Spain (ES) BBAN check
@ignore
Implementation
bool checkSpainBBAN(String bban) {
const List<int> weightsBankBranch = <int>[4, 8, 5, 10, 9, 7, 3, 6];
const List<int> weightsAccount = <int>[1, 2, 4, 8, 5, 10, 9, 7, 3, 6];
final int controlBankBranch = int.parse(bban[8], radix: 10);
final int controlAccount = int.parse(bban[9], radix: 10);
final String bankBranch = bban.substring(0, 8);
final String account = bban.substring(10, 20);
int sum = 0;
for (int index = 0; index < 8; index++) {
sum += int.parse(bankBranch[index], radix: 10) * weightsBankBranch[index];
}
int remainder = sum % 11;
if (controlBankBranch !=
(remainder == 0
? 0
: remainder == 1
? 1
: 11 - remainder)) {
return false;
}
sum = 0;
for (int index = 0; index < 10; index++) {
sum += int.parse(account[index], radix: 10) * weightsAccount[index];
}
remainder = sum % 11;
return controlAccount ==
(remainder == 0
? 0
: remainder == 1
? 1
: 11 - remainder);
}