From 144b22c8756810e9de23811309a140c96574b679 Mon Sep 17 00:00:00 2001 From: Thibaud Guillot Date: Thu, 2 Mar 2023 16:08:55 +0100 Subject: [PATCH] Bug 13870: Added a visual warning message on the item batch form I add a visual warn on item linked to subscription or concern by an order. I don't think that pop-up could be the solution so I put a warn triangle aside the delete action to I don't think another pop-up is the ideal solution so I chose to integrate a yellow triangle right next to the action leading to the deletion of the 'item' with a hover message if a subscription or order is linked. I'm looking forward to your feedback :) Test plan : 1) Apply this patch 2) Be sure to have item with order or can concern by a subscription 3) Edit them to go on the batch form 4) See the yellow triangle next to the 'delete' action in 'actions' dropdown menu --- cataloguing/additem.pl | 19 +++++++++++++++++-- .../prog/en/modules/cataloguing/additem.tt | 10 ++++++++-- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl index 3d361ec1e6..037ead7cf0 100755 --- a/cataloguing/additem.pl +++ b/cataloguing/additem.pl @@ -32,6 +32,7 @@ use C4::Context; use C4::Members; use C4::Output qw( output_and_exit_if_error output_and_exit output_html_with_http_headers ); use C4::Search qw( enabled_staff_search_views ); +use C4::Acquisition qw( GetOrderFromItemnumber ); use Koha::Biblios; use Koha::Item::Templates; use Koha::ItemTypes; @@ -42,6 +43,8 @@ use Koha::Patrons; use Koha::SearchEngine::Indexer; use Koha::UI::Form::Builder::Item; use Koha::Result::Boolean; +use Koha::Serial::Items; +use Koha::Subscriptions; use Encode qw( encode_utf8 ); use List::MoreUtils qw( any uniq ); @@ -680,9 +683,20 @@ if ($op) { # now, build existiing item list my @items; +my %warning_messages; for my $item ( $biblio->items->as_list, $biblio->host_items->as_list ) { my $i = $item->columns_to_str; $i->{nomod} = 1 unless $patron->can_edit_items_from( $item->homebranch ); + my $i_order = GetOrderFromItemnumber( $i->{itemnumber} ); + my $i_serialid = Koha::Serial::Items->find( { itemnumber => $i->{itemnumber} }, { prefetch => 'serialid' } ); + if ($i_order) { + $warning_messages{ $i->{itemnumber} } = + sprintf( 'There is an order (ordernumber %s) on this item', $i_order->{ordernumber} ); + } + if ($i_serialid) { + $warning_messages{ $i->{itemnumber} } = 'A subscription is linked to this item'; + } + $i->{nomod} = 1 unless $patron->can_edit_items_from( $item->homebranch ); push @items, $i; } @@ -805,8 +819,9 @@ $template->param( subfields => $subfields, itemnumber => $itemnumber, barcode => $current_item->{barcode}, - op => $nextop, - popup => scalar $input->param('popup') ? 1 : 0, + op => $nextop, + popup => scalar $input->param('popup') ? 1: 0, + warning_messages => \%warning_messages, C4::Search::enabled_staff_search_views, ); $template->{'VARS'}->{'searchid'} = $searchid; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt index 7d966bee25..70fc56f313 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt @@ -106,7 +106,9 @@ [% FOREACH item IN items %] [% SET can_be_edited = ! ( Koha.Preference('IndependentBranches') && ! logged_in_user.is_superlibrarian && item.homebranch != Branches.GetLoggedInBranchname() ) %] - [% IF item.itemnumber == itemnumber%] + [% SET current_itemnumber = item.itemnumber %] + [% SET warn_message = warning_messages.$current_itemnumber %] + [% IF item.itemnumber == itemnumber %] [% UNLESS can_be_edited %] [% ELSE %] @@ -148,7 +150,11 @@ - Delete + Delete + [% IF warn_message %] + + [% END %] + [% END %] [% END %] -- 2.25.1