Bug 10949: restore ability to successfully print hold slips
authorGalen Charlton <gmc@esilibrary.com>
Wed, 25 Sep 2013 16:15:07 +0000 (16:15 +0000)
committerGalen Charlton <gmc@esilibrary.com>
Wed, 2 Oct 2013 14:38:30 +0000 (14:38 +0000)
This fixes a regression introduced by the patch for bug
9394 -- when printing a hold slip using the 'print and confirm'
button, the slip would contain only the text 'reserve not found',
not a full hold slip.

This patch also adds a regression test.

To test:

[1] Check in an item that would fill a hold.  Use the 'print
    and confirm button' to confirm the hold.
[2] The printout will only contain text to the effect of
    'reserve not found'.
[3] Apply the patch.
[4] Repeat step 1.  This time, a full hold slip should be printed.
[5] Verify that prove -v t/db_dependent/Reserves.t passes.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Pass all tests, new and old, and QA script.
Verified wrong and corrected behaviour.

Note: Sometimes there will not be the message 'reserve not found'
showing up, but hold information for a different record. This happens
when there exists a reserve_id with the borrowernumber of the patron
in question in your database.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
C4/Reserves.pm
t/db_dependent/Reserves.t

index 78e9a5b..bba4933 100644 (file)
@@ -2171,8 +2171,11 @@ sub ReserveSlip {
 
 #   return unless ( C4::Context->boolean_preference('printreserveslips') );
 
 
 #   return unless ( C4::Context->boolean_preference('printreserveslips') );
 
-    my $reserve = GetReserveInfo($borrowernumber,$biblionumber )
-      or return;
+    my $reserve_id = GetReserveId({
+        biblionumber => $biblionumber,
+        borrowernumber => $borrowernumber
+    }) or return;
+    my $reserve = GetReserveInfo($reserve_id) or return;
 
     return  C4::Letters::GetPreparedLetter (
         module => 'circulation',
 
     return  C4::Letters::GetPreparedLetter (
         module => 'circulation',
index ea60d54..ad50619 100755 (executable)
@@ -2,7 +2,7 @@
 
 use Modern::Perl;
 
 
 use Modern::Perl;
 
-use Test::More tests => 16;
+use Test::More tests => 17;
 use MARC::Record;
 use DateTime::Duration;
 
 use MARC::Record;
 use DateTime::Duration;
 
@@ -263,4 +263,7 @@ is(exists $messages->{ResFound}?1:0, 1, 'AddReturn considers future reserve with
 
 # End of tests for bug 9761 (ConfirmFutureHolds)
 
 
 # End of tests for bug 9761 (ConfirmFutureHolds)
 
+my $letter = ReserveSlip('CPL', $requesters{'CPL'}, $bibnum);
+ok(defined($letter), 'can successfully generate hold slip (bug 10949)');
+
 $dbh->rollback;
 $dbh->rollback;