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

(-)a/C4/Reserves.pm (-2 / +101 lines)
Lines 249-260 sub AddReserve { Link Here
249
                    borrowernumber         => $borrowernumber,
249
                    borrowernumber         => $borrowernumber,
250
                    message_transport_type => 'email',
250
                    message_transport_type => 'email',
251
                    from_address           => $admin_email_address,
251
                    from_address           => $admin_email_address,
252
                    to_address           => $admin_email_address,
252
                    to_address             => $admin_email_address,
253
                }
253
                }
254
            );
254
            );
255
        }
255
        }
256
    }
256
    }
257
257
258
    # Send email to borrowers asking to return item whenever a hold is placed on it
259
    if (C4::Context->preference("NotifyToReturnItemWhenHoldIsPlaced")) {
260
        my @borrowers = GetBorrowersToSatisfyHold($hold);
261
        foreach my $borrower (@borrowers) {
262
            if ( !$borrower->{email} ) {
263
                next;
264
            }
265
266
            my $library = Koha::Libraries->find($borrower->{branchcode})->unblessed;
267
            if ( my $letter =  C4::Letters::GetPreparedLetter (
268
                module => 'reserves',
269
                letter_code => 'HOLDPLACED_CONTACT',
270
                branchcode => $branch,
271
                tables => {
272
                    'branches'    => $library,
273
                    'borrowers'   => $borrower,
274
                    'biblio'      => $biblionumber,
275
                    'biblioitems' => $biblionumber,
276
                    'items'       => $checkitem,
277
                },
278
            ) ) {
279
280
                my $admin_email_address = $library->{'branchemail'} || C4::Context->preference('KohaAdminEmailAddress');
281
282
                C4::Letters::EnqueueLetter(
283
                    {   letter                 => $letter,
284
                        borrowernumber         => $borrower->{borrowernumber},
285
                        message_transport_type => 'email',
286
                        from_address           => $admin_email_address,
287
                        to_address             => $borrower->{email},
288
                    }
289
            );
290
            }
291
292
        }
293
    }
294
258
    return $reserve_id;
295
    return $reserve_id;
259
}
296
}
260
297
Lines 2546-2551 sub GetHoldRule { Link Here
2546
    return $sth->fetchrow_hashref();
2583
    return $sth->fetchrow_hashref();
2547
}
2584
}
2548
2585
2586
=head2 GetBorrowersToSatisfyHold
2587
2588
my @borrowers = GetBorrowersToSatisfyHold( $hold );
2589
2590
Returns borrowers who can return item to satisfy a given hold.
2591
2592
=cut
2593
2594
sub GetBorrowersToSatisfyHold {
2595
    my ( $hold ) = @_;
2596
2597
    my $query = "";
2598
2599
    if ($hold->item()) {
2600
        $query = q{
2601
             SELECT borrowers.borrowernumber
2602
               FROM reserves
2603
               JOIN items ON reserves.itemnumber = items.itemnumber
2604
               JOIN issues ON issues.itemnumber = items.itemnumber
2605
               JOIN borrowers ON issues.borrowernumber = borrowers.borrowernumber
2606
              WHERE reserves.reserve_id = ?
2607
        };
2608
    }
2609
    elsif ($hold->biblio()) {
2610
        $query = q{
2611
             SELECT borrowers.borrowernumber
2612
               FROM reserves
2613
               JOIN biblio ON reserves.biblionumber = biblio.biblionumber
2614
               JOIN items ON items.biblionumber = biblio.biblionumber
2615
               JOIN issues ON issues.itemnumber = items.itemnumber
2616
               JOIN borrowers ON issues.borrowernumber = borrowers.borrowernumber
2617
              WHERE reserves.reserve_id = ?
2618
        };
2619
    }
2620
2621
    my $library = C4::Context->preference("NotifyToReturnItemFromLibrary");
2622
    my $dbh = C4::Context->dbh;
2623
    my $sth;
2624
2625
    if ($library eq 'RequestorLibrary') {
2626
        $query .= " AND borrowers.branchcode = ?";
2627
    	$sth = $dbh->prepare( $query );
2628
    	$sth->execute( $hold->id(), $hold->borrower()->branchcode );
2629
    }
2630
    elsif ($library eq 'ItemHomeLibrary') {
2631
        $query .= " AND items.homebranch = ?";
2632
     	$sth = $dbh->prepare( $query );
2633
    	$sth->execute( $hold->id(), $hold->borrower()->branchcode );
2634
    }
2635
    else {
2636
    	$sth = $dbh->prepare( $query );
2637
    	$sth->execute( $hold->id() );
2638
    }
2639
   
2640
    my @results = ();
2641
    while ( my $data = $sth->fetchrow_hashref ) {
2642
        my $borrower = C4::Members::GetMember(borrowernumber => $data->{borrowernumber});
2643
        push( @results, $borrower );
2644
    }
2645
2646
    return @results;
2647
}
2648
2549
=head1 AUTHOR
2649
=head1 AUTHOR
2550
2650
2551
Koha Development Team <http://koha-community.org/>
2651
Koha Development Team <http://koha-community.org/>
2552
- 

Return to bug 17509