View | Details | Raw Unified | Return to bug 11998
Collapse All | Expand All

(-)a/Koha/Schema/Result/Item.pm (-3 / +4 lines)
Lines 652-666 __PACKAGE__->belongs_to( Link Here
652
  { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" },
652
  { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" },
653
);
653
);
654
654
655
use C4::Context;
655
sub effective_itemtype {
656
sub effective_itemtype {
656
    my ( $self ) = @_;
657
    my ( $self ) = @_;
657
658
658
    my $pref = $self->result_source->schema->resultset('Systempreference')->find('item-level_itypes');
659
    my $pref = C4::Context->preference('item-level_itypes');
659
    if ( $pref->value() && $self->itype() ) {
660
    if ( $pref && $self->itype() ) {
660
        return $self->itype();
661
        return $self->itype();
661
    } else {
662
    } else {
662
        warn "item-level_itypes set but no itemtype set for item ($self->itemnumber)"
663
        warn "item-level_itypes set but no itemtype set for item ($self->itemnumber)"
663
          if $pref->value();
664
          if $pref;
664
        return $self->biblioitemnumber()->itemtype();
665
        return $self->biblioitemnumber()->itemtype();
665
    }
666
    }
666
}
667
}
(-)a/t/db_dependent/Items.t (-3 / +2 lines)
Lines 245-254 subtest q{Test Koha::Database->schema()->resultset('Item')->itemtype()} => sub { Link Here
245
    my ( $item ) = $bi[0]->items();
245
    my ( $item ) = $bi[0]->items();
246
246
247
    t::lib::Mocks::mock_preference( 'item-level_itypes', 0 );
247
    t::lib::Mocks::mock_preference( 'item-level_itypes', 0 );
248
    ok( $item->effective_itemtype() eq 'BIB_LEVEL', '$item->itemtype() returns biblioitem.itemtype when item-level_itypes is disabled' );
248
    is( $item->effective_itemtype(), 'BIB_LEVEL', '$item->itemtype() returns biblioitem.itemtype when item-level_itypes is disabled' );
249
249
250
    t::lib::Mocks::mock_preference( 'item-level_itypes', 1 );
250
    t::lib::Mocks::mock_preference( 'item-level_itypes', 1 );
251
    ok( $item->effective_itemtype() eq 'ITEM_LEVEL', '$item->itemtype() returns items.itype when item-level_itypes is enabled' );
251
    is( $item->effective_itemtype(), 'ITEM_LEVEL', '$item->itemtype() returns items.itype when item-level_itypes is enabled' );
252
252
253
    # If itemtype is not defined and item-level_level item types are set
253
    # If itemtype is not defined and item-level_level item types are set
254
    # fallback to biblio-level itemtype (Bug 14651) and warn
254
    # fallback to biblio-level itemtype (Bug 14651) and warn
255
- 

Return to bug 11998