Bug 18593: Move suggestions when bibliographic records are merged
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 2 Jan 2018 18:42:12 +0000 (15:42 -0300)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 26 Mar 2018 20:01:10 +0000 (17:01 -0300)
When bibliographic records are merged, the suggestions.biblionumber
field should be replaced with the new record.
Ideally we should have kept an history of the merges, to know what was
the original record. Now we cannot fix the broken links.

Test plan:
1) Create a suggestion in OPAC
2) Accept the suggestion in staff
3) Add order from this suggestion
4) Go to cataloguing search and search for the record and another
5) Merge the suggestion record with the catalog record - catalog record wins (should be the more common case when a patron suggests something that already exists)
6) Verify that after merging, the new title displays in the acquisition record
7) Verify that the suggestion info no longer displays in basket

From Katrin's test plan:
8) Verify that the new title doesn't display in suggestions. The old title will still show as suggested (not updated)
=> This is the title from suggestions.title, I think it makes sense to show this one.
Maybe we should open a new bug report to improve the display of the suggestion, and link to the bibliographic record

Signed-off-by: Lucie Gay <lucie.gay@ens-paris-saclay.fr>

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

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

cataloguing/merge.pl

index e8b576a..146e88e 100755 (executable)
@@ -111,6 +111,9 @@ if ($merge) {
     my $sth_serial = $dbh->prepare("
         UPDATE serial SET biblionumber = ? WHERE biblionumber = ?
     ");
+    my $sth_suggestions = $dbh->prepare("
+        UPDATE suggestions SET biblionumber = ? WHERE biblionumber = ?
+    ");
 
     my $report_header = {};
     foreach my $biblionumber ($ref_biblionumber, @biblionumbers) {
@@ -155,7 +158,10 @@ if ($merge) {
         }
 
     # Moving serials
-        $sth_serial->execute($ref_biblionumber, $biblionumber);
+    $sth_serial->execute($ref_biblionumber, $biblionumber);
+
+    # Moving suggestions
+    $sth_suggestions->execute($ref_biblionumber, $biblionumber);
 
     # Moving orders (orders linked to items of frombiblio have already been moved by MoveItemFromBiblio)
     my @allorders = GetOrdersByBiblionumber($biblionumber);