Lines 452-464
sub CanItemBeReserved{
Link Here
|
452 |
my $dbh = C4::Context->dbh; |
452 |
my $dbh = C4::Context->dbh; |
453 |
my $allowedreserves = 0; |
453 |
my $allowedreserves = 0; |
454 |
|
454 |
|
455 |
my $controlbranch = C4::Context->preference('ReservesControlBranch'); |
|
|
456 |
my $itype = C4::Context->preference('item-level_itypes') ? "itype" : "itemtype"; |
457 |
|
458 |
# we retrieve borrowers and items informations # |
455 |
# we retrieve borrowers and items informations # |
459 |
my $item = GetItem($itemnumber); |
456 |
my $item = GetItem($itemnumber); |
|
|
457 |
|
458 |
# If an item is damaged and we don't allow holds on damaged items, we can stop right here |
459 |
return 0 if ( $item->{damaged} && !C4::Context->preference('AllowHoldsOnDamagedItems') ); |
460 |
|
460 |
my $borrower = C4::Members::GetMember('borrowernumber'=>$borrowernumber); |
461 |
my $borrower = C4::Members::GetMember('borrowernumber'=>$borrowernumber); |
461 |
|
462 |
|
|
|
463 |
my $controlbranch = C4::Context->preference('ReservesControlBranch'); |
464 |
my $itype = C4::Context->preference('item-level_itypes') ? "itype" : "itemtype"; |
465 |
|
462 |
# we retrieve user rights on this itemtype and branchcode |
466 |
# we retrieve user rights on this itemtype and branchcode |
463 |
my $sth = $dbh->prepare("SELECT categorycode, itemtype, branchcode, reservesallowed |
467 |
my $sth = $dbh->prepare("SELECT categorycode, itemtype, branchcode, reservesallowed |
464 |
FROM issuingrules |
468 |
FROM issuingrules |
Lines 856-862
sub CheckReserves {
Link Here
|
856 |
items.biblioitemnumber, |
860 |
items.biblioitemnumber, |
857 |
itemtypes.notforloan, |
861 |
itemtypes.notforloan, |
858 |
items.notforloan AS itemnotforloan, |
862 |
items.notforloan AS itemnotforloan, |
859 |
items.itemnumber |
863 |
items.itemnumber, |
|
|
864 |
items.damaged |
860 |
FROM items |
865 |
FROM items |
861 |
LEFT JOIN biblioitems ON items.biblioitemnumber = biblioitems.biblioitemnumber |
866 |
LEFT JOIN biblioitems ON items.biblioitemnumber = biblioitems.biblioitemnumber |
862 |
LEFT JOIN itemtypes ON items.itype = itemtypes.itemtype |
867 |
LEFT JOIN itemtypes ON items.itype = itemtypes.itemtype |
Lines 868-874
sub CheckReserves {
Link Here
|
868 |
items.biblioitemnumber, |
873 |
items.biblioitemnumber, |
869 |
itemtypes.notforloan, |
874 |
itemtypes.notforloan, |
870 |
items.notforloan AS itemnotforloan, |
875 |
items.notforloan AS itemnotforloan, |
871 |
items.itemnumber |
876 |
items.itemnumber, |
|
|
877 |
items.damaged |
872 |
FROM items |
878 |
FROM items |
873 |
LEFT JOIN biblioitems ON items.biblioitemnumber = biblioitems.biblioitemnumber |
879 |
LEFT JOIN biblioitems ON items.biblioitemnumber = biblioitems.biblioitemnumber |
874 |
LEFT JOIN itemtypes ON biblioitems.itemtype = itemtypes.itemtype |
880 |
LEFT JOIN itemtypes ON biblioitems.itemtype = itemtypes.itemtype |
Lines 884-896
sub CheckReserves {
Link Here
|
884 |
$sth->execute($barcode); |
890 |
$sth->execute($barcode); |
885 |
} |
891 |
} |
886 |
# note: we get the itemnumber because we might have started w/ just the barcode. Now we know for sure we have it. |
892 |
# note: we get the itemnumber because we might have started w/ just the barcode. Now we know for sure we have it. |
887 |
my ( $biblio, $bibitem, $notforloan_per_itemtype, $notforloan_per_item, $itemnumber ) = $sth->fetchrow_array; |
893 |
my ( $biblio, $bibitem, $notforloan_per_itemtype, $notforloan_per_item, $itemnumber, $damaged ) = $sth->fetchrow_array; |
|
|
894 |
|
895 |
return if ( $damaged && !C4::Context->preference('AllowHoldsOnDamagedItems') ); |
888 |
|
896 |
|
889 |
return ( '' ) unless $itemnumber; # bail if we got nothing. |
897 |
return unless $itemnumber; # bail if we got nothing. |
890 |
|
898 |
|
891 |
# if item is not for loan it cannot be reserved either..... |
899 |
# if item is not for loan it cannot be reserved either..... |
892 |
# execpt where items.notforloan < 0 : This indicates the item is holdable. |
900 |
# execpt where items.notforloan < 0 : This indicates the item is holdable. |
893 |
return ( '' ) if ( $notforloan_per_item > 0 ) or $notforloan_per_itemtype; |
901 |
return if ( $notforloan_per_item > 0 ) or $notforloan_per_itemtype; |
894 |
|
902 |
|
895 |
# Find this item in the reserves |
903 |
# Find this item in the reserves |
896 |
my @reserves = _Findgroupreserve( $bibitem, $biblio, $itemnumber, $lookahead_days); |
904 |
my @reserves = _Findgroupreserve( $bibitem, $biblio, $itemnumber, $lookahead_days); |