@@ -, +, @@ --- Koha/Hold.pm | 5 ++++- t/db_dependent/Koha/Hold.t | 11 ++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) --- a/Koha/Hold.pm +++ a/Koha/Hold.pm @@ -869,7 +869,10 @@ sub change_type { } if ( $record_holds_per_patron->count == 1 ) { - $self->set({ itemnumber => $itemnumber ? $itemnumber : undef })->store; + $self->set({ + itemnumber => $itemnumber ? $itemnumber : undef, + item_level_hold => $itemnumber ? 1 : 0, + })->store; } else { Koha::Exceptions::Hold::CannotChangeHoldType->throw(); } --- a/t/db_dependent/Koha/Hold.t +++ a/t/db_dependent/Koha/Hold.t @@ -958,7 +958,7 @@ subtest 'Koha::Hold::item_group tests' => sub { subtest 'change_type tests' => sub { - plan tests => 9; + plan tests => 13; $schema->storage->txn_begin; @@ -967,6 +967,7 @@ subtest 'change_type tests' => sub { class => 'Koha::Holds', value => { itemnumber => undef, + item_level_hold => 0, } } ); @@ -983,24 +984,32 @@ subtest 'change_type tests' => sub { is( $hold->itemnumber, undef, 'record hold to record hold, no changes'); + is( $hold->item_level_hold, 0, 'item_level_hold=0' ); + ok( $hold->change_type( $item->itemnumber ) ); $hold->discard_changes; is( $hold->itemnumber, $item->itemnumber, 'record hold to item hold'); + is( $hold->item_level_hold, 1, 'item_level_hold=1' ); + ok( $hold->change_type( $item->itemnumber ) ); $hold->discard_changes; is( $hold->itemnumber, $item->itemnumber, 'item hold to item hold, no changes'); + is( $hold->item_level_hold, 1, 'item_level_hold=1' ); + ok( $hold->change_type ); $hold->discard_changes; is( $hold->itemnumber, undef, 'item hold to record hold'); + is( $hold->item_level_hold, 0, 'item_level_hold=0' ); + my $hold3 = $builder->build_object( { class => 'Koha::Holds', value => { --