This patch fixes a problem where a patron could receive duplicate
hold waiting notifications. For example, this could happen if a
circ operator checked in an item more than once and confirmed the
same hold each time.
To test:
[1] Set up a test patron that received hold waiting notifications.
[2] Put an item on hold for the patron, then check the item in
and confirm the hold. Verify that a hold notification is
sent (or inspect the message_queue table).
[3] Check the item in again and confirm the hold again. A duplicate
hold notification will be generated.
[4] Apply the patch.
[5] Repeat steps 2 and 3. This time, only one notification should be
generated.
[6] Verify that prove -v t/db_dependent/Reserves.t passes.
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes all tests and QA script.
Works as described.
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
# get request - need to find out if item is already
# waiting in order to not send duplicate hold filled notifications
- my $request = GetReserveInfo($borrowernumber, $biblionumber);
+ my $reserve_id = GetReserveId({
+ borrowernumber => $borrowernumber,
+ biblionumber => $biblionumber,
+ });
+ return unless defined $reserve_id;
+ my $request = GetReserveInfo($reserve_id);
my $already_on_shelf = ($request && $request->{found} eq 'W') ? 1 : 0;
# If we affect a reserve that has to be transfered, don't set to Waiting