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;
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');
$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
+ # We ignore dontmerge now, since recordid2 is deleted
+ 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(
# 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,
);
}
frameworkselect => \@frameworkselect,
frameworkcode1 => $recordObj1->authtypecode,
frameworkcode2 => $recordObj2->authtypecode,
- frameworklabel1 => $recordObj1->authtypetext,
- frameworklabel2 => $recordObj2->authtypetext,
);
}
}