From c255576a786a03c1c28082c5dc677c8b5c3ddf02 Mon Sep 17 00:00:00 2001
From: Kyle M Hall <kyle@bywatersolutions.com>
Date: Tue, 17 Apr 2018 14:29:27 +0000
Subject: [PATCH] Bug 19469 [QA Followup]: Use hold item's itemtype if
 available, fix priority changing

---
 .../intranet-tmpl/prog/en/modules/reserve/request.tt     | 16 +++++++++++-----
 reserve/request.pl                                       |  1 +
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt
index 11ef69079e..6b04892b3b 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt
@@ -551,14 +551,16 @@
                             [% SET itemtypes = [] %]
 
                             [% FOREACH h IN biblioloo.reserveloop %]
-                                [% itemtypes.push( h.itemtype ) %]
+                                [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %]
+                                [% itemtypes_all.push( hold_itemtype ) %]
                             [% END %]
                             [% itemtypes = itemtypes.unique %]
 
                             [% FOREACH i IN itemtypes.sort %]
                                 [% SET holds_by_itemtype = [] %]
                                 [% FOREACH h IN biblioloo.reserveloop %]
-                                    [% IF h.itemtype == i %]
+                                    [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %]
+                                    [% IF hold_itemtype == i %]
                                         [% holds_by_itemtype.push( h ) %]
                                     [% END %]
                                 [% END %]
@@ -592,7 +594,8 @@
 
                                     [% SET itemtypes = [] %]
                                     [% FOREACH h IN holds_by_branch %]
-                                        [% itemtypes.push( h.itemtype ) %]
+                                        [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %]
+                                        [% itemtypes.push( hold_itemtype ) %]
                                     [% END %]
                                     [% itemtypes = itemtypes.unique %]
 
@@ -606,7 +609,8 @@
 
                                             [% SET holds_by_itemtype = [] %]
                                             [% FOREACH h IN holds_by_branch %]
-                                                [% IF h.itemtype == i %]
+                                                [% SET hold_itemtype = h.object.item.effective_itemtype || h.itemtype %]
+                                                [% IF hold_itemtype == i %]
                                                     [% holds_by_itemtype.push( h ) %]
                                                 [% END %]
                                             [% END %]
@@ -797,6 +801,8 @@
             }).change(function() {
                 var row = $(this).parents("tr:first");
                 var value = parseInt($(this).val());
+                var rowsCount = row.parent().children('tr').length - 1;
+                value = value > rowsCount ? rowsCount : value;
                 var after = row.parent().find("tr:nth-child("+(value+1)+")");
 
                 if (prev_rank_request > value) {
@@ -806,7 +812,7 @@
                 }
 
                 var next_priority = 1;
-                $("select[name=rank-request]").each(function () {
+                row.parent().find("select[name=rank-request]").each(function () {
                     $(this).val(next_priority);
                     next_priority++;
                 });
diff --git a/reserve/request.pl b/reserve/request.pl
index fd28c072cd..3ebd8733bc 100755
--- a/reserve/request.pl
+++ b/reserve/request.pl
@@ -590,6 +590,7 @@ foreach my $biblionumber (@biblionumbers) {
         $reserve{'reserve_id'}     = $res->reserve_id();
         $reserve{itemtype}         = $res->itemtype();
         $reserve{branchcode}       = $res->branchcode();
+        $reserve{object}           = $res;
 
         push( @reserveloop, \%reserve );
     }
-- 
2.11.0