From 21034501a2880a6cd2a05d2b8dfa311616901478 Mon Sep 17 00:00:00 2001 From: Jacek Ablewicz Date: Mon, 23 Mar 2015 15:21:53 +0100 Subject: [PATCH] Bug 10906 - Reimported records into Koha are imported only as DEFAULT frameworks, not what they were originally Existing framework code is currently not retained when local record gets replaced during batch import, or when the restore/reverse function is being used. This patch fixes aforementioned issues by correcting outdated GetBiblio() calls in C4/ImportBatch.pm To test: 1/ try to replicate the issue: import some MARC records with "Tools -> Stage MARC records for import" etc., using test setup, matching rules and so on such that some existing records will get replaced with imported ones 2/ observe that records replaced during import now open in the editor with 'Default' framework, even if they have some other framework set up previously 3/ apply patch 4/ redo 1/, confirming that this problem is no longer replicable 5/ try use 'restore' function with some freshly imported records, ensure that original framework code got retained in the records which had their imports reverted NOTE: I confirmed this change by 1) git grep "=\s*GetBiblio\s*(" -- this shows how GetBiblio is called elsewhere. It differed! So then... 2) vi C4/Biblio.pm /sub GetBiblio -- find the right one, notice it only returns a HASH ref, not an array. Signed-off-by: Mark Tompsett --- C4/ImportBatch.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/C4/ImportBatch.pm b/C4/ImportBatch.pm index 08304d7..fe31c45 100644 --- a/C4/ImportBatch.pm +++ b/C4/ImportBatch.pm @@ -623,7 +623,7 @@ sub BatchCommitRecords { $recordid = $record_match; my $oldxml; if ($record_type eq 'biblio') { - my ($count, $oldbiblio) = GetBiblio($recordid); + my $oldbiblio = GetBiblio($recordid); $oldxml = GetXmlBiblio($recordid); # remove item fields so that they don't get @@ -822,7 +822,7 @@ sub BatchRevertRecords { my $old_record = MARC::Record->new_from_xml(StripNonXmlChars($rowref->{'marcxml_old'}), 'UTF-8', $rowref->{'encoding'}, $marc_type); if ($record_type eq 'biblio') { my $biblionumber = $rowref->{'matched_biblionumber'}; - my ($count, $oldbiblio) = GetBiblio($biblionumber); + my $oldbiblio = GetBiblio($biblionumber); $num_items_deleted += BatchRevertItems($rowref->{'import_record_id'}, $rowref->{'matched_biblionumber'}); ModBiblio($old_record, $biblionumber, $oldbiblio->{'frameworkcode'}); } else { -- 1.9.1