return (@transreserv);
}
+=head2 GetReserveStatus
+
+ $reservestatus = GetReserveStatus($itemnumber, $biblionumber);
+
+Take an itemnumber or a biblionumber and return the status of the reserve places on it.
+If several reserves exist, the reserve with the lower priority is given.
+
+=cut
+
sub GetReserveStatus {
- my ($itemnumber) = @_;
-
+ my ($itemnumber, $biblionumber) = @_;
+
my $dbh = C4::Context->dbh;
-
- my $itemstatus = $dbh->prepare("SELECT found FROM reserves WHERE itemnumber = ?");
-
- $itemstatus->execute($itemnumber);
- my ($found) = $itemstatus->fetchrow_array;
- return $found;
+
+ my ($sth, $found, $priority);
+ if ( $itemnumber ) {
+ $sth = $dbh->prepare("SELECT found, priority FROM reserves WHERE itemnumber = ? order by priority LIMIT 1");
+ $sth->execute($itemnumber);
+ ($found, $priority) = $sth->fetchrow_array;
+ }
+
+ if ( $biblionumber and not defined $found and not defined $priority ) {
+ $sth = $dbh->prepare("SELECT found, priority FROM reserves WHERE biblionumber = ? order by priority LIMIT 1");
+ $sth->execute($biblionumber);
+ ($found, $priority) = $sth->fetchrow_array;
+ }
+
+ if(defined $found) {
+ return 'Waiting' if $found eq 'W' and $priority == 0;
+ return 'Finished' if $found eq 'F';
+ return 'Reserved' if $priority > 0;
+ }
+ return '';
+ #empty string here will remove need for checking undef, or less log lines
}
=head2 CheckReserves
if (C4::Context->preference('AllowOnShelfHolds')) {
return $available_per_item;
} else {
- return ($available_per_item and ($item->{onloan} or GetReserveStatus($itemnumber) eq "W"));
+ return ($available_per_item and ($item->{onloan} or GetReserveStatus($itemnumber) eq "Waiting"));
}
}
my $borrower = C4::Members::GetMember(borrowernumber => $borrowernumber);
# Try to get the borrower's email address
- my $to_address;
- my $which_address = C4::Context->preference('AutoEmailPrimaryAddress');
- # If the system preference is set to 'first valid' (value == OFF), look up email address
- if ($which_address eq 'OFF') {
- $to_address = C4::Members::GetFirstValidEmailAddress( $borrowernumber );
- } else {
- $to_address = $borrower->{$which_address};
- }
+ my $to_address = C4::Members::GetNoticeEmailAddress($borrowernumber);
my $letter_code;
my $print_mode = 0;