Bug 9988: Remove further references to dontmerge
[koha.git] / authorities / merge.pl
index f34e55c..4279fef 100755 (executable)
@@ -28,7 +28,7 @@ use C4::Koha;
 use C4::Biblio;
 
 my $input  = new CGI;
-my @authid = $input->param('authid');
+my @authid = $input->multi_param('authid');
 my $merge  = $input->param('merge');
 
 my @errors;
@@ -49,7 +49,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
 if ($merge) {
 
     # Creating a new record from the html code
-    my $record   = TransformHtmlToMarc($input);
+    my $record   = TransformHtmlToMarc($input, 0);
     my $recordid1   = $input->param('recordid1');
     my $recordid2   = $input->param('recordid2');
     my $typecode = $input->param('frameworkcode');
@@ -58,21 +58,15 @@ if ($merge) {
     $record->leader( GetAuthority($recordid1)->leader() );
 
     # Modifying the reference record
+    # This triggers a merge for the biblios attached to $recordid1
     ModAuthority( $recordid1, $record, $typecode );
 
-    # Deleting the other record
-    if ( scalar(@errors) == 0 ) {
+    # Now merge for biblios attached to $recordid2
+    my $MARCfrom = GetAuthority( $recordid2 );
+    merge({ mergefrom => $recordid2, MARCfrom => $MARCfrom, mergeto => $recordid1, MARCto => $record });
 
-        my $error;
-        if ($input->param('mergereference') eq 'breeding') {
-            require C4::ImportBatch;
-            C4::ImportBatch::SetImportRecordStatus( $recordid2, 'imported' );
-        } else {
-            C4::AuthoritiesMarc::merge( $recordid2, GetAuthority($recordid2), $recordid1, $record );
-            $error = (DelAuthority($recordid2) == 0);
-        }
-        push @errors, $error if ($error);
-    }
+    # Deleting the other record
+    DelAuthority({ authid => $recordid2 });
 
     # Parameters
     $template->param(
@@ -133,15 +127,27 @@ else {
 
             # Creating a loop for display
 
-            my @record1 = $recordObj1->createMergeHash($tagslib);
-            my @record2 = $recordObj2->createMergeHash($tagslib);
+            my @records = (
+                {
+                    recordid => $mergereference,
+                    record => $recordObj1->record,
+                    frameworkcode => $recordObj1->authtypecode,
+                    display => $recordObj1->createMergeHash($tagslib),
+                    reference => 1,
+                },
+                {
+                    recordid => $notreference,
+                    record => $recordObj2->record,
+                    frameworkcode => $recordObj2->authtypecode,
+                    display => $recordObj2->createMergeHash($tagslib),
+                },
+            );
 
             # Parameters
             $template->param(
                 recordid1        => $mergereference,
                 recordid2        => $notreference,
-                record1        => @record1,
-                record2        => @record2,
+                records        => \@records,
                 framework      => $framework,
             );
         }
@@ -169,8 +175,6 @@ else {
                     frameworkselect => \@frameworkselect,
                     frameworkcode1  => $recordObj1->authtypecode,
                     frameworkcode2  => $recordObj2->authtypecode,
-                    frameworklabel1 => $recordObj1->authtypetext,
-                    frameworklabel2 => $recordObj2->authtypetext,
                 );
             }
         }