Bug 40455: SIP2 patron information fails when no currency is set

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 <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit e1f1c39e83)
Signed-off-by: Jacob O'Mara <jacob.omara@openfifth.co.uk>
This commit is contained in:
Jan Kissig 2025-12-02 12:30:13 +00:00 committed by Jacob O'Mara
parent 2abee1cc83
commit b75f760946
No known key found for this signature in database
1 changed files with 4 additions and 1 deletions

View File

@ -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;