checkCzechAndSlovakBBAN function

bool checkCzechAndSlovakBBAN(
  1. String bban
)

Czech (CZ) and Slowak (SK) BBAN check

@ignore

Implementation

bool checkCzechAndSlovakBBAN(String bban) {
  const List<int> weightsPrefix = <int>[10, 5, 8, 4, 2, 1];
  const List<int> weightsSuffix = <int>[6, 3, 7, 9, 10, 5, 8, 4, 2, 1];
  final int controlPrefix = int.parse(bban[9], radix: 10);
  final int controlSuffix = int.parse(bban[19], radix: 10);
  final String prefix = bban.substring(4, 9);
  final String suffix = bban.substring(10, 19);
  int sum = 0;
  for (int index = 0; index < prefix.length; index++) {
    sum += int.parse(prefix[index], radix: 10) * weightsPrefix[index];
  }
  int remainder = sum % 11;
  if (controlPrefix !=
      (remainder == 0
          ? 0
          : remainder == 1
              ? 1
              : 11 - remainder)) {
    return false;
  }
  sum = 0;
  for (int index = 0; index < suffix.length; index++) {
    sum += int.parse(suffix[index], radix: 10) * weightsSuffix[index];
  }
  remainder = sum % 11;
  return controlSuffix ==
      (remainder == 0
          ? 0
          : remainder == 1
              ? 1
              : 11 - remainder);
}