diff --git a/C4/SIP/ILS.pm b/C4/SIP/ILS.pm index 5d5985092a..703bb96b4d 100644 --- a/C4/SIP/ILS.pm +++ b/C4/SIP/ILS.pm @@ -254,6 +254,10 @@ sub add_hold { return $trans; } + if ( $patron->holds_blocked_by_excessive_fees() ) { + $trans->screen_msg("Excessive fees blocking placement of hold."); + } + if ($item->fee and $fee_ack ne 'Y') { $trans->screen_msg = "Fee required to place hold."; return $trans; diff --git a/C4/SIP/ILS/Patron.pm b/C4/SIP/ILS/Patron.pm index 1155d51956..52832a5288 100644 --- a/C4/SIP/ILS/Patron.pm +++ b/C4/SIP/ILS/Patron.pm @@ -340,10 +340,16 @@ sub excessive_fees { my $self = shift; return ($self->fee_amount and $self->fee_amount > $self->fee_limit); } + sub excessive_fines { my $self = shift; return $self->excessive_fees; # excessive_fines is the same thing as excessive_fees for Koha } + +sub holds_blocked_by_excessive_fees { + return ( $self->fee_amount + && $self->fee_amount > C4::Context->preference("maxoutstanding") ); +} sub library_name { my $self = shift;