while ( my $rule = $self->next ){
$rule->delete;
}
+}
+
+=head3 get_onshelfholds_policy
+
+ my $on_shelf_holds = Koha::CirculationRules->get_onshelfholds_policy({ item => $item, patron => $patron });
+
+=cut
+sub get_onshelfholds_policy {
+ my ( $class, $params ) = @_;
+ my $item = $params->{item};
+ my $itemtype = $item->effective_itemtype;
+ my $patron = $params->{patron};
+ my $rule = Koha::CirculationRules->get_effective_rule(
+ {
+ categorycode => ( $patron ? $patron->categorycode : undef ),
+ itemtype => $itemtype,
+ branchcode => $item->holdingbranch,
+ rule_name => 'onshelfholds',
+ }
+ );
+ return $rule ? $rule->rule_value : undef;
}
=head3 type
use Koha::Patrons;
use Koha::Patron::Categories;
use Koha::ItemTypes;
-use Koha::IssuingRules;
#Setting variables
my $input = new CGI;
branchcode => $branchcode,
categorycode => $categorycode,
itemtype => $itemtype,
- renewalsallowed => $renewalsallowed,
- renewalperiod => $renewalperiod,
- issuelength => $issuelength,
- lengthunit => $lengthunit,
- onshelfholds => $onshelfholds,
+ rules => {
+ renewalsallowed => $renewalsallowed,
+ renewalperiod => $renewalperiod,
+ issuelength => $issuelength,
+ lengthunit => $lengthunit,
+ onshelfholds => $onshelfholds,
+ }
};
- my $issuingrule = Koha::IssuingRule->new($params);
- eval { $issuingrule->store; };
+ eval { Koha::CirculationRules->set_rules( $params ) };
if ($@) {
push @messages, { code => 'error_on_insert_circ_rule' };
}
}
- $step++ if Koha::IssuingRules->count;
+ $step++ if Koha::CirculationRules->count;
}
my $libraries = Koha::Libraries->search( {}, { order_by => ['branchcode'] }, );
use C4::Acquisition;
use C4::Serials; # uses getsubscriptionfrom biblionumber
use C4::Koha;
-use Koha::IssuingRules;
+use Koha::CirculationRules;
use Koha::ItemTypes;
use Koha::Patrons;
use Koha::RecordProcessor;
&& !Koha::ItemTypes->find($item->effective_itemtype)->notforloan
&& $item->itemnumber;
- $allow_onshelf_holds = Koha::IssuingRules->get_onshelfholds_policy( { item => $item, patron => $patron } )
+ $allow_onshelf_holds = Koha::CirculationRules->get_onshelfholds_policy( { item => $item, patron => $patron } )
unless $allow_onshelf_holds;
}
use C4::Koha;
use List::MoreUtils qw( any uniq );
use Koha::Biblios;
-use Koha::IssuingRules;
+use Koha::CirculationRules;
use Koha::Items;
use Koha::ItemTypes;
use Koha::Patrons;
my $allow_onshelf_holds;
for my $itm (@all_items) {
my $item = Koha::Items->find( $itm->{itemnumber} );
- $allow_onshelf_holds = Koha::IssuingRules->get_onshelfholds_policy( { item => $item, patron => $patron } );
+ $allow_onshelf_holds = Koha::CirculationRules->get_onshelfholds_policy( { item => $item, patron => $patron } );
last if $allow_onshelf_holds;
}
use Koha::Biblios;
use Koha::RecordProcessor;
use Koha::AuthorisedValues;
-use Koha::IssuingRules;
+use Koha::CirculationRules;
use Koha::Items;
use Koha::ItemTypes;
use Koha::Acquisition::Orders;
&& !$itemtypes->{$itm->{'itype'}}->{notforloan}
&& $itm->{'itemnumber'};
- $allow_onshelf_holds = Koha::IssuingRules->get_onshelfholds_policy( { item => $item, patron => $patron } )
+ $allow_onshelf_holds = Koha::CirculationRules->get_onshelfholds_policy( { item => $item, patron => $patron } )
unless $allow_onshelf_holds;
# get collection code description, too
use Koha::AuthorisedValues;
use Koha::Biblios;
use Koha::DateUtils;
-use Koha::IssuingRules;
+use Koha::CirculationRules;
use Koha::Items;
use Koha::ItemTypes;
use Koha::Checkouts;
CanItemBeReserved( $borrowernumber, $itemNum )->{status} eq 'OK';
if ($policy_holdallowed) {
- my $opac_hold_policy = Koha::IssuingRules->get_opacitemholds_policy( { item => $item, patron => $patron } );
+ my $opac_hold_policy = Koha::CirculationRules->get_opacitemholds_policy( { item => $item, patron => $patron } );
if ( $opac_hold_policy ne 'N' ) { # If Y or F
$itemLoopIter->{available} = 1;
$numCopiesOPACAvailable++;
use Koha::Biblios;
use Koha::Biblioitems;
-use Koha::IssuingRules;
+use Koha::CirculationRules;
use Koha::Items;
use Koha::ItemTypes;
use Koha::Patrons;
my $items = $biblio->items;
while ( my $item = $items->next ) {
- $this_item->{allow_onshelf_holds} = Koha::IssuingRules->get_onshelfholds_policy( { item => $item, patron => $patron } );
+ $this_item->{allow_onshelf_holds} = Koha::CirculationRules->get_onshelfholds_policy( { item => $item, patron => $patron } );
last if $this_item->{allow_onshelf_holds};
}
use Koha::DateUtils;
use Koha::Checkouts;
use Koha::Holds;
-use Koha::IssuingRules;
+use Koha::CirculationRules;
use Koha::Items;
use Koha::ItemTypes;
use Koha::Libraries;
my $can_item_be_reserved = CanItemBeReserved( $patron->borrowernumber, $itemnumber )->{status};
$item->{not_holdable} = $can_item_be_reserved unless ( $can_item_be_reserved eq 'OK' );
- $item->{item_level_holds} = Koha::IssuingRules->get_opacitemholds_policy( { item => $item_object, patron => $patron } );
+ $item->{item_level_holds} = Koha::CirculationRules->get_opacitemholds_policy( { item => $item_object, patron => $patron } );
if (
!$item->{cantreserve}
}
});
-Koha::IssuingRule->new(
+Koha::CirculationRules->set_rules(
{
- categorycode => '*',
+ categorycode => undef,
itemtype => $itemtype2,
- branchcode => '*',
- issuelength => 7,
- lengthunit => 8,
- reservesallowed => 99,
- onshelfholds => 0,
+ branchcode => undef,
+ rules => {
+ maxissueqty => 99,
+ onshelfholds => 2,
+ }
}
-)->store();
+);
$is = IsAvailableForItemLevelRequest( $item3, $patron1);
is( $is, 1, "Item can be held, items in transit are not available" );
}
);
-ok( C4::Reserves::OnShelfHoldsAllowed($item, $borrower), "OnShelfHoldsAllowed() allowed" );
-Koha::CirculationRules->set_rules(
- {
- categorycode => $categorycode,
- itemtype => $itype,
- branchcode => $holdingbranch,
- rules => {
- onshelfholds => 0,
- }
- }
-);
-ok( !C4::Reserves::OnShelfHoldsAllowed($item, $borrower), "OnShelfHoldsAllowed() disallowed" );
-
# tests for MoveReserve in relation to ConfirmFutureHolds (BZ 14526)
# hold from A pos 1, today, no fut holds: MoveReserve should fill it
$dbh->do('DELETE FROM reserves', undef, ($bibnum));