});
my $patron_object = Koha::Patrons->find( $patron->{borrowernumber} );
+my $item_object = Koha::Items->find( $item->{itemnumber} );
t::lib::Mocks::mock_userenv( { patron => $patron_object });
# TooMany return ($current_loan_count, $max_loans_allowed) or undef
subtest 'no rules exist' => sub {
plan tests => 2;
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
{ reason => 'NO_RULE_DEFINED', max_allowed => 0 },
'CO should not be allowed, in any cases'
);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
{ reason => 'NO_RULE_DEFINED', max_allowed => 0 },
'OSCO should not be allowed, in any cases'
);
);
t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 0);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 0,
'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0'
);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
{
reason => 'TOO_MANY_ONSITE_CHECKOUTS',
count => 0,
t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 1);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 0,
'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1'
);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
{
reason => 'TOO_MANY_ONSITE_CHECKOUTS',
count => 0,
my $issue = C4::Circulation::AddIssue( $patron, $item->{barcode}, dt_from_string() );
t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 0);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0'
);
is(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
undef,
'OSCO should be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0'
);
t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 1);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1'
);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
);
t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 0);
is(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
undef,
'CO should be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0'
);
is(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
undef,
'OSCO should be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0'
);
t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 1);
is(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
undef,
'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1'
);
is(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
undef,
'OSCO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1'
);
t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 0);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0'
);
is(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
undef,
'OSCO should be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0'
);
t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 1);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1'
);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 0);
is(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
undef,
'CO should be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0'
);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
{
reason => 'TOO_MANY_ONSITE_CHECKOUTS',
count => 1,
t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 1);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1'
);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
{
reason => 'TOO_MANY_ONSITE_CHECKOUTS',
count => 1,
t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 0);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
'CO should be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0'
);
is(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
undef,
'OSCO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0'
);
t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 1);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1'
);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 0);
is(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
undef,
'CO should be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0'
);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
{
reason => 'TOO_MANY_ONSITE_CHECKOUTS',
count => 1,
t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 1);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1'
);
is_deeply(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
{
reason => 'TOO_MANY_ONSITE_CHECKOUTS',
count => 1,
my $issue = C4::Circulation::AddIssue( $patron, $issue_item->barcode, dt_from_string() );
# We checkout one item
is_deeply(
- C4::Circulation::TooMany( $patron, $branch_item->biblionumber, $branch_item->unblessed ),
+ C4::Circulation::TooMany( $patron, $branch_item ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
$branch_item->biblio->biblioitem->itemtype($itemtype->{itemtype})->store;
# We checkout one item
is_deeply(
- C4::Circulation::TooMany( $patron, $branch_item->biblionumber, $branch_item->unblessed ),
+ C4::Circulation::TooMany( $patron, $branch_item ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
);
is(
- C4::Circulation::TooMany( $patron, $branch_item->biblionumber, $branch_item->unblessed ),
+ C4::Circulation::TooMany( $patron, $branch_item ),
undef,
'We are allowed one from the branch specifically now'
);
# If circcontrol is PatronLibrary we count all the patron's loan, regardless of branch
t::lib::Mocks::mock_preference('CircControl', 'PatronLibrary');
is_deeply(
- C4::Circulation::TooMany( $patron, $branch_item->biblionumber, $branch_item->unblessed ),
+ C4::Circulation::TooMany( $patron, $branch_item ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
holdingbranch => $branch->{branchcode}
});
is_deeply(
- C4::Circulation::TooMany( $patron, $branch_item_2->biblionumber, $branch_item_2->unblessed ),
+ C4::Circulation::TooMany( $patron, $branch_item_2 ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 1,
itype => $itemtype->{itemtype},
});
is_deeply(
- C4::Circulation::TooMany( $patron, $item_2->biblionumber, $item_2->unblessed ),
+ C4::Circulation::TooMany( $patron, $item_2 ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 2,
);
t::lib::Mocks::mock_preference('CircControl', 'PatronLibrary');
is_deeply(
- C4::Circulation::TooMany( $patron, $item_2->biblionumber, $item_2->unblessed ),
+ C4::Circulation::TooMany( $patron, $item_2 ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 2,
t::lib::Mocks::mock_preference('CircControl', 'PickupLibrary');
is_deeply(
- C4::Circulation::TooMany( $patron, $item_2->biblionumber, $item_2->unblessed ),
+ C4::Circulation::TooMany( $patron, $item_2 ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 2,
my $branch2 = $builder->build({source => 'Branch',});
t::lib::Mocks::mock_userenv({ branchcode => $branch2->{branchcode} });
is_deeply(
- C4::Circulation::TooMany( $patron, $item_2->biblionumber, $item_2->unblessed ),
+ C4::Circulation::TooMany( $patron, $item_2 ),
{
reason => 'TOO_MANY_CHECKOUTS',
count => 2,
);
is(
- C4::Circulation::TooMany( $patron, $branch_item->biblionumber, $branch_item->unblessed ),
+ C4::Circulation::TooMany( $patron, $branch_item ),
undef,
'We are allowed one from the branch specifically now'
);
},
);
is(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ),
+ C4::Circulation::TooMany( $patron, $item_object ),
undef,
'maxissueqty="" should mean unlimited'
);
is(
- C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ),
+ C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ),
undef,
'maxonsiteissueqty="" should mean unlimited'
);