From 84064ae4e4b07d1fa07e9be01546e104e4e70a01 Mon Sep 17 00:00:00 2001 From: Olli-Antti Kivilahti Date: Thu, 8 Jan 2015 14:50:52 +0200 Subject: [PATCH] Bug 13025 - Software error: Undefined subroutine &C4::Circulation::HasOverdues called at /home/koha/kohaclone/C4/Circulation.pm line 1925 This error only appears when using the SIPServer, it doesn't manifest when using the SIP unit tests or when using the staff client. -------------------- ------------------ PREPARE THE TEST ------------------ -------------------- 0a. Find a borrower. 0b. Find an Item (cardnumber 'debar123') and check-out to the borrower 0c. Find a borrower and add a manual debarrment to it, indefinetely in effect. This is the default behaviour. 0d. Configure and start a SIP-server which you can access with telnet. See http://wiki.koha-community.org/wiki/Koha_SIP2_server_setup In this example, the Borrower defined as the Check-out/in machine has the following credentials: username: herkules password: palautathan branchcode: JOE_JOE but you are free to use your own, it doesn't affect this test plan. 0e. access your server with telnet ----------------------- --------------------- REPLICATE THE ISSUE --------------------- ----------------------- 1. Paste the following SIP-command to login: 9300CNherkules|COpalautathan|CPJOE_JOE| 2. Paste the following SIP-command to check-in the Item of the debarred Borrower: 09N20140721 07501620140721 075016AP|AO|ABdebar123|AC|BIN| 3. The connection should die and in the SIP Server's error log you can find the following error: Software error: Undefined subroutine &C4::Circulation::HasOverdues called at /home/koha/kohaclone/C4/Circulation.pm line 1925 -------------------- ------------------ AFTER THIS PATCH ------------------ -------------------- Redo steps 1-2. 3. No error is given and the connection doesn't die. No unit tests included and never will, because setting up the test environment would be very tedious. It is entirely possible but the scaffolding required is beyond the scope of this patch. Signed-off-by: Kyle M Hall Signed-off-by: Jonathan Druart Note: I did not test this patch with SIP, but I did not find any regression on checking or renewing an item. Signed-off-by: Tomas Cohen Arazi --- C4/Circulation.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 5cd8ba3129..dd081afb15 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -2017,7 +2017,7 @@ sub AddReturn { if ( $borrowernumber && $borrower->{'debarred'} && C4::Context->preference('AutoRemoveOverduesRestrictions') - && !HasOverdues( $borrowernumber ) + && !C4::Members::HasOverdues( $borrowernumber ) && @{ GetDebarments({ borrowernumber => $borrowernumber, type => 'OVERDUES' }) } ) { DelUniqueDebarment({ borrowernumber => $borrowernumber, type => 'OVERDUES' }); @@ -2866,7 +2866,7 @@ sub AddRenewal { my $borrower = C4::Members::GetMember( borrowernumber => $borrowernumber ); if ( $borrowernumber && $borrower->{'debarred'} - && !HasOverdues( $borrowernumber ) + && !C4::Members::HasOverdues( $borrowernumber ) && @{ GetDebarments({ borrowernumber => $borrowernumber, type => 'OVERDUES' }) } ) { DelUniqueDebarment({ borrowernumber => $borrowernumber, type => 'OVERDUES' }); -- 2.39.5