From cbdd49ed7003f124d55f399e5d2709ef81fb7243 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Tue, 18 Aug 2015 16:37:27 -0300 Subject: [PATCH] Bug 14651: Koha::Item->effective_itemtype fallback to bib-level In some situations (bad migrations, old bugs that introduced bad data, people having bib-level itypes for ages and switching to item level...) the user ends with undex itype values for items. The current code, if the user has item_level-itype set, just returns undef. It should fallback to bib-level. In order to avoid hiding the problem a warning is raised. To test: - Run the regression tets: $ prove t/db_dependent/Items.t => FAIL: tests fail. - Apply the patch - Run the tests again => SUCCESS: The tests now pass. - Sign off :-D Signed-off-by: Chris Cormack Signed-off-by: Marcel de Rooy Signed-off-by: Tomas Cohen Arazi --- Koha/Schema/Result/Item.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Koha/Schema/Result/Item.pm b/Koha/Schema/Result/Item.pm index 0650c4f06b..c342f46adb 100644 --- a/Koha/Schema/Result/Item.pm +++ b/Koha/Schema/Result/Item.pm @@ -623,9 +623,11 @@ sub effective_itemtype { my ( $self ) = @_; my $pref = $self->result_source->schema->resultset('Systempreference')->find('item-level_itypes'); - if ( $pref->value() ) { + if ( $pref->value() && $self->itype() ) { return $self->itype(); } else { + warn "item-level_itypes set but no itemtype set for item ($self->itemnumber)" + if $pref->value(); return $self->biblioitemnumber()->itemtype(); } } -- 2.39.5