diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/reserves_stats.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reports/reserves_stats.tt
index b0c781a06a..623e40d04b 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/reserves_stats.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reports/reserves_stats.tt
@@ -17,6 +17,19 @@
+[% BLOCK reservestatus %]
+ [% IF field == 'reservestatus' %]
+ [% SWITCH value %]
+ [% CASE 'C'%]Cancelled
+ [% CASE 'F'%]Filled
+ [% CASE 'P'%]Placed
+ [% CASE 'W'%]Waiting
+ [% END %]
+ [% ELSE %]
+ [% value | html %]
+ [% END %]
+[% END %]
+
[% WRAPPER 'header.inc' %]
[% INCLUDE 'cat-search.inc' %]
@@ -71,13 +84,13 @@
[% mainloo.line | html %] / [% mainloo.column | html %] |
[% FOREACH loopco IN mainloo.loopcol %]
- [% loopco.coltitle_display | html %] |
+ [% PROCESS reservestatus field=mainloo.column value=loopco.coltitle_display %] |
[% END %]
TOTAL |
[% FOREACH loopro IN mainloo.looprow %]
- [% loopro.rowtitle_display or "UNKNOWN VALUE" | html %] |
+ [% PROCESS reservestatus field=mainloo.line value=loopro.rowtitle_display %] |
[% FOREACH loopcel IN loopro.loopcell %]
[% IF ( loopcel.url_complement ) %][% loopcel.value | html %][% ELSE %][% loopcel.value | html %][% END %]
@@ -115,11 +128,10 @@
| |
|
- Asked
- Processing
- Waiting
- Satisfied
- Cancelled
+ Cancelled
+ Filled
+ Placed
+ Waiting
|
diff --git a/reports/reserves_stats.pl b/reports/reserves_stats.pl
index af4e0ab379..103ab62356 100755
--- a/reports/reserves_stats.pl
+++ b/reports/reserves_stats.pl
@@ -300,7 +300,6 @@ sub display_value {
: ( $crit =~ /location/ ) ? $locations->{$value}
: ( $crit =~ /itemtype/ ) ? Koha::ItemTypes->find( $value )->translated_description
: ( $crit =~ /branch/ ) ? Koha::Libraries->find($value)->branchname
- : ( $crit =~ /reservestatus/ ) ? reservestatushuman($value)
: $value; # default fallback
if ($crit =~ /sort1/) {
foreach (@$Bsort1) {
@@ -324,35 +323,9 @@ sub display_value {
return $display_value;
}
-sub reservestatushuman{
- my ($val)=@_;
- my %hashhuman=(
- 1=>"1- placed",
- 2=>"2- processed",
- 3=>"3- pending",
- 4=>"4- satisfied",
- 5=>"5- cancelled",
- 6=>"6- not a status"
- );
- $hashhuman{$val};
-}
-
sub changeifreservestatus{
- my ($val)=@_;
- ($val=~/reservestatus/
- ?$val=qq{ case
- when priority>0 then 1
- when priority=0 then
- (case
- when found='f' then 4
- when found='w' then
- (case
- when cancellationdate is null then 3
- else 5
- end )
- else 2
- end )
- else 6
- end }
- :$val);
+ my ( $field ) = @_;
+ return $field unless $field =~ /reservestatus/;
+ # For reservestatus we return C- Cancelled, W- Waiting, F- Filled, P- Placed (or other like processing, transit etc.)
+ return q|CASE WHEN cancellationdate IS NOT NULL THEN 'C' WHEN found='W' THEN 'W' WHEN found='F' THEN 'F' ELSE 'P' END|;
}