Koha/svc/hold/suspend
Kyle M Hall c60c8f0821 Bug 14310 - Suspend and resume indvidual holds from patron holds table
This enhancment adds the ability to suspend and resume individual holds
from the holds table on circulation.pl and moremember.pl.

The interface is inspired/cribbed from the same feature already
available in the opac.

Test Plan:
1) Apply this patch
2) Find a patron with holds
3) Suspend a hold with no resume date
4) Resume the suspended hold
5) Suspend a hold with a resume date
6) Resume the suspended hold

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Cathi Wiggins <CWIGGINS@ci.arcadia.ca.us>

Signed-off-by: Megan Wianecki <mwianecki@mplmain.mtpl.org>

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

Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
2016-01-27 06:20:17 +00:00

51 lines
1.5 KiB
Perl

#!/usr/bin/perl
# Copyright 2015 ByWater Solutions
#
# 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, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
use Modern::Perl;
use CGI;
use JSON qw(to_json);
use C4::Context;
use C4::Auth qw(check_cookie_auth);
use Koha::DateUtils qw(dt_from_string);
use Koha::Holds;
my $input = new CGI;
my ( $auth_status, $sessionID ) =
check_cookie_auth( $input->cookie('CGISESSID'),
{ circulate => 'circulate_remaining_permissions' } );
if ( $auth_status ne "ok" ) {
exit 0;
}
binmode STDOUT, ":encoding(UTF-8)";
print $input->header( -type => 'text/plain', -charset => 'UTF-8' );
my $reserve_id = $input->param('reserve_id');
my $suspend_until = $input->param('suspend_until') || undef;
$suspend_until = dt_from_string( $suspend_until ) if $suspend_until;
my $hold = Koha::Holds->find( $reserve_id );
$hold->suspend_hold( $suspend_until );
print to_json( { success => $hold->suspend() } );