From 71efba230442c583d591f8107874cb10016c096a Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Mon, 14 Apr 2014 18:44:07 +0000 Subject: [PATCH] Bug 12079: ensure that CheckReserves() includes reserve_id in its response This patch modifies _Findgroupreserve so that its one caller, CheckReserves(), would include the reserve_id field in the hold request it returns. Failure to include reserve_id in every circumstance resulted in bug 11947. This patch is therefore a complementary fix for that bug, but is not meant to preempt the direct fix for that bug. To test: [1] Verify that t/db_dependent/Reserves.t passes. [2] Verify that the following test plan taken from the patch for bug 11947 works for this patch *without* applying the patch for 11947: * have a few borrowers, say 4. * have a biblio with a single item (you can scale this up, it should work just the same.) * issue the item to borrower A * have borrowers B, C, and D place a hold on the item * return the item, acknowledge that it'll be put aside for B. * view the holds on the item. Without the patch: * the hold priorities in the UI end up being "waiting, 2, 1" when they should be "waiting, 1, 2". * in the database "reserves" table, they're really "0, 2, 3" when they should be "0, 1, 2". With the patch: * the hold priorities in the UI end up being "waiting, 1, 2" * in the database, they're "0, 1, 2" Signed-off-by: Galen Charlton Signed-off-by: Bernardo Gonzalez Kriegel Work as described. No koha-qa errors. Test pass Signed-off-by: Kyle M Hall Signed-off-by: Galen Charlton (cherry picked from commit 695fdebdee802387f45505a1350120727d3e2f7f) Signed-off-by: Fridolin Somers --- C4/Reserves.pm | 6 ++++-- t/db_dependent/Reserves.t | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 35c9f44b0e..d4059d2f17 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -1813,7 +1813,8 @@ sub _Findgroupreserve { reserves.priority AS priority, reserves.timestamp AS timestamp, biblioitems.biblioitemnumber AS biblioitemnumber, - reserves.itemnumber AS itemnumber + reserves.itemnumber AS itemnumber, + reserves.reserve_id AS reserve_id FROM reserves JOIN biblioitems USING (biblionumber) JOIN hold_fill_targets USING (biblionumber, borrowernumber) @@ -1844,7 +1845,8 @@ sub _Findgroupreserve { reserves.priority AS priority, reserves.timestamp AS timestamp, reserveconstraints.biblioitemnumber AS biblioitemnumber, - reserves.itemnumber AS itemnumber + reserves.itemnumber AS itemnumber, + reserves.reserve_id AS reserve_id FROM reserves LEFT JOIN reserveconstraints ON reserves.biblionumber = reserveconstraints.biblionumber WHERE reserves.biblionumber = ? diff --git a/t/db_dependent/Reserves.t b/t/db_dependent/Reserves.t index adf762bf7c..af9d7a9f53 100755 --- a/t/db_dependent/Reserves.t +++ b/t/db_dependent/Reserves.t @@ -2,7 +2,8 @@ use Modern::Perl; -use Test::More tests => 34; +use Test::More tests => 35; + use MARC::Record; use DateTime::Duration; @@ -102,6 +103,8 @@ my ($status, $reserve, $all_reserves) = CheckReserves($itemnumber, $barcode); is($status, "Reserved", "CheckReserves Test 1"); +ok(exists($reserve->{reserve_id}), 'CheckReserves() include reserve_id in its response'); + ($status, $reserve, $all_reserves) = CheckReserves($itemnumber); is($status, "Reserved", "CheckReserves Test 2"); -- 2.39.5