From a7906cd14f6284c17440a4c816189a2d19e7fdcf Mon Sep 17 00:00:00 2001 From: Jan Kissig Date: Tue, 2 Dec 2025 12:30:13 +0000 Subject: [PATCH] Bug 40455: SIP2 patron information fails when no currency is set Content-Type: text/plain; charset=utf-8 This fixes an error in SIP2 patron information response (64) when no currency is set, which can be the case on newly created instances. Test plan for KTD: a) Delete currency and related tables - run 'koha-mysql kohadev' to start SQL client. Then run the following queries: - delete from aqbasket; delete from aqbooksellers; delete from currency; b) exit c) run 'perl misc/sip_cli_emulator.pl -a 127.0.0.1 -p 6001 -su term1 -sp term1 -l CPL -m patron_information --patron 42' Attempting socket connection to 127.0.0.1:6001...connected! SEND: 9300CNterm1|COterm1|CPCPL| READ: 941 Trying 'patron_information' SEND: 6300120251202 115652 AOCPL|AA42|ACterm1| READ: undef d) recognize the last response: READ: undef e) apply patch and restart sip2 server via 'sudo koha-sip --restart kohadev' e) rerun 'perl misc/sip_cli_emulator.pl -a 127.0.0.1 -p 6001 -su term1 -sp term1 -l CPL -m patron_information --patron 42' Attempting socket connection to 127.0.0.1:6001...connected! SEND: 9300CNterm1|COterm1|CPCPL| READ: 941 Trying 'patron_information' SEND: 6300120251202 122545 AOCPL|AA42|ACterm1| READ: 64 00120251202 122546000000000000000000000000AOCPL|AA42|AE koha|BLY|BV0|CC5|PCS|PIY|AFGreetings from Koha. | f) check the last response is now a patron information response (64) Signed-off-by: David Nind Signed-off-by: Marcel de Rooy --- C4/SIP/ILS/Patron.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/C4/SIP/ILS/Patron.pm b/C4/SIP/ILS/Patron.pm index 1caf2888fe..5a387c1451 100644 --- a/C4/SIP/ILS/Patron.pm +++ b/C4/SIP/ILS/Patron.pm @@ -131,7 +131,10 @@ sub new { } # Get currency 3 chars max - my $currency = substr Koha::Acquisition::Currencies->get_active->currency, 0, 3; + my $currency = Koha::Acquisition::Currencies->get_active; + if ($currency) { + $currency = substr $currency->currency, 0, 3; + } my $circ_blocked = ( C4::Context->preference('OverduesBlockCirc') ne "noblock" && defined $flags->{ODUES}->{itemlist} ) ? 1 : 0; -- 2.39.5