@@ -, +, @@ preference - noissuescharge = $5 - IssuingInProcess = Don't prevent --- C4/SIP/ILS.pm | 16 +++++++++------- C4/SIP/ILS/Patron.pm | 8 +++++--- C4/SIP/ILS/Transaction/Checkout.pm | 2 +- 3 files changed, 15 insertions(+), 11 deletions(-) --- a/C4/SIP/ILS.pm +++ a/C4/SIP/ILS.pm @@ -123,7 +123,7 @@ sub offline_ok { # sub checkout { my ( $self, $patron_id, $item_id, $sc_renew, $fee_ack, $account, $no_block_due_date ) = @_; - my ( $patron, $item, $circ ); + my ( $patron, $item, $circ, $message ); my @blocked_item_types; if (defined $account->{blocked_item_types}) { @blocked_item_types = split /\|/, $account->{blocked_item_types}; @@ -144,12 +144,14 @@ sub checkout { } elsif ($patron->expired) { $circ->screen_msg("Patron expired on " . output_pref({ dt => dt_from_string( $patron->dateexpiry_iso, 'iso' ), dateonly => 1 })); } elsif ($patron->fine_blocked) { - my $message = "Patron has fines"; - if ($account->{show_outstanding_amount}) { - my $patron_account = Koha::Account->new( { patron_id => $patron->{borrowernumber} }); - my $balance = $patron_account->balance; - if ($balance) { - $message .= (" - You owe " . Koha::Number::Price->new( $balance )->format({ with_symbol => 1}) . "."); + if ( !C4::Context->preference("IssuingInProcess") ) { + $message = "Patron has fines"; + if ($account->{show_outstanding_amount}) { + my $patron_account = Koha::Account->new( { patron_id => $patron->{borrowernumber} }); + my $balance = $patron_account->balance; + if ($balance) { + $message .= (" - You owe " . Koha::Number::Price->new( $balance )->format({ with_symbol => 1}) . "."); + } } } $circ->screen_msg($message); --- a/C4/SIP/ILS/Patron.pm +++ a/C4/SIP/ILS/Patron.pm @@ -87,8 +87,10 @@ sub new { my $fine_blocked = 0; my $noissueschargeguarantees = C4::Context->preference('NoIssuesChargeGuarantees'); if( $fines_amount > $fee_limit ){ - $fine_blocked = 1; - $fines_msg .= " -- " . "Patron blocked by fines" if $fine_blocked; + if ( !C4::Context->preference("IssuingInProcess") ) { + $fine_blocked = 1; + $fines_msg .= " -- " . "Patron blocked by fines" if $fine_blocked; + } } elsif ( $noissueschargeguarantorswithguarantees ) { $fines_amount += $patron->relationships_debt({ include_guarantors => 1, only_this_guarantor => 0, include_this_patron => 0 }); $fine_blocked ||= $fines_amount > $noissueschargeguarantorswithguarantees; @@ -158,7 +160,7 @@ sub new { if ($_ ne 'NOTES' and $flags->{$_}->{message}) { $ilspatron{screen_msg} .= " -- " . $flags->{$_}->{message}; # show all but internal NOTES } - if ($flags->{$_}->{noissues}) { + if ($flags->{$_}->{noissues} && !C4::Context->preference("IssuingInProcess")) { foreach my $toggle (qw(charge_ok renew_ok recall_ok hold_ok inet)) { $ilspatron{$toggle} = 0; # if we get noissues, disable everything } --- a/C4/SIP/ILS/Transaction/Checkout.pm +++ a/C4/SIP/ILS/Transaction/Checkout.pm @@ -141,7 +141,7 @@ sub do_checkout { } } - if ( $noerror == 0 && !$no_block_due_date ) { + if ( $noerror == 0 && !$no_block_due_date && !C4::Context->preference('IssuingInProcess') ) { $self->ok(0); return $self; } --