From 4fade0709fd7008587001fde2dd00841110e21e6 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 --- 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 dc45d2a..8c00a11 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__ -- 1.8.1.rc2