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