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

(-)a/C4/Reserves.pm (-2 / +101 lines)
Lines 250-261 sub AddReserve { Link Here
250
                    borrowernumber         => $borrowernumber,
250
                    borrowernumber         => $borrowernumber,
251
                    message_transport_type => 'email',
251
                    message_transport_type => 'email',
252
                    from_address           => $admin_email_address,
252
                    from_address           => $admin_email_address,
253
                    to_address           => $admin_email_address,
253
                    to_address             => $admin_email_address,
254
                }
254
                }
255
            );
255
            );
256
        }
256
        }
257
    }
257
    }
258
258
259
    # Send email to borrowers asking to return item whenever a hold is placed on it
260
    if (C4::Context->preference("NotifyToReturnItemWhenHoldIsPlaced")) {
261
        my @borrowers = GetBorrowersToSatisfyHold($hold);
262
        foreach my $borrower (@borrowers) {
263
            if ( !$borrower->{email} ) {
264
                next;
265
            }
266
267
            my $library = Koha::Libraries->find($borrower->{branchcode})->unblessed;
268
            if ( my $letter =  C4::Letters::GetPreparedLetter (
269
                module => 'reserves',
270
                letter_code => 'HOLDPLACED_CONTACT',
271
                branchcode => $branch,
272
                tables => {
273
                    'branches'    => $library,
274
                    'borrowers'   => $borrower,
275
                    'biblio'      => $biblionumber,
276
                    'biblioitems' => $biblionumber,
277
                    'items'       => $checkitem,
278
                },
279
            ) ) {
280
281
                my $admin_email_address = $library->{'branchemail'} || C4::Context->preference('KohaAdminEmailAddress');
282
283
                C4::Letters::EnqueueLetter(
284
                    {   letter                 => $letter,
285
                        borrowernumber         => $borrower->{borrowernumber},
286
                        message_transport_type => 'email',
287
                        from_address           => $admin_email_address,
288
                        to_address             => $borrower->{email},
289
                    }
290
            );
291
            }
292
293
        }
294
    }
295
259
    return $reserve_id;
296
    return $reserve_id;
260
}
297
}
261
298
Lines 2433-2438 sub GetHoldRule { Link Here
2433
    return $sth->fetchrow_hashref();
2470
    return $sth->fetchrow_hashref();
2434
}
2471
}
2435
2472
2473
=head2 GetBorrowersToSatisfyHold
2474
2475
my @borrowers = GetBorrowersToSatisfyHold( $hold );
2476
2477
Returns borrowers who can return item to satisfy a given hold.
2478
2479
=cut
2480
2481
sub GetBorrowersToSatisfyHold {
2482
    my ( $hold ) = @_;
2483
2484
    my $query = "";
2485
2486
    if ($hold->item()) {
2487
        $query = q{
2488
             SELECT borrowers.borrowernumber
2489
               FROM reserves
2490
               JOIN items ON reserves.itemnumber = items.itemnumber
2491
               JOIN issues ON issues.itemnumber = items.itemnumber
2492
               JOIN borrowers ON issues.borrowernumber = borrowers.borrowernumber
2493
              WHERE reserves.reserve_id = ?
2494
        };
2495
    }
2496
    elsif ($hold->biblio()) {
2497
        $query = q{
2498
             SELECT borrowers.borrowernumber
2499
               FROM reserves
2500
               JOIN biblio ON reserves.biblionumber = biblio.biblionumber
2501
               JOIN items ON items.biblionumber = biblio.biblionumber
2502
               JOIN issues ON issues.itemnumber = items.itemnumber
2503
               JOIN borrowers ON issues.borrowernumber = borrowers.borrowernumber
2504
              WHERE reserves.reserve_id = ?
2505
        };
2506
    }
2507
2508
    my $library = C4::Context->preference("NotifyToReturnItemFromLibrary");
2509
    my $dbh = C4::Context->dbh;
2510
    my $sth;
2511
2512
    if ($library eq 'RequestorLibrary') {
2513
        $query .= " AND borrowers.branchcode = ?";
2514
	$sth = $dbh->prepare( $query );
2515
	$sth->execute( $hold->id(), $hold->borrower()->branchcode );
2516
    }
2517
    elsif ($library eq 'ItemHomeLibrary') {
2518
        $query .= " AND items.homebranch = ?";
2519
	$sth = $dbh->prepare( $query );
2520
	$sth->execute( $hold->id(), $hold->borrower()->branchcode );
2521
    }
2522
    else {
2523
	$sth = $dbh->prepare( $query );
2524
	$sth->execute( $hold->id() );
2525
    }
2526
2527
    my @results = ();
2528
    while ( my $data = $sth->fetchrow_hashref ) {
2529
        my $borrower = C4::Members::GetMember(borrowernumber => $data->{borrowernumber});
2530
        push( @results, $borrower );
2531
    }
2532
2533
    return @results;
2534
}
2535
2436
=head1 AUTHOR
2536
=head1 AUTHOR
2437
2537
2438
Koha Development Team <http://koha-community.org/>
2538
Koha Development Team <http://koha-community.org/>
2439
- 

Return to bug 17509