From 570372b24ef081aca5bbb8aea8a1462fced14e68 Mon Sep 17 00:00:00 2001 From: Colin Campbell Date: Tue, 22 May 2012 11:11:33 +0100 Subject: [PATCH] Bug 8125 Sip addess should include all address fields Expansion of Liz Rea's original patch Bug report specifically mentioned lack of the Zip/Postal code but all used address fields should be included. Moved the address generation to its own sub. Hopefully using an if else will read more clearly than the original ternary operator proved to be Signed-off-by: Chris Cormack Signed-off-by: Jared Camins-Esakov --- C4/SIP/ILS/Patron.pm | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/C4/SIP/ILS/Patron.pm b/C4/SIP/ILS/Patron.pm index dc45d2ab19..8c00a116a0 100644 --- a/C4/SIP/ILS/Patron.pm +++ b/C4/SIP/ILS/Patron.pm @@ -53,13 +53,11 @@ sub new { $kp->{opacnote} .= 'PATRON EXPIRED'; } my %ilspatron; - my $adr = $kp->{streetnumber} || ''; - my $address = $kp->{address} || ''; + my $adr = _get_address($kp); my $dob = $kp->{dateofbirth}; $dob and $dob =~ s/-//g; # YYYYMMDD my $dexpiry = $kp->{dateexpiry}; $dexpiry and $dexpiry =~ s/-//g; # YYYYMMDD - $adr .= ($adr && $address) ? " $address" : $address; my $fines_amount = $flags->{CHARGES}->{amount}; $fines_amount = ($fines_amount and $fines_amount > 0) ? $fines_amount : 0; { @@ -349,6 +347,24 @@ sub charge_denied { return "Please contact library staff"; } +sub _get_address { + my $patron = shift; + + my $address = $patron->{streetnumber} || q{}; + for my $field (qw( roaddetails address address2 city state zipcode country)) + { + next unless $patron->{$field}; + if ($address) { + $address .= q{ }; + $address .= $patron->{$field}; + } + else { + $address .= $patron->{$field}; + } + } + return $address; +} + 1; __END__ -- 2.39.5