checkSpainBBAN function

bool checkSpainBBAN(
  1. String bban
)

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);
}