Lines 161-169
The following tables are available witin the HOLDPLACED message:
Link Here
|
161 |
|
161 |
|
162 |
sub AddReserve { |
162 |
sub AddReserve { |
163 |
my ( |
163 |
my ( |
164 |
$branch, $borrowernumber, $biblionumber, |
164 |
$branch, $borrowernumber, $biblionumber, $bibitems, |
165 |
$bibitems, $priority, $resdate, $expdate, $notes, |
165 |
$priority, $resdate, $expdate, $notes, |
166 |
$title, $checkitem, $found |
166 |
$title, $checkitem, $found, $itemtype |
167 |
) = @_; |
167 |
) = @_; |
168 |
|
168 |
|
169 |
if ( Koha::Holds->search( { borrowernumber => $borrowernumber, biblionumber => $biblionumber } )->count() > 0 ) { |
169 |
if ( Koha::Holds->search( { borrowernumber => $borrowernumber, biblionumber => $biblionumber } )->count() > 0 ) { |
Lines 191-196
sub AddReserve {
Link Here
|
191 |
$waitingdate = $resdate; |
191 |
$waitingdate = $resdate; |
192 |
} |
192 |
} |
193 |
|
193 |
|
|
|
194 |
# Don't add itemtype limit if specific item is selected |
195 |
$itemtype = undef if $checkitem; |
196 |
|
194 |
# updates take place here |
197 |
# updates take place here |
195 |
my $hold = Koha::Hold->new( |
198 |
my $hold = Koha::Hold->new( |
196 |
{ |
199 |
{ |
Lines 203-209
sub AddReserve {
Link Here
|
203 |
itemnumber => $checkitem, |
206 |
itemnumber => $checkitem, |
204 |
found => $found, |
207 |
found => $found, |
205 |
waitingdate => $waitingdate, |
208 |
waitingdate => $waitingdate, |
206 |
expirationdate => $expdate |
209 |
expirationdate => $expdate, |
|
|
210 |
itemtype => $itemtype, |
207 |
} |
211 |
} |
208 |
)->store(); |
212 |
)->store(); |
209 |
my $reserve_id = $hold->id(); |
213 |
my $reserve_id = $hold->id(); |
Lines 310-316
sub GetReservesFromBiblionumber {
Link Here
|
310 |
expirationdate, |
314 |
expirationdate, |
311 |
lowestPriority, |
315 |
lowestPriority, |
312 |
suspend, |
316 |
suspend, |
313 |
suspend_until |
317 |
suspend_until, |
|
|
318 |
itemtype |
314 |
FROM reserves |
319 |
FROM reserves |
315 |
WHERE biblionumber = ? "; |
320 |
WHERE biblionumber = ? "; |
316 |
push( @params, $biblionumber ); |
321 |
push( @params, $biblionumber ); |
Lines 946-953
sub CheckReserves {
Link Here
|
946 |
|
951 |
|
947 |
# See if this item is more important than what we've got so far |
952 |
# See if this item is more important than what we've got so far |
948 |
if ( ( $res->{'priority'} && $res->{'priority'} < $priority ) || $local_hold_match ) { |
953 |
if ( ( $res->{'priority'} && $res->{'priority'} < $priority ) || $local_hold_match ) { |
949 |
$borrowerinfo ||= C4::Members::GetMember( borrowernumber => $res->{'borrowernumber'} ); |
|
|
950 |
$iteminfo ||= C4::Items::GetItem($itemnumber); |
954 |
$iteminfo ||= C4::Items::GetItem($itemnumber); |
|
|
955 |
next if $res->{itemtype} && $res->{itemtype} ne _get_itype( $iteminfo ); |
956 |
$borrowerinfo ||= C4::Members::GetMember( borrowernumber => $res->{'borrowernumber'} ); |
951 |
my $branch = GetReservesControlBranch( $iteminfo, $borrowerinfo ); |
957 |
my $branch = GetReservesControlBranch( $iteminfo, $borrowerinfo ); |
952 |
my $branchitemrule = C4::Circulation::GetBranchItemRule($branch,$iteminfo->{'itype'}); |
958 |
my $branchitemrule = C4::Circulation::GetBranchItemRule($branch,$iteminfo->{'itype'}); |
953 |
next if ($branchitemrule->{'holdallowed'} == 0); |
959 |
next if ($branchitemrule->{'holdallowed'} == 0); |
Lines 1833-1839
sub _Findgroupreserve {
Link Here
|
1833 |
reserves.timestamp AS timestamp, |
1839 |
reserves.timestamp AS timestamp, |
1834 |
biblioitems.biblioitemnumber AS biblioitemnumber, |
1840 |
biblioitems.biblioitemnumber AS biblioitemnumber, |
1835 |
reserves.itemnumber AS itemnumber, |
1841 |
reserves.itemnumber AS itemnumber, |
1836 |
reserves.reserve_id AS reserve_id |
1842 |
reserves.reserve_id AS reserve_id, |
|
|
1843 |
reserves.itemtype AS itemtype |
1837 |
FROM reserves |
1844 |
FROM reserves |
1838 |
JOIN biblioitems USING (biblionumber) |
1845 |
JOIN biblioitems USING (biblionumber) |
1839 |
JOIN hold_fill_targets USING (biblionumber, borrowernumber, itemnumber) |
1846 |
JOIN hold_fill_targets USING (biblionumber, borrowernumber, itemnumber) |
Lines 1867-1873
sub _Findgroupreserve {
Link Here
|
1867 |
reserves.timestamp AS timestamp, |
1874 |
reserves.timestamp AS timestamp, |
1868 |
biblioitems.biblioitemnumber AS biblioitemnumber, |
1875 |
biblioitems.biblioitemnumber AS biblioitemnumber, |
1869 |
reserves.itemnumber AS itemnumber, |
1876 |
reserves.itemnumber AS itemnumber, |
1870 |
reserves.reserve_id AS reserve_id |
1877 |
reserves.reserve_id AS reserve_id, |
|
|
1878 |
reserves.itemtype AS itemtype |
1871 |
FROM reserves |
1879 |
FROM reserves |
1872 |
JOIN biblioitems USING (biblionumber) |
1880 |
JOIN biblioitems USING (biblionumber) |
1873 |
JOIN hold_fill_targets USING (biblionumber, borrowernumber) |
1881 |
JOIN hold_fill_targets USING (biblionumber, borrowernumber) |
Lines 1900-1906
sub _Findgroupreserve {
Link Here
|
1900 |
reserves.priority AS priority, |
1908 |
reserves.priority AS priority, |
1901 |
reserves.timestamp AS timestamp, |
1909 |
reserves.timestamp AS timestamp, |
1902 |
reserves.itemnumber AS itemnumber, |
1910 |
reserves.itemnumber AS itemnumber, |
1903 |
reserves.reserve_id AS reserve_id |
1911 |
reserves.reserve_id AS reserve_id, |
|
|
1912 |
reserves.itemtype AS itemtype |
1904 |
FROM reserves |
1913 |
FROM reserves |
1905 |
WHERE reserves.biblionumber = ? |
1914 |
WHERE reserves.biblionumber = ? |
1906 |
AND (reserves.itemnumber IS NULL OR reserves.itemnumber = ?) |
1915 |
AND (reserves.itemnumber IS NULL OR reserves.itemnumber = ?) |