<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */

/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */
class Pruefziffer_77 implements IPruefziffer
{
  public static function check($pKtoNr, $pBlz, $pGewichtung = array(), $pPruefZifferStelle = 9)
  {
    static $anzRekursionen = 0;
    if (empty($pGewichtung)) {
      $gewichtung = array(1, 2, 3, 4, 5, 0, 0, 0, 0, 0);
    } else {
      $gewichtung = $pGewichtung;
    }

    $ktoNr = str_pad($pKtoNr, 10, '0', STR_PAD_LEFT);
    $strZahl = strrev($ktoNr);

    $ary = PruefZiffHelpers::gewichten($strZahl, $gewichtung);
    $rest = array_sum($ary) % 11;

    if ($rest != 0 && $anzRekursionen == 0) {
      $gewichtung = array(5, 4, 3, 4, 5, 0, 0, 0, 0, 0);

      $anzRekursionen++;

      return self::check($pKtoNr, $pBlz, $gewichtung, $pPruefZifferStelle);
    } else {
      $anzRekursionen--;

      return ($rest == 0);
    }
  }
}