From 04d3e5052402ad6270f0859b853791b22c479940 Mon Sep 17 00:00:00 2001 From: Lucas Gass Date: Fri, 31 Jan 2025 19:02:04 +0000 Subject: [PATCH] Bug 23010: Handle error in updateitem.pl and template Signed-off-by: Roman Dolny --- catalogue/moredetail.pl | 9 +++++---- catalogue/updateitem.pl | 10 +++++++--- .../prog/en/modules/catalogue/moredetail.tt | 10 ++++++++++ 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/catalogue/moredetail.pl b/catalogue/moredetail.pl index 3e848377bc5..78688a925df 100755 --- a/catalogue/moredetail.pl +++ b/catalogue/moredetail.pl @@ -81,9 +81,10 @@ my $title = $query->param('title'); my $bi = $query->param('bi'); $bi = $biblionumber unless $bi; $itemnumber = $query->param('itemnumber'); -my $data = &GetBiblioData($biblionumber); -my $dewey = $data->{'dewey'}; -my $showallitems = $query->param('showallitems'); +my $data = &GetBiblioData($biblionumber); +my $dewey = $data->{'dewey'}; +my $showallitems = $query->param('showallitems'); +my $withdraw_error = $query->param('nowithdraw'); #coping with subscriptions my $subscriptionsnumber = CountSubscriptionFromBiblionumber($biblionumber); @@ -325,6 +326,7 @@ $template->param( ); $template->param( + withdraw_error => $withdraw_error, ITEM_DATA => \@item_data, moredetailview => 1, loggedinuser => $loggedinuser, @@ -341,4 +343,3 @@ my $holds = $biblio->holds; $template->param( holdcount => $holds->count ); output_html_with_http_headers $query, $cookie, $template->output; - diff --git a/catalogue/updateitem.pl b/catalogue/updateitem.pl index 350f4b14e4e..d02fe669516 100755 --- a/catalogue/updateitem.pl +++ b/catalogue/updateitem.pl @@ -90,9 +90,13 @@ if ( $op eq "cud-set_non_public_note" ) { print $cgi->redirect("moredetail.pl?biblionumber=$biblionumber&itemnumber=$itemnumber#item$itemnumber"); exit; } - -$item->store; - +eval { $item->store; }; +if ($@) { + my $error_message = $@->message; + print $cgi->redirect( + "moredetail.pl?biblionumber=$biblionumber&itemnumber=$itemnumber&nowithdraw=$error_message#item$itemnumber"); + exit; +} LostItem( $itemnumber, 'moredetail' ) if $op eq "cud-set_lost"; print $cgi->redirect( diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt index e6ca9c6ae92..2a3d57d1ff4 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt @@ -152,6 +152,16 @@ [% SET not_for_loan = 1 %] [% SET not_for_loan_description = AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.notforloan', authorised_value => item.notforloan ) %] [% END %] + [% IF withdraw_error %] +
+ [% IF withdraw_error == 'intransit_cannot_withdraw' %] + Cannot withdraw item in transit. + [% END %] + [% IF withdraw_error == 'onloan_cannot_withdraw' %] + Cannot withdraw checked out item. + [% END %] +
+ [% END %]

Item information -- 2.39.5