use Koha::CirculationRules;
use Koha::Item::Transfer::Limits;
use Koha::Item::Transfers;
+use Koha::ItemTypes;
use Koha::Patrons;
use Koha::Plugins;
use Koha::Libraries;
};
}
+=head3 itemtype
+
+ my $itemtype = $item->itemtype({ effective => 1 });
+
+ Returns Koha object for (effective) itemtype
+
+=cut
+
+sub itemtype {
+ my ( $self, $params ) = @_;
+ return Koha::ItemTypes->find( $params->{effective} ? $self->effective_itemtype : $self->itype ); # no FK
+}
+
=head2 Internal methods
=head3 _after_item_action_hooks
use Modern::Perl;
-use Test::More tests => 6;
+use Test::More tests => 7;
use C4::Biblio;
use C4::Circulation;
is( $item->renewal_branchcode, $item->homebranch, "If interface opac and OpacRenewalBranch set to itemhomebranch, we get homebranch of item");
is( $item->renewal_branchcode({branch=>'MANATEE'}), $item->homebranch, "If interface opac and OpacRenewalBranch set to itemhomebranch, we get homebranch of item even if branch passed");
+ $schema->storage->txn_rollback;
+};
+
+subtest 'Tests for itemtype' => sub {
+ plan tests => 4;
+ $schema->storage->txn_begin;
+
+ my $biblio = $builder->build_sample_biblio;
+ my $itemtype = $builder->build_object({ class => 'Koha::ItemTypes' });
+ my $item = $builder->build_sample_item({ biblionumber => $biblio->biblionumber, itype => $itemtype->itemtype });
+
+ t::lib::Mocks::mock_preference('item-level_itypes', 1);
+ is( $item->itemtype({ effective => 1 })->itemtype, $item->itype, 'Pref enabled, effective parameter' );
+ is( $item->itemtype->itemtype, $item->itype, 'Pref enabled, no parameter' );
+ t::lib::Mocks::mock_preference('item-level_itypes', 0);
+ is( $item->itemtype({ effective => 1 })->itemtype, $biblio->biblioitem->itemtype, 'Pref disabled, effective parameter' );
+ is( $item->itemtype->itemtype, $item->itype, 'Pref disabled, no parameter' );
+
+ $schema->storage->txn_rollback;
};