From 5c706ff88371eb32faf910bebda0d67ddb37f47f Mon Sep 17 00:00:00 2001
From: Lari Taskula <lari.taskula@hypernova.fi>
Date: Thu, 3 Nov 2022 20:50:33 +0000
Subject: [PATCH] Bug 31692: (follow-up) Adjust reserves.item_level_hold
Original patch missed handling reserves.item_level_hold column.
To test:
1. prove t/db_dependent/Koha/Hold.t
---
Koha/Hold.pm | 5 ++++-
t/db_dependent/Koha/Hold.t | 11 ++++++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/Koha/Hold.pm b/Koha/Hold.pm
index 1d386bdeb6..e34fe1881f 100644
--- a/Koha/Hold.pm
+++ b/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();
}
diff --git a/t/db_dependent/Koha/Hold.t b/t/db_dependent/Koha/Hold.t
index 1470d32293..1f92d74e6d 100755
--- a/t/db_dependent/Koha/Hold.t
+++ b/t/db_dependent/Koha/Hold.t
@@ -957,7 +957,7 @@ subtest 'Koha::Hold::item_group tests' => sub {
subtest 'change_type tests' => sub {
- plan tests => 9;
+ plan tests => 13;
$schema->storage->txn_begin;
@@ -966,6 +966,7 @@ subtest 'change_type tests' => sub {
class => 'Koha::Holds',
value => {
itemnumber => undef,
+ item_level_hold => 0,
}
} );
@@ -982,24 +983,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 => {
--
2.25.1