|
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 = ?) |