@@ -, +, @@ --- C4/SIP/ILS/Patron.pm | 13 ++++++++++++- C4/SIP/Sip/MsgType.pm | 9 +-------- 2 files changed, 13 insertions(+), 9 deletions(-) --- a/C4/SIP/ILS/Patron.pm +++ a/C4/SIP/ILS/Patron.pm @@ -209,7 +209,6 @@ my %fields = ( too_many_overdue => 0, # for patron_status[6] too_many_renewal => 0, # for patron_status[7] too_many_claim_return => 0, # for patron_status[8] - too_many_lost => 0, # for patron_status[9] # excessive_fines => 0, # for patron_status[10] # excessive_fees => 0, # for patron_status[11] recall_overdue => 0, # for patron_status[12] @@ -287,6 +286,18 @@ sub check_password { } # A few special cases, not in AUTOLOADed %fields + +sub too_many_lost { + my ( $self, $server ) = @_; + my $too_many_lost = 0; + if( $server && $server->{account} && ( my $lost_block_checkout = $server->{account}->{lost_block_checkout} )) { + my $lost_block_checkout_value = $server->{account}->{lost_block_checkout_value} // 1; + my $lost_checkouts = Koha::Checkouts->search({ borrowernumber => $self->borrowernumber, 'itemlost' => { '>=', $lost_block_checkout_value } }, { join => 'item'} )->count; + $too_many_lost = $lost_checkouts >= $lost_block_checkout; + } + return $too_many_lost; +} + sub fee_amount { my $self = shift; if ( $self->{fines} ) { --- a/C4/SIP/Sip/MsgType.pm +++ a/C4/SIP/Sip/MsgType.pm @@ -1717,13 +1717,6 @@ sub patron_status_string { my $patron_status; - my $too_many_lost = 0; - if ( my $lost_block_checkout = $server->{account}->{lost_block_checkout} ) { - my $lost_block_checkout_value = $server->{account}->{lost_block_checkout_value} // 1; - my $lost_checkouts = Koha::Checkouts->search({ borrowernumber => $patron->borrowernumber, 'itemlost' => { '>=', $lost_block_checkout_value } }, { join => 'item'} )->count; - $too_many_lost = $lost_checkouts >= $lost_block_checkout; - } - siplog( "LOG_DEBUG", "patron_status_string: %s charge_ok: %s", $patron->id, $patron->charge_ok ); $patron_status = sprintf( '%s%s%s%s%s%s%s%s%s%s%s%s%s%s', @@ -1736,7 +1729,7 @@ sub patron_status_string { $server->{account}->{overdues_block_checkout} ? boolspace( $patron->too_many_overdue ) : q{ }, boolspace( $patron->too_many_renewal ), boolspace( $patron->too_many_claim_return ), - boolspace( $too_many_lost ), + boolspace( $patron->too_many_lost( $server ) ), boolspace( $patron->excessive_fines ), boolspace( $patron->excessive_fees ), boolspace( $patron->recall_overdue ), --