@@ -, +, @@ UpdateNotForLoanStatusOnCheckin -1: 0 -1: 0 -1: 0 -1: 2 2: 0 --- C4/Circulation.pm | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -2153,11 +2153,21 @@ sub AddReturn { warn "Unable to parse UpdateNotForLoanStatusOnCheckin syspref : $@"; } else { - foreach my $key ( keys %$rules ) { - if ( $item->notforloan eq $key ) { - $messages->{'NotForLoanStatusUpdated'} = { from => $item->notforloan, to => $rules->{$key} }; - $item->notforloan($rules->{$key})->store({ log_action => 0, skip_record_index => 1, skip_holds_queue => 1 }) unless $rules->{$key} eq 'ONLYMESSAGE'; - last; + if ( defined $rules->{$item->itype} ) { + foreach my $notloan_rule_key (keys %{ $rules->{$item->itype}} ) { + if ( $item->notforloan eq $notloan_rule_key ) { + $messages->{'NotForLoanStatusUpdated'} = { from => $item->notforloan, to => $rules->{$item->itype}->{$notloan_rule_key} }; + $item->notforloan($rules->{$item->itype}->{$notloan_rule_key})->store({ log_action => 0, skip_record_index => 1, skip_holds_queue => 1 }); + last; + } + } + } elsif ( defined $rules->{'_ALL_'} ) { + foreach my $notloan_rule_key (keys %{ $rules->{'_ALL_'}} ) { + if ( $item->notforloan eq $notloan_rule_key ) { + $messages->{'NotForLoanStatusUpdated'} = { from => $item->notforloan, to => $rules->{'_ALL_'}->{$notloan_rule_key} }; + $item->notforloan($rules->{'_ALL_'}->{$notloan_rule_key})->store({ log_action => 0, skip_record_index => 1, skip_holds_queue => 1 }); + last; + } } } } --