X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=svc%2Frenew;h=df330ad3aad64ed5855285b402eb0d28b24b6911;hb=bbb4c847b42c30ab785f21aa3195bf8831b452c6;hp=e7792ddd601bc452b9b15e308333df703ecd4576;hpb=5b80d3ba6532dd0ae911ff4a7ce5f266f30dc6f8;p=srvgit diff --git a/svc/renew b/svc/renew index e7792ddd60..df330ad3aa 100755 --- a/svc/renew +++ b/svc/renew @@ -21,6 +21,7 @@ use Modern::Perl; use CGI; use JSON qw(to_json); +use Try::Tiny; use C4::Circulation; use C4::Context; @@ -67,8 +68,16 @@ if ( $data->{error} && $data->{error} eq 'on_reserve' && C4::Context->preference } if ( $data->{renew_okay} ) { - $date_due = AddRenewal( $borrowernumber, $itemnumber, $branchcode, $date_due, undef, undef, $seen ); - $data->{date_due} = output_pref( { dt => $date_due, as_due_date => 1 } ); + try{ + $date_due = AddRenewal( $borrowernumber, $itemnumber, $branchcode, $date_due, undef, undef, $seen ); + $data->{date_due} = output_pref( { dt => $date_due, as_due_date => 1 } ); + } catch { + if ( ref($_) eq 'Koha::Exceptions::Checkout::FailedRenewal' ) { + $data->{error} = 'renewal_failed'; + } else { + $_->rethrow; + } + }; } print to_json($data);