X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=svc%2Frenew;h=470c02e7969466d9a7fbf134892da508b3edffe0;hb=5045da59f15a7dfb3da72b5f96e249976a84692b;hp=29e51d8cf7d4f9699b6dae9998e2a53b78a44ea2;hpb=c48af49ded481f498087eaf8e4cb530c4cc0a8e9;p=koha-ffzg.git diff --git a/svc/renew b/svc/renew index 29e51d8cf7..470c02e796 100755 --- a/svc/renew +++ b/svc/renew @@ -4,33 +4,34 @@ # # 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 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. +# 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. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use Modern::Perl; use CGI; use JSON qw(to_json); +use Try::Tiny; -use C4::Circulation; +use C4::Circulation qw( AddRenewal CanBookBeRenewed ); use C4::Context; use C4::Auth qw(check_cookie_auth); use Koha::DateUtils qw(output_pref dt_from_string); -my $input = new CGI; +my $input = CGI->new; -my ( $auth_status, $sessionID ) = +my ( $auth_status ) = check_cookie_auth( $input->cookie('CGISESSID'), { circulate => 'circulate_remaining_permissions' } ); @@ -46,6 +47,7 @@ my $borrowernumber = $input->param('borrowernumber'); my $override_limit = $input->param('override_limit'); my $branchcode = $input->param('branchcode') || C4::Context->userenv->{'branch'}; +my $seen = $input->param('seen'); my $date_due; if ( $input->param('date_due') ) { $date_due = dt_from_string( scalar $input->param('date_due') ); @@ -65,9 +67,19 @@ if ( $data->{error} && $data->{error} eq 'on_reserve' && C4::Context->preference $data->{error} = undef; } -if ( $data->{renew_okay} ) { - $date_due = AddRenewal( $borrowernumber, $itemnumber, $branchcode, $date_due ); - $data->{date_due} = output_pref( { dt => $date_due, as_due_date => 1 } ); +if ( $data->{renew_okay} || ( $seen && $data->{error} eq 'too_unseen') ) { + try{ + $date_due = AddRenewal( $borrowernumber, $itemnumber, $branchcode, $date_due, undef, undef, $seen ); + $data->{date_due} = output_pref( { dt => $date_due, as_due_date => 1 } ); + $data->{renew_okay} = 1; + $data->{error} = undef; + } catch { + if ( ref($_) eq 'Koha::Exceptions::Checkout::FailedRenewal' ) { + $data->{error} = 'renewal_failed'; + } else { + $_->rethrow; + } + }; } print to_json($data);