Koha/tools/showdiffmarc.pl
Martin Renvoize f5b32eb509
Bug 31526: Follow-up for bug 29697
There was a typo in bug 29697 which lead to a code reference error.

Test plan
1) Export a record with ISBN from your catalog (Save as MARC)
2) Stage it using the ISBN matching rule (make sure it matched)
3) Manage staged import and click on the Diff link

Prior to this patch an error would be thrown, after the patch you should
now get the diff view as expected again.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2022-09-16 10:25:48 -03:00

101 lines
3 KiB
Perl
Executable file

#!/usr/bin/perl
# Koha library project www.koha-community.org
# Copyright 2011 Libéo
#
# This file is part of Koha.
#
# Koha is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Koha is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Koha; if not, see <http://www.gnu.org/licenses>.
use Modern::Perl;
# standard or CPAN modules used
use CGI qw(:standard -utf8);
# Koha modules used
use C4::Context;
use C4::Output qw( output_html_with_http_headers );
use C4::Auth qw( get_template_and_user );
use C4::Auth qw( get_template_and_user );
use C4::ImportBatch qw( GetImportBiblios );
use C4::AuthoritiesMarc qw( GetAuthority );
use Koha::Biblios;
use Koha::Import::Records;
# Input params
my $input = CGI->new;
my $recordid = $input->param('id');
my $importid = $input->param('importid');
my $batchid = $input->param('batchid');
my $type = $input->param('type');
if ( not $recordid or not $importid ) {
print $input->redirect("/cgi-bin/koha/errors/404.pl");
exit;
}
# Init vars
my ($record, $recordImportid, $recordTitle, $importTitle, $formatted1, $formatted2, $errorFormatted1, $errorFormatted2);
# Prepare template
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
{
template_name => "tools/showdiffmarc.tt",
query => $input,
type => "intranet",
flagsrequired => { tools => 'manage_staged_marc' },
}
);
if ( $type eq 'biblio' ) {
my $biblio = Koha::Biblios->find( $recordid );
$record = $biblio->metadata->record({ embed_items => 1 });
$recordTitle = $biblio->title;
}
elsif ( $type eq 'auth' ) {
$record = GetAuthority( $recordid );
$recordTitle = "Authority number " . $recordid; #FIXME we should get the main heading
}
if( $record ) {
$formatted1 = $record->as_formatted;
} else {
$errorFormatted1 = 1;
}
if( $importid ) {
my $import_record = Koha::Import::Records->find($importid);
my $recordImportid = $import_record->get_marc_record();
$formatted2 = $recordImportid->as_formatted;
my $biblio = GetImportBiblios($importid);
$importTitle = $biblio->[0]->{'title'};
} else {
$errorFormatted2 = 1;
}
$template->param(
SCRIPT_NAME => '/cgi-bin/koha/tools/showdiffmarc.pl',
RECORDID => $recordid,
IMPORTID => $importid,
RECORDTITLE => $recordTitle,
IMPORTTITLE => $importTitle,
MARC_FORMATTED1 => $formatted1,
MARC_FORMATTED2 => $formatted2,
ERROR_FORMATTED1 => $errorFormatted1,
ERROR_FORMATTED2 => $errorFormatted2,
batchid => $batchid
);
output_html_with_http_headers $input, $cookie, $template->output;