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