[Kobv-opus-tester] Prüfziffernberechnung GND-Nummer

Bettina Lapp Bettina.Lapp at bibliothek.uni-augsburg.de
Mi Sep 23 17:39:05 CEST 2015


Liebe OPUS4-Entwickler,

bei der Eingabe der Autoren-GND-Nummer im Admin-Formular ist uns
aufgefallen, daß anscheinend die Prüfziffer der GND-ID falsch berechnet
wird, so daß korrekte GND-ID als falsch abgewiesen werden.

Doku zur Prüfziffer hier:
https://wiki.dnb.de/pages/viewpage.action?pageId=48139522

Vorschlag zur Änderung von $BASEDIR/opus4/library/Form/Validate/Gnd.php:

 65     /**
 66       * Calculates the GND check digit.
 67       */
 68     public static function generateCheckDigit($baseDigits) {
 69         $total = 0;
 70         //$weight = 11;
 71         $weight = 2;
 72         //for ($i = 0; $i < strlen($baseDigits) - 1; $i++) {
 73         for ($i = strlen($baseDigits) - 2; $i >= 0; $i--) {
 74             $digit = intval($baseDigits{$i});
 75             //$total += $digit * ($weight - $i);
 76             $total += $digit * $weight; $weight++;
 77         }
 78         $remainder = $total % 11;
 79         $result = (11 - $remainder) % 11;
 80         $r = $result == 10 ? "X" : (string) $result;
 81         return $result == 10 ? "X" : (string) $result;
 82     }


herzliche Grüße, Bettina Lapp
-- 
Universitätsbibliothek Augsburg
Referat Datenverarbeitung
86135 Augsburg
Tel. +49 821 598-5370
Fax  +49 821 598-5407
bettina.lapp at bibliothek.uni-augsburg.de
http://www.bibliothek.uni-augsburg.de


Mehr Informationen über die Mailingliste Kobv-opus-tester