<?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_28 implements IPruefziffer
{
  public static function check($pKtoNr, $pBlz, $pGewichtung = array(), $pPruefZifferStelle = 7)
  {
    if (empty($pGewichtung)) {
      $gewichtung = array(0, 0, 0, 2, 3, 4, 5, 6, 7, 8);
    } 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) and ($rest != 1)) {
      $result = (11 - $rest) % 10;
    } else {
      $result = 0;
    }

    return ($result == $ktoNr[$pPruefZifferStelle]);
  }
}