[freeside-commits] branch master updated. a858c1b8461b92b6f9daaa1b508b1c2cfc1f0f23

Ivan ivan at 420.am
Tue Mar 19 20:04:24 PDT 2013


The branch, master has been updated
       via  a858c1b8461b92b6f9daaa1b508b1c2cfc1f0f23 (commit)
      from  fc7539c3b8a0ae3326df9f47e924e36de3ef2cfe (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit a858c1b8461b92b6f9daaa1b508b1c2cfc1f0f23
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Tue Mar 19 20:04:21 2013 -0700

    fix quotation addresses vs RT#940, RT#21103

diff --git a/FS/FS/prospect_main.pm b/FS/FS/prospect_main.pm
index a04af86..a18c8ff 100644
--- a/FS/FS/prospect_main.pm
+++ b/FS/FS/prospect_main.pm
@@ -2,7 +2,7 @@ package FS::prospect_main;
 
 use strict;
 use base qw( FS::Quotable_Mixin FS::o2m_Common FS::Record );
-use vars qw( $DEBUG );
+use vars qw( $DEBUG @location_fields );
 use Scalar::Util qw( blessed );
 use FS::Record qw( dbh qsearch qsearchs );
 use FS::agent;
@@ -12,6 +12,43 @@ use FS::qual;
 
 $DEBUG = 0;
 
+#started as false laziness w/cust_main/Location.pm
+
+use Carp qw(carp);
+
+my $init = 0;
+BEGIN {
+  # set up accessors for location fields
+  if (!$init) {
+    no strict 'refs';
+    @location_fields = 
+      qw( address1 address2 city county state zip country district
+        latitude longitude coord_auto censustract censusyear geocode
+        addr_clean );
+
+    foreach my $f (@location_fields) {
+      *{"FS::prospect_main::$f"} = sub {
+        carp "WARNING: tried to set cust_main.$f with accessor" if (@_ > 1);
+        my @cust_location = shift->cust_location or return '';
+        #arbitrarily picking the first because the UI only lets you add one
+        $cust_location[0]->$f
+      };
+    }
+    $init++;
+  }
+}
+
+#debugging shim--probably a performance hit, so remove this at some point
+sub get {
+  my $self = shift;
+  my $field = shift;
+  if ( $DEBUG and grep { $_ eq $field } @location_fields ) {
+    carp "WARNING: tried to get() location field $field";
+    $self->$field;
+  }
+  $self->FS::Record::get($field);
+}
+
 =head1 NAME
 
 FS::prospect_main - Object methods for prospect_main records

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/prospect_main.pm |   39 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 38 insertions(+), 1 deletions(-)




More information about the freeside-commits mailing list