[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