bug 3222: tweak sending of hold filled notification
authorGalen Charlton <galen.charlton@liblime.com>
Wed, 20 May 2009 16:35:56 +0000 (11:35 -0500)
committerGalen Charlton <galen.charlton@liblime.com>
Fri, 22 May 2009 18:20:57 +0000 (13:20 -0500)
Send a hold filled notification only when the item
is (assumed) to enter the hold shelf, i.e., when
the request status (reserves.found) is set to 'W'.

Signed-off-by: Daniel Sweeney <daniel.sweeney@liblime.com>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
C4/Reserves.pm

index 3593dd8..90c6fd7 100644 (file)
@@ -973,6 +973,12 @@ sub ModReserveAffect {
     my $sth = $dbh->prepare("SELECT biblionumber FROM items WHERE itemnumber=?");
     $sth->execute($itemnumber);
     my ($biblionumber) = $sth->fetchrow;
+
+    # 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 $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
     my $query;
     if ($transferToDo) {
@@ -998,7 +1004,7 @@ sub ModReserveAffect {
     }
     $sth = $dbh->prepare($query);
     $sth->execute( $itemnumber, $borrowernumber,$biblionumber);
-    _koha_notify_reserve( $itemnumber, $borrowernumber, $biblionumber ) if ( !$transferToDo );
+    _koha_notify_reserve( $itemnumber, $borrowernumber, $biblionumber ) if ( !$transferToDo && !$already_on_shelf );
 
     return;
 }