|
Lines 1717-1725
sub _Findgroupreserve {
Link Here
|
| 1717 |
my ( $biblionumber, $itemnumber, $lookahead, $ignore_borrowers) = @_; |
1717 |
my ( $biblionumber, $itemnumber, $lookahead, $ignore_borrowers) = @_; |
| 1718 |
my $dbh = C4::Context->dbh; |
1718 |
my $dbh = C4::Context->dbh; |
| 1719 |
|
1719 |
|
| 1720 |
# TODO: consolidate at least the SELECT portion of the first 2 queries to a common $select var. |
1720 |
# check for targeted match form the holds queue |
| 1721 |
# check for exact targeted match |
1721 |
my $hold_target_query = qq{ |
| 1722 |
my $item_level_target_query = qq{ |
|
|
| 1723 |
SELECT reserves.biblionumber AS biblionumber, |
1722 |
SELECT reserves.biblionumber AS biblionumber, |
| 1724 |
reserves.borrowernumber AS borrowernumber, |
1723 |
reserves.borrowernumber AS borrowernumber, |
| 1725 |
reserves.reservedate AS reservedate, |
1724 |
reserves.reservedate AS reservedate, |
|
Lines 1740-1752
sub _Findgroupreserve {
Link Here
|
| 1740 |
JOIN hold_fill_targets USING (reserve_id) |
1739 |
JOIN hold_fill_targets USING (reserve_id) |
| 1741 |
WHERE found IS NULL |
1740 |
WHERE found IS NULL |
| 1742 |
AND priority > 0 |
1741 |
AND priority > 0 |
| 1743 |
AND item_level_request = 1 |
|
|
| 1744 |
AND hold_fill_targets.itemnumber = ? |
1742 |
AND hold_fill_targets.itemnumber = ? |
| 1745 |
AND reservedate <= DATE_ADD(NOW(),INTERVAL ? DAY) |
1743 |
AND reservedate <= DATE_ADD(NOW(),INTERVAL ? DAY) |
| 1746 |
AND suspend = 0 |
1744 |
AND suspend = 0 |
| 1747 |
ORDER BY priority |
1745 |
ORDER BY priority |
| 1748 |
}; |
1746 |
}; |
| 1749 |
my $sth = $dbh->prepare($item_level_target_query); |
1747 |
my $sth = $dbh->prepare($hold_target_query); |
| 1750 |
$sth->execute($itemnumber, $lookahead||0); |
1748 |
$sth->execute($itemnumber, $lookahead||0); |
| 1751 |
my @results; |
1749 |
my @results; |
| 1752 |
if ( my $data = $sth->fetchrow_hashref ) { |
1750 |
if ( my $data = $sth->fetchrow_hashref ) { |
|
Lines 1755-1799
sub _Findgroupreserve {
Link Here
|
| 1755 |
} |
1753 |
} |
| 1756 |
return @results if @results; |
1754 |
return @results if @results; |
| 1757 |
|
1755 |
|
| 1758 |
# check for title-level targeted match |
|
|
| 1759 |
my $title_level_target_query = qq{ |
| 1760 |
SELECT reserves.biblionumber AS biblionumber, |
| 1761 |
reserves.borrowernumber AS borrowernumber, |
| 1762 |
reserves.reservedate AS reservedate, |
| 1763 |
reserves.branchcode AS branchcode, |
| 1764 |
reserves.cancellationdate AS cancellationdate, |
| 1765 |
reserves.found AS found, |
| 1766 |
reserves.reservenotes AS reservenotes, |
| 1767 |
reserves.priority AS priority, |
| 1768 |
reserves.timestamp AS timestamp, |
| 1769 |
biblioitems.biblioitemnumber AS biblioitemnumber, |
| 1770 |
reserves.itemnumber AS itemnumber, |
| 1771 |
reserves.reserve_id AS reserve_id, |
| 1772 |
reserves.itemtype AS itemtype, |
| 1773 |
reserves.non_priority AS non_priority, |
| 1774 |
reserves.item_group_id AS item_group_id |
| 1775 |
FROM reserves |
| 1776 |
JOIN biblioitems USING (biblionumber) |
| 1777 |
JOIN hold_fill_targets USING (reserve_id) |
| 1778 |
LEFT JOIN item_group_items ON ( item_group_items.item_id = hold_fill_targets.itemnumber ) |
| 1779 |
WHERE found IS NULL |
| 1780 |
AND priority > 0 |
| 1781 |
AND item_level_request = 0 |
| 1782 |
AND hold_fill_targets.itemnumber = ? |
| 1783 |
AND reservedate <= DATE_ADD(NOW(),INTERVAL ? DAY) |
| 1784 |
AND suspend = 0 |
| 1785 |
AND (reserves.item_group_id = item_group_items.item_group_id OR reserves.item_group_id IS NULL) |
| 1786 |
ORDER BY priority |
| 1787 |
}; |
| 1788 |
$sth = $dbh->prepare($title_level_target_query); |
| 1789 |
$sth->execute($itemnumber, $lookahead||0); |
| 1790 |
@results = (); |
| 1791 |
if ( my $data = $sth->fetchrow_hashref ) { |
| 1792 |
push( @results, $data ) |
| 1793 |
unless any{ $data->{borrowernumber} eq $_ } @$ignore_borrowers ; |
| 1794 |
} |
| 1795 |
return @results if @results; |
| 1796 |
|
| 1797 |
my $query = qq{ |
1756 |
my $query = qq{ |
| 1798 |
SELECT reserves.biblionumber AS biblionumber, |
1757 |
SELECT reserves.biblionumber AS biblionumber, |
| 1799 |
reserves.borrowernumber AS borrowernumber, |
1758 |
reserves.borrowernumber AS borrowernumber, |
| 1800 |
- |
|
|