From 95ced8e8515e04991acb690d3d495535e410df70 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 --- C4/SIP/ILS/Patron.pm | 22 +++++++++++++++++++--- 1 files changed, 19 insertions(+), 3 deletions(-) diff --git a/C4/SIP/ILS/Patron.pm b/C4/SIP/ILS/Patron.pm index 99fd6e7..38b7da3 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; { @@ -350,6 +348,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.7.6