Bug 22456: Allow requesting cancellation from the OPAC
[koha.git] / opac / opac-modrequest.pl
1 #!/usr/bin/perl
2
3 #script to modify reserves/requests
4 #written 2/1/00 by chris@katipo.oc.nz
5 #last update 27/1/2000 by chris@katipo.co.nz
6
7
8 # Copyright 2000-2002 Katipo Communications
9 #
10 # This file is part of Koha.
11 #
12 # Koha is free software; you can redistribute it and/or modify it
13 # under the terms of the GNU General Public License as published by
14 # the Free Software Foundation; either version 3 of the License, or
15 # (at your option) any later version.
16 #
17 # Koha is distributed in the hope that it will be useful, but
18 # WITHOUT ANY WARRANTY; without even the implied warranty of
19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 # GNU General Public License for more details.
21 #
22 # You should have received a copy of the GNU General Public License
23 # along with Koha; if not, see <http://www.gnu.org/licenses>.
24
25 use Modern::Perl;
26
27 use CGI qw ( -utf8 );
28 use C4::Output;
29 use C4::Auth qw( get_template_and_user );
30 use Koha::Holds;
31
32 my $query = CGI->new;
33
34 my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
35     {   
36         template_name   => "opac-account.tt",
37         query           => $query,
38         type            => "opac",
39     }
40 );
41
42 my $reserve_id = $query->param('reserve_id');
43 my $cancellation_request = $query->param('cancellation_request');
44
45 if ( $reserve_id && $borrowernumber ) {
46
47     my $hold = Koha::Holds->find($reserve_id);
48
49     unless ( $hold->borrowernumber == $borrowernumber ) {
50
51         # whatcha tryin to do?
52         print $query->redirect('/cgi-bin/koha/errors/403.pl');
53         exit;
54     }
55
56     if ($cancellation_request) {
57         $hold->add_cancellation_request
58           if $hold->cancellation_requestable_from_opac;
59     }
60     else {
61         $hold->cancel
62           if $hold->is_cancelable_from_opac;
63     }
64 }
65
66 print $query->redirect("/cgi-bin/koha/opac-user.pl#opac-user-holds");