From 12feed267c84e7e68aacc988aed70af93a5a4f61 Mon Sep 17 00:00:00 2001 From: Joy Nelson Date: Sat, 26 Oct 2013 00:14:48 -0400 Subject: [PATCH] Bug 11066: make RIS and Bibtex exports RDA compatible RIS and Bibtex exports from staff side and OPAC edited to allow for additional publisher RDA tag (264). Script will look first for 264 then fall back to 260 when pulling publisher data from MARC21 records. Test Plan: 1. Create RDA and non RDA record 2. In OPAC, export both as RIS and Bibtex - verify publisher information is exported 3. On staff side, export records as RIS and Bibtex, verify publisher information is exported. Signed-off-by: Chris Cormack Signed-off-by: Katrin Fischer Fixed some tabs pointed out by the QA script. Works nicely in my tests, no regressions found. Signed-off-by: Galen Charlton --- C4/Record.pm | 6 +++--- C4/Ris.pm | 11 ++++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/C4/Record.pm b/C4/Record.pm index 9d72d5acfa..adb0c81e52 100644 --- a/C4/Record.pm +++ b/C4/Record.pm @@ -702,13 +702,13 @@ sub marc2bibtex { author => $author, title => $record->subfield("245", "a") || "", editor => $record->subfield("260", "f") || "", - publisher => $record->subfield("260", "b") || "", - year => $record->subfield("260", "c") || $record->subfield("260", "g") || "", + publisher => $record->subfield("264", "b") || $record->subfield("260", "b") || "", + year => $record->subfield("264", "c") || $record->subfield("260", "c") || $record->subfield("260", "g") || "", # Optional # unimarc to marc21 specification says not to convert 200$v to marc21 series => $record->subfield("490", "a") || "", - address => $record->subfield("260", "a") || "", + address => $record->subfield("264", "a") || $record->subfield("260", "a") || "", edition => $record->subfield("250", "a") || "", note => $record->subfield("500", "a") || "", url => $record->subfield("856", "u") || "" diff --git a/C4/Ris.pm b/C4/Ris.pm index ce32ea9d5a..d601c9640a 100644 --- a/C4/Ris.pm +++ b/C4/Ris.pm @@ -209,7 +209,12 @@ sub marc2ris { &print_pubinfo($record->field('210')); } else { ## marc21, ukmarc - &print_pubinfo($record->field('260')); + if ($record->field('264')) { + &print_pubinfo($record->field('264')); + } + else { + &print_pubinfo($record->field('260')); + } } ## 6XX fields contain KW candidates. We add all of them to a @@ -252,7 +257,7 @@ sub marc2ris { elsif ($intype eq "ukmarc") { foreach ('500', '501', '502', '503', '504', '505', '506', '508', '514', '515', '516', '521', '524', '525', '528', '530', '531', '532', '533', '534', '535', '537', '538', '540', '541', '542', '544', '554', '555', '556', '557', '561', '563', '580', '583', '584', '586') { &pool_subx(\@notepool, $_, $record->field($_)); - } + } } else { ## assume marc21 foreach ('500', '501', '502', '504', '505', '506', '507', '508', '510', '511', '513', '514', '515', '516', '518', '521', '522', '524', '525', '526', '530', '533', '534', '535') { @@ -642,7 +647,7 @@ sub print_pubinfo { my($pubinfofield) = @_; if (!$pubinfofield) { - print "no publication information found (260)\r\n" if $marcprint; + print "no publication information found (260/264)\r\n" if $marcprint; warn("no publication information found") if $marcprint; } else { -- 2.20.1