From 070e52f401155e00f075bc45287c98ba94f4cf79 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Tue, 11 Jun 2013 10:00:58 -0400 Subject: [PATCH] Bug 10445: make SIP Server respect maxoutstanding system preference The system preference 'maxoutstanding' is defined as the maximum amount of fees owed by the patron before Koha should block placing holds ( terrible naming on this one ). However, although the Koha OPAC respects this preference, placing holds via a SIP2 device will not. Test Plan: 1) Set maxoutstanding to $10 2) Pick a patron owning more than $10 in fees 3) Attempt to place a hold for this patron from a SIP2 device This attempt should succeed 4) Apply this patch 5) Restart your SIP2 server 6) Attempt to place a hold for this patron from a SIP2 device again This attempt should now fail Signed-off-by: Chris Cormack Signed-off-by: Brendan Gallagher Signed-off-by: Galen Charlton --- C4/SIP/ILS.pm | 4 ++++ C4/SIP/ILS/Patron.pm | 6 ++++++ 2 files changed, 10 insertions(+) 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; -- 2.39.5