Koha/cataloguing/moveitem.pl
Kyle M Hall 21127d4a47 Bug 15496: Delete Bib After Moving Item
Librarians have requested the ability to delete records with no items
quickly and easily from the "Attach item" results page as items are
moved from one record to another.

Test Plan:
1) Apply this patch
2) Create 2 records with 2 items each
3) Move one item from record A to record B
4) You should see no change from pre-patch behavior
5) Move the second item from record A to record B
6) You should now see a "Delete record" button
7) Click the button
8) Note the record in question has been deleted

Signed-off-by: Liz Rea <wizzyrea@gmail.com>

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
2019-04-26 11:53:53 +00:00

112 lines
2.9 KiB
Perl
Executable file

#!/usr/bin/perl
# Move an item from a biblio to another
#
# Copyright 2009 BibLibre
#
# 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;
use CGI qw ( -utf8 );
use C4::Auth;
use C4::Output;
use C4::Biblio;
use C4::Items;
use C4::Context;
use C4::Koha;
use C4::ClassSource;
use C4::Acquisition qw/GetOrderFromItemnumber ModOrder GetOrder/;
use Koha::Biblios;
use Date::Calc qw(Today);
use MARC::File::XML;
use Koha::Items;
my $query = CGI->new;
# The biblio to move the item to
my $biblionumber = $query->param('biblionumber');
# The barcode of the item to move
my $barcode = $query->param('barcode');
my ($template, $loggedinuser, $cookie) = get_template_and_user(
{
template_name => "cataloguing/moveitem.tt",
query => $query,
type => "intranet",
authnotrequired => 0,
flagsrequired => { editcatalogue => 'edit_items' },
debug => 1,
}
);
my $biblio = Koha::Biblios->find( $biblionumber );
$template->param(bibliotitle => $biblio->title);
$template->param(biblionumber => $biblionumber);
# If we already have the barcode of the item to move and the biblionumber to move the item to
if ( $barcode && $biblionumber ) {
my $itemnumber;
my $item = Koha::Items->find( { barcode => $barcode } );
if ($item) {
$itemnumber = $item->itemnumber;
my $frombiblionumber = $item->biblionumber;
my $moveresult = MoveItemFromBiblio( $itemnumber, $frombiblionumber, $biblionumber );
if ($moveresult) {
$template->param(
success => 1,
from_biblio => scalar Koha::Biblios->find($frombiblionumber),
);
}
else {
$template->param(
error => 1,
errornonewitem => 1
);
}
}
else {
$template->param(
error => 1,
errornoitem => 1
);
}
$template->param(
barcode => $barcode,
itemnumber => $itemnumber,
);
}
else {
$template->param( missingparameter => 1 );
if ( !$barcode ) { $template->param( missingbarcode => 1 ); }
if ( !$biblionumber ) { $template->param( missingbiblionumber => 1 ); }
}
output_html_with_http_headers $query, $cookie, $template->output;