View | Details | Raw Unified | Return to bug 17509
Collapse All | Expand All

(-)a/C4/Reserves.pm (-2 / +101 lines)
Lines 256-267 sub AddReserve { Link Here
256
                    borrowernumber         => $borrowernumber,
256
                    borrowernumber         => $borrowernumber,
257
                    message_transport_type => 'email',
257
                    message_transport_type => 'email',
258
                    from_address           => $admin_email_address,
258
                    from_address           => $admin_email_address,
259
                    to_address           => $admin_email_address,
259
                    to_address             => $admin_email_address,
260
                }
260
                }
261
            );
261
            );
262
        }
262
        }
263
    }
263
    }
264
264
265
    # Send email to borrowers asking to return item whenever a hold is placed on it
266
    if (C4::Context->preference("NotifyToReturnItemWhenHoldIsPlaced")) {
267
        my @borrowers = GetBorrowersToSatisfyHold($hold);
268
        foreach my $borrower (@borrowers) {
269
            if ( !$borrower->{email} ) {
270
                next;
271
            }
272
273
            my $library = Koha::Libraries->find($borrower->{branchcode})->unblessed;
274
            if ( my $letter =  C4::Letters::GetPreparedLetter (
275
                module => 'reserves',
276
                letter_code => 'HOLDPLACED_CONTACT',
277
                branchcode => $branch,
278
                tables => {
279
                    'branches'    => $library,
280
                    'borrowers'   => $borrower,
281
                    'biblio'      => $biblionumber,
282
                    'biblioitems' => $biblionumber,
283
                    'items'       => $checkitem,
284
                },
285
            ) ) {
286
287
                my $admin_email_address = $library->{'branchemail'} || C4::Context->preference('KohaAdminEmailAddress');
288
289
                C4::Letters::EnqueueLetter(
290
                    {   letter                 => $letter,
291
                        borrowernumber         => $borrower->{borrowernumber},
292
                        message_transport_type => 'email',
293
                        from_address           => $admin_email_address,
294
                        to_address             => $borrower->{email},
295
                    }
296
            );
297
            }
298
299
        }
300
    }
301
265
    return $reserve_id;
302
    return $reserve_id;
266
}
303
}
267
304
Lines 2164-2169 sub GetHoldRule { Link Here
2164
    return $sth->fetchrow_hashref();
2201
    return $sth->fetchrow_hashref();
2165
}
2202
}
2166
2203
2204
=head2 GetBorrowersToSatisfyHold
2205
2206
my @borrowers = GetBorrowersToSatisfyHold( $hold );
2207
2208
Returns borrowers who can return item to satisfy a given hold.
2209
2210
=cut
2211
2212
sub GetBorrowersToSatisfyHold {
2213
    my ( $hold ) = @_;
2214
2215
    my $query = "";
2216
2217
    if ($hold->item()) {
2218
        $query = q{
2219
             SELECT borrowers.borrowernumber
2220
               FROM reserves
2221
               JOIN items ON reserves.itemnumber = items.itemnumber
2222
               JOIN issues ON issues.itemnumber = items.itemnumber
2223
               JOIN borrowers ON issues.borrowernumber = borrowers.borrowernumber
2224
              WHERE reserves.reserve_id = ?
2225
        };
2226
    }
2227
    elsif ($hold->biblio()) {
2228
        $query = q{
2229
             SELECT borrowers.borrowernumber
2230
               FROM reserves
2231
               JOIN biblio ON reserves.biblionumber = biblio.biblionumber
2232
               JOIN items ON items.biblionumber = biblio.biblionumber
2233
               JOIN issues ON issues.itemnumber = items.itemnumber
2234
               JOIN borrowers ON issues.borrowernumber = borrowers.borrowernumber
2235
              WHERE reserves.reserve_id = ?
2236
        };
2237
    }
2238
2239
    my $library = C4::Context->preference("NotifyToReturnItemFromLibrary");
2240
    my $dbh = C4::Context->dbh;
2241
    my $sth;
2242
2243
    if ($library eq 'RequestorLibrary') {
2244
        $query .= " AND borrowers.branchcode = ?";
2245
        $sth = $dbh->prepare( $query );
2246
        $sth->execute( $hold->id(), $hold->borrower()->branchcode );
2247
    }
2248
    elsif ($library eq 'ItemHomeLibrary') {
2249
        $query .= " AND items.homebranch = ?";
2250
        $sth = $dbh->prepare( $query );
2251
        $sth->execute( $hold->id(), $hold->borrower()->branchcode );
2252
    }
2253
    else {
2254
        $sth = $dbh->prepare( $query );
2255
        $sth->execute( $hold->id() );
2256
    }
2257
2258
    my @results = ();
2259
    while ( my $data = $sth->fetchrow_hashref ) {
2260
        my $borrower = C4::Members::GetMember(borrowernumber => $data->{borrowernumber});
2261
        push( @results, $borrower );
2262
    }
2263
2264
    return @results;
2265
}
2266
2167
=head1 AUTHOR
2267
=head1 AUTHOR
2168
2268
2169
Koha Development Team <http://koha-community.org/>
2269
Koha Development Team <http://koha-community.org/>
2170
- 

Return to bug 17509