From d2b480aef4bfe0d8be3937fd3752ec0d97351091 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 kack 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 --- 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 d3a9762..c2a4017 100644 --- a/C4/SIP/ILS/Patron.pm +++ b/C4/SIP/ILS/Patron.pm @@ -59,13 +59,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; { @@ -353,6 +351,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.7.10