[Koha-patches] [PATCH] [SIGNED-OFF] Bug 5547: Hide Lost Items dev
Owen Leonard
oleonard at myacpl.org
Mon Mar 28 16:21:02 CEST 2011
From: Ian Walls <ian.walls at bywatersolutions.com>
Adds a Hide Lost Items option to the staff client, as detailed in the enhancement request
at http://wiki.koha-community.org/wiki/Hidelostitems_option_for_the_staff_client_RFC
Minor edits: Whitespace
Signed-off-by: Owen Leonard <oleonard at myacpl.org>
---
C4/Members.pm | 21 +++++++++++++++++
C4/Search.pm | 4 ++-
admin/categorie.pl | 15 +++++++-----
catalogue/detail.pl | 16 ++++++++++--
catalogue/moredetail.pl | 24 +++++++++++++++----
installer/data/mysql/kohastructure.sql | 1 +
installer/data/mysql/updatedatabase.pl | 7 +++++
.../prog/en/modules/admin/categorie.tmpl | 12 ++++++++++
.../prog/en/modules/catalogue/detail.tmpl | 7 +++++-
.../prog/en/modules/catalogue/moredetail.tmpl | 3 +-
.../prog/en/modules/reserve/request.tmpl | 8 +++++-
reserve/request.pl | 9 ++++++-
12 files changed, 108 insertions(+), 19 deletions(-)
diff --git a/C4/Members.pm b/C4/Members.pm
index 2b733ed..b885d38 100644
--- a/C4/Members.pm
+++ b/C4/Members.pm
@@ -69,6 +69,8 @@ BEGIN {
&PutPatronImage
&RmPatronImage
+ &GetHideLostItemsPreference
+
&IsMemberBlocked
&GetMemberAccountRecords
&GetBorNotifyAcctRecord
@@ -1806,6 +1808,25 @@ sub RmPatronImage {
return $dberror;
}
+=head2 GetHideLostItemsPreference
+
+ $hidelostitemspref = &GetHideLostItemsPreference($borrowernumber);
+
+Returns the HideLostItems preference for the patron category of the supplied borrowernumber
+C<&$hidelostitemspref>return value of function, 0 or 1
+
+=cut
+
+sub GetHideLostItemsPreference {
+ my ($borrowernumber) = @_;
+ my $dbh = C4::Context->dbh;
+ my $query = "SELECT hidelostitems FROM borrowers,categories WHERE borrowers.categorycode = categories.categorycode AND borrowernumber = ?";
+ my $sth = $dbh->prepare($query);
+ $sth->execute($borrowernumber);
+ my $hidelostitems = $sth->fetchrow;
+ return $hidelostitems;
+}
+
=head2 GetRoadTypeDetails (OUEST-PROVENCE)
($roadtype) = &GetRoadTypeDetails($roadtypeid);
diff --git a/C4/Search.pm b/C4/Search.pm
index 52939bd..2ee570d 100644
--- a/C4/Search.pm
+++ b/C4/Search.pm
@@ -25,6 +25,7 @@ use Lingua::Stem;
use C4::Search::PazPar2;
use XML::Simple;
use C4::Dates qw(format_date);
+use C4::Members qw(GetHideLostItemsPreference);
use C4::XSLT;
use C4::Branch;
use C4::Reserves; # CheckReserves
@@ -1569,7 +1570,8 @@ sub searchResults {
my $prefix = $item->{$hbranch} . '--' . $item->{location} . $item->{itype} . $item->{itemcallnumber};
# For each grouping of items (onloan, available, unavailable), we build a key to store relevant info about that item
- if ( $item->{onloan} ) {
+ my $userenv = C4::Context->userenv;
+ if ( $item->{onloan} && !(C4::Members::GetHideLostItemsPreference($userenv->{'number'}) && $item->{itemlost}) ) {
$onloan_count++;
my $key = $prefix . $item->{onloan} . $item->{barcode};
$onloan_items->{$key}->{due_date} = format_date($item->{onloan});
diff --git a/admin/categorie.pl b/admin/categorie.pl
index 4a5d683..d0211fd 100755
--- a/admin/categorie.pl
+++ b/admin/categorie.pl
@@ -92,7 +92,7 @@ if ($op eq 'add_form') {
my $data;
if ($categorycode) {
my $dbh = C4::Context->dbh;
- my $sth=$dbh->prepare("select categorycode,description,enrolmentperiod,enrolmentperioddate,upperagelimit,dateofbirthrequired,enrolmentfee,issuelimit,reservefee,overduenoticerequired,category_type from categories where categorycode=?");
+ my $sth=$dbh->prepare("select categorycode,description,enrolmentperiod,enrolmentperioddate,upperagelimit,dateofbirthrequired,enrolmentfee,issuelimit,reservefee,hidelostitems,overduenoticerequired,category_type from categories where categorycode=?");
$sth->execute($categorycode);
$data=$sth->fetchrow_hashref;
$sth->finish;
@@ -109,6 +109,7 @@ if ($op eq 'add_form') {
overduenoticerequired => $data->{'overduenoticerequired'},
issuelimit => $data->{'issuelimit'},
reservefee => sprintf("%.2f",$data->{'reservefee'}),
+ hidelostitems => $data->{'hidelostitems'},
category_type => $data->{'category_type'},
DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
"type_".$data->{'category_type'} => 1,
@@ -128,12 +129,12 @@ if ($op eq 'add_form') {
}
if ($is_a_modif) {
- my $sth=$dbh->prepare("UPDATE categories SET description=?,enrolmentperiod=?, enrolmentperioddate=?,upperagelimit=?,dateofbirthrequired=?,enrolmentfee=?,reservefee=?,overduenoticerequired=?,category_type=? WHERE categorycode=?");
- $sth->execute(map { $input->param($_) } ('description','enrolmentperiod','enrolmentperioddate','upperagelimit','dateofbirthrequired','enrolmentfee','reservefee','overduenoticerequired','category_type','categorycode'));
+ my $sth=$dbh->prepare("UPDATE categories SET description=?,enrolmentperiod=?, enrolmentperioddate=?,upperagelimit=?,dateofbirthrequired=?,enrolmentfee=?,reservefee=?,hidelostitems=?,overduenoticerequired=?,category_type=? WHERE categorycode=?");
+ $sth->execute(map { $input->param($_) } ('description','enrolmentperiod','enrolmentperioddate','upperagelimit','dateofbirthrequired','enrolmentfee','reservefee','hidelostitems','overduenoticerequired','category_type','categorycode'));
$sth->finish;
} else {
- my $sth=$dbh->prepare("INSERT INTO categories (categorycode,description,enrolmentperiod,enrolmentperioddate,upperagelimit,dateofbirthrequired,enrolmentfee,reservefee,overduenoticerequired,category_type) values (?,?,?,?,?,?,?,?,?,?)");
- $sth->execute(map { $input->param($_) } ('categorycode','description','enrolmentperiod','enrolmentperioddate','upperagelimit','dateofbirthrequired','enrolmentfee','reservefee','overduenoticerequired','category_type'));
+ my $sth=$dbh->prepare("INSERT INTO categories (categorycode,description,enrolmentperiod,enrolmentperioddate,upperagelimit,dateofbirthrequired,enrolmentfee,reservefee,hidelostitems,overduenoticerequired,category_type) values (?,?,?,?,?,?,?,?,?,?)");
+ $sth->execute(map { $input->param($_) } ('categorycode','description','enrolmentperiod','enrolmentperioddate','upperagelimit','dateofbirthrequired','enrolmentfee','reservefee','hidelostitems','overduenoticerequired','category_type'));
$sth->finish;
}
if (C4::Context->preference('EnhancedMessagingPreferences')) {
@@ -156,7 +157,7 @@ if ($op eq 'add_form') {
$sth->finish;
$template->param(total => $total->{'total'});
- my $sth2=$dbh->prepare("select categorycode,description,enrolmentperiod,enrolmentperioddate,upperagelimit,dateofbirthrequired,enrolmentfee,issuelimit,reservefee,overduenoticerequired,category_type from categories where categorycode=?");
+ my $sth2=$dbh->prepare("select categorycode,description,enrolmentperiod,enrolmentperioddate,upperagelimit,dateofbirthrequired,enrolmentfee,issuelimit,reservefee,hidelostitems,overduenoticerequired,category_type from categories where categorycode=?");
$sth2->execute($categorycode);
my $data=$sth2->fetchrow_hashref;
$sth2->finish;
@@ -173,6 +174,7 @@ if ($op eq 'add_form') {
overduenoticerequired => $data->{'overduenoticerequired'},
issuelimit => $data->{'issuelimit'},
reservefee => sprintf("%.2f",$data->{'reservefee'}),
+ hidelostitems => $data->{'hidelostitems'},
category_type => $data->{'category_type'},
);
# END $OP eq DELETE_CONFIRM
@@ -205,6 +207,7 @@ if ($op eq 'add_form') {
overduenoticerequired => $results->[$i]{'overduenoticerequired'},
issuelimit => $results->[$i]{'issuelimit'},
reservefee => sprintf("%.2f",$results->[$i]{'reservefee'}),
+ hidelostitems => $results->[$i]{'hidelostitems'},
category_type => $results->[$i]{'category_type'},
"type_".$results->[$i]{'category_type'} => 1);
if (C4::Context->preference('EnhancedMessagingPreferences')) {
diff --git a/catalogue/detail.pl b/catalogue/detail.pl
index 3d42326..5542163 100755
--- a/catalogue/detail.pl
+++ b/catalogue/detail.pl
@@ -64,6 +64,8 @@ if($query->cookie("holdfor")){
my $biblionumber = $query->param('biblionumber');
my $fw = GetFrameworkCode($biblionumber);
+my $showallitems = $query->param('showallitems');
+
## get notes and subjects from MARC record
my $marcflavour = C4::Context->preference("marcflavour");
my $record = GetMarcBiblio($biblionumber);
@@ -109,8 +111,12 @@ my $branches = GetBranches();
my $itemtypes = GetItemTypes();
my $dbh = C4::Context->dbh;
-# change back when ive fixed request.pl
-my @items = &GetItemsInfo( $biblionumber, 'intra' );
+# 'intra' param included, even though it's not respected in GetItemsInfo currently
+my @all_items= GetItemsInfo($biblionumber, 'intra');
+my @items;
+for my $itm (@all_items) {
+ push @items, $itm unless ( $itm->{itemlost} && GetHideLostItemsPreference($borrowernumber) && !$showallitems);
+}
my $dat = &GetBiblioData($biblionumber);
# get count of holds
@@ -141,7 +147,11 @@ foreach my $subscription (@subscriptions) {
if ( defined $dat->{'itemtype'} ) {
$dat->{imageurl} = getitemtypeimagelocation( 'intranet', $itemtypes->{ $dat->{itemtype} }{imageurl} );
}
-$dat->{'count'} = scalar @items;
+
+$dat->{'count'} = scalar @all_items;
+$dat->{'showncount'} = scalar @items;
+$dat->{'hiddencount'} = scalar @all_items - scalar @items;
+
my $shelflocations = GetKohaAuthorisedValues('items.location', $fw);
my $collections = GetKohaAuthorisedValues('items.ccode' , $fw);
my (@itemloop, %itemfields);
diff --git a/catalogue/moredetail.pl b/catalogue/moredetail.pl
index c3d7a95..cb51344 100755
--- a/catalogue/moredetail.pl
+++ b/catalogue/moredetail.pl
@@ -33,6 +33,7 @@ use C4::Dates qw/format_date/;
use C4::Circulation; # to use itemissues
use C4::Members; # to use GetMember
use C4::Search; # enabled_staff_search_views
+use C4::Members qw/GetHideLostItemsPreference/;
my $query=new CGI;
@@ -65,8 +66,10 @@ my $biblionumber=$query->param('biblionumber');
my $title=$query->param('title');
my $bi=$query->param('bi');
$bi = $biblionumber unless $bi;
+my $itemnumber = $query->param('itemnumber');
my $data=GetBiblioData($biblionumber);
my $dewey = $data->{'dewey'};
+my $showallitems = $query->param('showallitems');
#coping with subscriptions
my $subscriptionsnumber = CountSubscriptionFromBiblionumber($biblionumber);
@@ -84,16 +87,27 @@ my $subscriptionsnumber = CountSubscriptionFromBiblionumber($biblionumber);
my @results;
my $fw = GetFrameworkCode($biblionumber);
-my @items= GetItemsInfo($biblionumber);
-my $count=@items;
-$data->{'count'}=$count;
+my @all_items= GetItemsInfo($biblionumber);
+my @items;
+for my $itm (@all_items) {
+ push @items, $itm unless ( $itm->{itemlost} &&
+ GetHideLostItemsPreference($loggedinuser) &&
+ !$showallitems &&
+ ($itemnumber != $itm->{itemnumber}));
+}
+
+my $totalcount=@all_items;
+my $showncount=@items;
+my $hiddencount = $totalcount - $showncount;
+$data->{'count'}=$totalcount;
+$data->{'showncount'}=$showncount;
+$data->{'hiddencount'}=$hiddencount; # can be zero
my $ccodes= GetKohaAuthorisedValues('items.ccode',$fw);
my $itemtypes = GetItemTypes;
$data->{'itemtypename'} = $itemtypes->{$data->{'itemtype'}}->{'description'};
$results[0]=$data;
-my $itemnumber;
($itemnumber) and @items = (grep {$_->{'itemnumber'} == $itemnumber} @items);
foreach my $item (@items){
$item->{itemlostloop}= GetAuthorisedValues(GetAuthValCode('items.itemlost',$fw),$item->{itemlost}) if GetAuthValCode('items.itemlost',$fw);
@@ -143,7 +157,7 @@ $template->param(loggedinuser => $loggedinuser);
$template->param(biblionumber => $biblionumber);
$template->param(biblioitemnumber => $bi);
$template->param(itemnumber => $itemnumber);
-$template->param(ONLY_ONE => 1) if ( $itemnumber && $count != @items );
+$template->param(ONLY_ONE => 1) if ( $itemnumber && $showncount != @items );
$template->param(z3950_search_params => C4::Search::z3950_search_args(GetBiblioData($biblionumber)));
output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql
index a62e07c..b9e4df6 100644
--- a/installer/data/mysql/kohastructure.sql
+++ b/installer/data/mysql/kohastructure.sql
@@ -420,6 +420,7 @@ CREATE TABLE `categories` (
`overduenoticerequired` tinyint(1) default NULL,
`issuelimit` smallint(6) default NULL,
`reservefee` decimal(28,6) default NULL,
+ `hidelostitems` tinyint(1) NOT NULL default '0'
`category_type` varchar(1) NOT NULL default 'A',
PRIMARY KEY (`categorycode`),
UNIQUE KEY `categorycode` (`categorycode`)
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index 66e9828..7b78aba 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -4090,6 +4090,13 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
SetVersion ($DBversion);
}
+$DBversion = '3.03.00.XXX';
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("ALTER TABLE `categories` ADD `hidelostitems` tinyint(1) NOT NULL default '0' AFTER `reservefee`");
+ print "Upgrade to $DBversion done (Add hidelostitems preference to borrower categories)\n";
+ SetVersion ($DBversion);
+}
+
=head1 FUNCTIONS
=head2 DropAllForeignKeys($table)
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categorie.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categorie.tmpl
index ba9e468..52e8657 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categorie.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categorie.tmpl
@@ -151,6 +151,15 @@
<option value="1">Yes</option>
<!-- /TMPL_IF -->
</select></li>
+ <li><label for="hidelostitems">Lost items in staff client</label> <select name="hidelostitems" id="hidelostitems">
+ <!-- TMPL_IF NAME="hidelostitems" -->
+ <option value="0">Shown</option>
+ <option value="1" selected="selected">Hidden by default</option>
+ <!-- TMPL_ELSE -->
+ <option value="0" selected="selected">Shown</option>
+ <option value="1">Hidden by default</option>
+ <!-- /TMPL_IF -->
+ </select></li>
<li><label for="reservefee">Hold fee: </label><input type="text" name="reservefee" id="reservefee" size="6" value="<!-- TMPL_VAR NAME="reservefee" -->" /></li>
<li><label for="category_type">Category type: </label> <select name="category_type" id="category_type">
<!-- TMPL_IF NAME="type_n" --><option value="" selected="selected">Select a Category type</option><!-- TMPL_ELSE --><option value="">Select a Category type</option><!-- /TMPL_IF -->
@@ -208,6 +217,7 @@ Confirm Deletion of Category <!-- TMPL_VAR NAME="categorycode" escape="html" -->
<tr><th scope="row">Upperage limit: </th><td><!-- TMPL_VAR NAME="upperagelimit" --> years</td></tr>
<tr><th scope="row">Enrollment fee: </th><td><!-- TMPL_VAR NAME="enrolmentfee" --></td></tr>
<tr><th scope="row">Receives overdue notices: </th><td><!-- TMPL_IF NAME="overduenoticerequired" -->Yes<!-- TMPL_ELSE -->No<!-- /TMPL_IF --></td></tr>
+ <tr><th scope="row">Lost items in staff client</th><td><!-- TMPL_IF NAME="hidelostitems" -->Hidden by default<!-- TMPL_ELSE -->Shown<!-- /TMPL_IF --></td></tr>
<tr><th scope="row">Hold fee: </th><td><!-- TMPL_VAR NAME="reservefee" --></td></tr>
</table>
<fieldset class="action"><!-- TMPL_IF NAME="totalgtzero" -->
@@ -282,6 +292,7 @@ Confirm Deletion of Category <!-- TMPL_VAR NAME="categorycode" escape="html" -->
<th scope="col">Upper age limit</th>
<th scope="col">Enrollment fee</th>
<th scope="col">Overdue</th>
+ <th scope="col">Lost Items</th>
<th scope="col">Hold fee</th>
<!-- TMPL_IF NAME="EnhancedMessagingPreferences" -->
<th scope="col">Messaging</th>
@@ -318,6 +329,7 @@ Confirm Deletion of Category <!-- TMPL_VAR NAME="categorycode" escape="html" -->
<td><!-- TMPL_VAR NAME="upperagelimit" --> years</td>
<td><!-- TMPL_VAR NAME="enrolmentfee" --></td>
<td><!-- TMPL_IF NAME="overduenoticerequired" -->Yes<!-- TMPL_ELSE -->No<!-- /TMPL_IF --></td>
+ <td><!-- TMPL_IF NAME="hidelostitems" -->Hidden<!-- TMPL_ELSE -->Shown<!-- /TMPL_IF --></td>
<td><!-- TMPL_VAR NAME="reservefee" --></td>
<!-- TMPL_IF NAME="EnhancedMessagingPreferences" -->
<td>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl
index e3b0a8f..a939b42 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl
@@ -217,6 +217,7 @@ function verify_images() {
<div id="holdings">
<!-- TMPL_IF name="count" -->
+ <!-- TMPL_IF name="showncount" -->
<table>
<tr>
<!-- TMPL_IF NAME="item_level_itypes" --><th>Item type</th><!-- /TMPL_IF -->
@@ -364,6 +365,10 @@ function verify_images() {
</tr>
<!-- /TMPL_LOOP -->
</table>
+ <!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="hiddencount" -->
+ <p><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&showallitems=1">Show all items (<!-- TMPL_VAR NAME="hiddencount" --> hidden)</a>
+ <!-- /TMPL_IF -->
<!-- TMPL_IF NAME="debug_display" -->
<br /><br />
<table>
@@ -371,7 +376,7 @@ function verify_images() {
<tr><td>itemdata_copynumber</td><td><!-- TMPL_VAR NAME="itemdata_copynumber" --></td></tr>
<tr><td>serial</td><td><!-- TMPL_VAR NAME="serial" --></td></tr>
</table>
- <!-- /TMPL_IF -->
+ <!-- /TMPL_IF -->
<!-- TMPL_ELSE -->
<p>No physical items for this record</p>
<!-- /TMPL_IF -->
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tmpl
index e67a864..271fa14 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tmpl
@@ -32,7 +32,8 @@
<!-- TMPL_IF NAME="volumeddesc" --><li><span class="label">Volume:</span> <!-- TMPL_VAR NAME="volumeddesc" --></li><!-- /TMPL_IF -->
<li><span class="label">Physical Details:</span> <!-- TMPL_VAR NAME="pages" --> <!-- TMPL_VAR NAME="illus" --> <!-- TMPL_VAR NAME="size" --> </li>
<!-- TMPL_IF NAME="bnotes" --><li><span class="label">Notes:</span> <!-- TMPL_VAR NAME="bnotes" --></li><!-- /TMPL_IF -->
- <li><span class="label">No. of Items:</span> <!-- TMPL_VAR NAME="count" --> </li>
+ <li><span class="label">No. of Items:</span> <!-- TMPL_VAR NAME="count" --> <!-- TMPL_IF NAME="hiddencount" -->total (<!-- TMPL_VAR NAME="showncount" --> shown / <!-- TMPL_VAR NAME="hiddencount" --> hidden)
+<a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&showallitems=1">Show all items</a><!-- /TMPL_IF --></li>
</ol>
<!-- /TMPL_LOOP -->
<br clear="all" />
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tmpl
index 53ff7b7..1001d8e 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tmpl
@@ -391,6 +391,7 @@ function checkMultiHold() {
<th>Information</th>
</tr>
<!-- TMPL_LOOP Name="itemloop" -->
+ <!-- TMPL_UNLESS NAME="hide"-->
<tr class="<!-- TMPL_VAR NAME="backgroundcolor" -->">
<td>
<!-- TMPL_IF NAME="available" -->
@@ -458,9 +459,14 @@ function checkMultiHold() {
<!-- /TMPL_IF -->
</td>
</tr>
+ <!-- /TMPL_UNLESS --> <!--UNLESS item hide-->
<!-- /TMPL_LOOP --> <!-- itemloop -->
</table>
-
+ <!-- TMPL_IF NAME=hiddencount -->
+ <form>
+ <p class="hiddencount"><a href="request.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber"-->&cardnumber=<!-- TMPL_VAR NAME="cardnumber" -->&showallitems=1">Show all items (<!--TMPL_VAR NAME="hiddencount" --> hidden)</a></p>
+ </form>
+ <!-- /TMPL_IF --> <!-- hiddencount -->
<!-- /TMPL_LOOP --> <!-- bibitemloop -->
<!-- TMPL_ELSE --><!-- UNLESS multi_hold -->
diff --git a/reserve/request.pl b/reserve/request.pl
index 7e51364..a047f4d 100755
--- a/reserve/request.pl
+++ b/reserve/request.pl
@@ -57,6 +57,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
my $multihold = $input->param('multi_hold');
$template->param(multi_hold => $multihold);
+my $showallitems = $input->param('showallitems');
# get Branches and Itemtypes
my $branches = GetBranches();
@@ -319,6 +320,7 @@ foreach my $biblionumber (@biblionumbers) {
my $biblioitem = $biblioiteminfos_of->{$biblioitemnumber};
my $num_available = 0;
my $num_override = 0;
+ my $hiddencount = 0;
$biblioitem->{description} =
$itemtypes->{ $biblioitem->{itemtype} }{description};
@@ -376,7 +378,7 @@ foreach my $biblionumber (@biblionumbers) {
$item->{notforloanvalue} =
$notforloan_label_of->{ $item->{notforloan} };
}
-
+
# Management of lost or long overdue items
if ( $item->{itemlost} ) {
@@ -386,6 +388,10 @@ foreach my $biblionumber (@biblionumbers) {
: $item->{itemlost} == 2 ? "(long overdue)"
: "";
$item->{backgroundcolor} = 'other';
+ if (GetHideLostItemsPreference($borrowernumber) && !$showallitems) {
+ $item->{hide} = 1;
+ $hiddencount++;
+ }
}
# Check the transit status
@@ -458,6 +464,7 @@ foreach my $biblionumber (@biblionumbers) {
$biblioloopiter{warn} = 1;
$biblioloopiter{none_avail} = 1;
}
+ $template->param( hiddencount => $hiddencount);
push @bibitemloop, $biblioitem;
}
--
1.7.3
More information about the Koha-patches
mailing list