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 1856-1862
sub _Findgroupreserve {
Link Here
|
1856 |
reserves.timestamp AS timestamp, |
1862 |
reserves.timestamp AS timestamp, |
1857 |
biblioitems.biblioitemnumber AS biblioitemnumber, |
1863 |
biblioitems.biblioitemnumber AS biblioitemnumber, |
1858 |
reserves.itemnumber AS itemnumber, |
1864 |
reserves.itemnumber AS itemnumber, |
1859 |
reserves.reserve_id AS reserve_id |
1865 |
reserves.reserve_id AS reserve_id, |
|
|
1866 |
reserves.itemtype AS itemtype |
1860 |
FROM reserves |
1867 |
FROM reserves |
1861 |
JOIN biblioitems USING (biblionumber) |
1868 |
JOIN biblioitems USING (biblionumber) |
1862 |
JOIN hold_fill_targets USING (biblionumber, borrowernumber, itemnumber) |
1869 |
JOIN hold_fill_targets USING (biblionumber, borrowernumber, itemnumber) |
Lines 1890-1896
sub _Findgroupreserve {
Link Here
|
1890 |
reserves.timestamp AS timestamp, |
1897 |
reserves.timestamp AS timestamp, |
1891 |
biblioitems.biblioitemnumber AS biblioitemnumber, |
1898 |
biblioitems.biblioitemnumber AS biblioitemnumber, |
1892 |
reserves.itemnumber AS itemnumber, |
1899 |
reserves.itemnumber AS itemnumber, |
1893 |
reserves.reserve_id AS reserve_id |
1900 |
reserves.reserve_id AS reserve_id, |
|
|
1901 |
reserves.itemtype AS itemtype |
1894 |
FROM reserves |
1902 |
FROM reserves |
1895 |
JOIN biblioitems USING (biblionumber) |
1903 |
JOIN biblioitems USING (biblionumber) |
1896 |
JOIN hold_fill_targets USING (biblionumber, borrowernumber) |
1904 |
JOIN hold_fill_targets USING (biblionumber, borrowernumber) |
Lines 1923-1929
sub _Findgroupreserve {
Link Here
|
1923 |
reserves.priority AS priority, |
1931 |
reserves.priority AS priority, |
1924 |
reserves.timestamp AS timestamp, |
1932 |
reserves.timestamp AS timestamp, |
1925 |
reserves.itemnumber AS itemnumber, |
1933 |
reserves.itemnumber AS itemnumber, |
1926 |
reserves.reserve_id AS reserve_id |
1934 |
reserves.reserve_id AS reserve_id, |
|
|
1935 |
reserves.itemtype AS itemtype |
1927 |
FROM reserves |
1936 |
FROM reserves |
1928 |
WHERE reserves.biblionumber = ? |
1937 |
WHERE reserves.biblionumber = ? |
1929 |
AND (reserves.itemnumber IS NULL OR reserves.itemnumber = ?) |
1938 |
AND (reserves.itemnumber IS NULL OR reserves.itemnumber = ?) |