@@ -, +, @@ method --- C4/Reserves.pm | 6 ++++-- Koha/Hold.pm | 21 +++++++++++++++------ t/db_dependent/Hold.t | 2 +- 3 files changed, 20 insertions(+), 9 deletions(-) --- a/C4/Reserves.pm +++ a/C4/Reserves.pm @@ -1153,9 +1153,9 @@ sub ModReserveAffect { my $already_on_shelf = $hold->found && $hold->found eq 'W'; $hold->itemnumber($itemnumber); - $hold->set_waiting($transferToDo); if( !$transferToDo ){ + $hold->set_waiting(); _koha_notify_reserve( $hold->reserve_id ) unless $already_on_shelf; my $transfers = Koha::Item::Transfers->search({ itemnumber => $itemnumber, @@ -1164,7 +1164,9 @@ sub ModReserveAffect { while( my $transfer = $transfers->next ){ $transfer->datearrived( dt_from_string() )->store; }; - } + } else { + $hold->set_transfer(); + } _FixPriority( { biblionumber => $biblionumber } ); --- a/Koha/Hold.pm +++ a/Koha/Hold.pm @@ -151,20 +151,29 @@ sub delete { return $deleted; } +=head3 set_transfer + +=cut + +sub set_transfer { + my ( $self ) = @_; + + $self->priority(0); + $self->found('T'); + $self->store(); + + return $self; +} + =head3 set_waiting =cut sub set_waiting { - my ( $self, $transferToDo ) = @_; + my ( $self ) = @_; $self->priority(0); - if ($transferToDo) { - $self->found('T')->store(); - return $self; - } - my $today = dt_from_string(); my $values = { found => 'W', --- a/t/db_dependent/Hold.t +++ a/t/db_dependent/Hold.t @@ -224,7 +224,7 @@ subtest 'suspend() tests' => sub { is( $@->status, 'W', 'Exception gets the \'status\' parameter set correctly' ); # set hold found=T - $hold->set_waiting(1); + $hold->set_transfer; throws_ok { $hold->suspend_hold; } 'Koha::Exceptions::Hold::CannotSuspendFound', --