Bug 20811: (QA follow-up) Make the isbn check work
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Fri, 20 Jul 2018 09:21:11 +0000 (11:21 +0200)
committerFridolin Somers <fridolin.somers@biblibre.com>
Mon, 24 Sep 2018 13:04:12 +0000 (15:04 +0200)
The following code was never reached, since $isbn was not filled.
    if (!$biblionumber && $isbn_check && $isbn) {
        $sth_isbn->execute($isbn);
        ($biblionumber,$biblioitemnumber) = $sth_isbn->fetchrow;
    }
Solution: Fix the code with two $isbn declarations. Move the checkisbn
condition a level deeper.

Test plan:
Run misc/migration_tools/bulkmarcimport.pl -file bib726.utf8 --update -isbn
Since you do not match on biblionumber, the ISBN should match.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit a49a7f08d6dbaf992d70420dae744c75c2ad8aae)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit 5094909140081b02c9688faa07fc630feab91f24)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
(cherry picked from commit 8989ceb93fd002b91257c370e1584cacae193678)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

misc/migration_tools/bulkmarcimport.pl

index 389bafb..5b4d6ca 100755 (executable)
@@ -266,11 +266,11 @@ RECORD: while (  ) {
     &$localcust($record) if $localcust;
     my $isbn;
     # remove trailing - in isbn (only for biblios, of course)
-    if ($biblios && $cleanisbn) {
+    if( $biblios ) {
         my $tag = $marcFlavour eq 'UNIMARC' ? '010' : '020';
         my $field = $record->field($tag);
-        my $isbn = $field && $field->subfield('a');
-        if ( $isbn ) {
+        $isbn = $field && $field->subfield('a');
+        if ( $isbn && $cleanisbn ) {
             $isbn =~ s/-//g;
             $field->update('a' => $isbn);
         }