[freeside-commits] branch master updated. 2bcf13f0f9da22f9afa134320943ea2bfc9c7dcb

Jonathan Prykop jonathan at 420.am
Wed Jul 1 15:58:48 PDT 2015


The branch, master has been updated
       via  2bcf13f0f9da22f9afa134320943ea2bfc9c7dcb (commit)
      from  1004de872b685fefcc543f16b5c0f23b289b9d80 (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 2bcf13f0f9da22f9afa134320943ea2bfc9c7dcb
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Wed Jul 1 17:57:44 2015 -0500

    RT#29285: State field not needed for New Zealand [bug fixes]

diff --git a/FS/FS/UI/Web/small_custview.pm b/FS/FS/UI/Web/small_custview.pm
index 329e5f7..a1173f7 100644
--- a/FS/FS/UI/Web/small_custview.pm
+++ b/FS/FS/UI/Web/small_custview.pm
@@ -130,9 +130,9 @@ sub small_custview {
     $html .= encode_entities($cust_main->address2). '<BR>'
       if $cust_main->address2;
     $html .= encode_entities($cust_main->city) . ', ' if $cust_main->city;
-    $html .= $cust_main->state. '  '.
-             $cust_main->zip. '<BR>';
-    $html .= $cust_main->country. '<BR>'
+    $html .= encode_entities($cust_main->state). '  '.
+             encode_entities($cust_main->zip). '<BR>';
+    $html .= encode_entities($cust_main->country). '<BR>'
       if $cust_main->country && $cust_main->country ne $countrydefault;
 
   }
diff --git a/FS/FS/cust_location.pm b/FS/FS/cust_location.pm
index 9ab94f2..7f4aa9a 100644
--- a/FS/FS/cust_location.pm
+++ b/FS/FS/cust_location.pm
@@ -68,7 +68,7 @@ Address line two (optional)
 
 =item city
 
-City (optional only if cust_main-no_city_in_address config is set)
+City (if cust_main-no_city_in_address config is set when inserting, this will be forced blank)
 
 =item county
 
@@ -149,18 +149,13 @@ sub find_or_insert {
 
   warn "find_or_insert:\n".Dumper($self) if $DEBUG;
 
-  my @essential = (qw(custnum address1 address2 county state zip country
+  my @essential = (qw(custnum address1 address2 city county state zip country
     location_number location_type location_kind disabled));
 
-  # Just in case this conf was accidentally/temporarily set,
-  # we'll never overwrite existing city; see city method
   if ($conf->exists('cust_main-no_city_in_address')) {
-    warn "Warning: find_or_insert specified city when cust_main-no_city_in_address was configured"
+    warn "Warning: passed city to find_or_insert when cust_main-no_city_in_address is configured, ignoring it"
       if $self->get('city');
-    $self->set('city',''); # won't end up in %nonempty, hence old value is preserved
-  } else {
-    # otherwise, of course, city is essential
-    push(@essential,'city') 
+    $self->set('city','');
   }
 
   # I don't think this is necessary
@@ -218,10 +213,11 @@ otherwise returns false.
 sub insert {
   my $self = shift;
 
-  # Ideally, this should never happen,
-  # but throw a warning and save the value anyway, to avoid data loss
-  warn "Warning: inserting city when cust_main-no_city_in_address is configured"
-    if $conf->exists('cust_main-no_city_in_address') && $self->get('city');
+  if ($conf->exists('cust_main-no_city_in_address')) {
+    warn "Warning: passed city to insert when cust_main-no_city_in_address is configured, ignoring it"
+      if $self->get('city');
+    $self->set('city','');
+  }
 
   if ( $self->censustract ) {
     $self->set('censusyear' => $conf->config('census_year') || 2012);
@@ -288,13 +284,8 @@ sub replace {
   my $old = shift;
   $old ||= $self->replace_old;
 
-  # Just in case this conf was accidentally/temporarily set,
-  # we'll never overwrite existing city; see city method
-  if ($conf->exists('cust_main-no_city_in_address')) {
-    warn "Warning: replace attempted to change city when cust_main-no_city_in_address was configured"
-      if $self->get('city') && ($old->get('city') != $self->get('city'));
-    $self->set('city',$old->get('city'));
-  }
+  warn "Warning: passed city to replace when cust_main-no_city_in_address is configured"
+    if $conf->exists('cust_main-no_city_in_address') && $self->get('city');
 
   # the following fields are immutable
   foreach (qw(address1 address2 city state zip country)) {
@@ -419,30 +410,6 @@ sub check {
   $self->SUPER::check;
 }
 
-=item city
-
-When the I<cust_main-no_city_in_address> config is set, the
-city method will return a blank string no matter the previously
-set value of the field.  You can still use the get method to
-access the contents of the field directly.
-
-Just in case this config was accidentally/temporarily set,
-we'll never overwrite existing city while the config is active.
-L</find_or_insert> will throw a warning if passed any true value for city,
-ignore the city field when finding, and preserve the existing value.
-L</replace> will only throw a warning if passed a true value that is 
-different than the existing value of city, and will preserve the existing value.
-L</insert> will throw a warning but still insert a true city value,
-to avoid unnecessary data loss.
-
-=cut
-
-sub city {
-  my $self = shift;
-  return '' if $conf->exists('cust_main-no_city_in_address');
-  return $self->get('city');
-}
-
 =item country_full
 
 Returns this locations's full country name
@@ -766,62 +733,6 @@ sub county_state_country {
 
 =back
 
-=head1 CLASS METHODS
-
-=item in_county_sql OPTIONS
-
-Returns an SQL expression to test membership in a cust_main_county 
-geographic area.  By default, this requires district, city, county,
-state, and country to match exactly.  Pass "ornull => 1" to allow 
-partial matches where some fields are NULL in the cust_main_county 
-record but not in the location.
-
-Pass "param => 1" to receive a parameterized expression (rather than
-one that requires a join to cust_main_county) and a list of parameter
-names in order.
-
-=cut
-
-### Is this actually used for anything anymore?  Grep doesn't show anything...
-sub in_county_sql {
-  # replaces FS::cust_pkg::location_sql
-  my ($class, %opt) = @_;
-  my $ornull = $opt{ornull} ? ' OR ? IS NULL' : '';
-  my $x = $ornull ? 3 : 2;
-  my @fields = (('district') x 3,
-                ('county') x $x,
-                ('state') x $x,
-                'country');
-
-  unless ($conf->exists('cust_main-no_city_in_address')) {
-    push( @fields, (('city') x 3) );
-  }
-
-  my $text = (driver_name =~ /^mysql/i) ? 'char' : 'text';
-
-  my @where = (
-    "cust_location.district = ? OR ? = '' OR CAST(? AS $text) IS NULL",
-    "cust_location.county   = ? OR (? = '' AND cust_location.county IS NULL) $ornull",
-    "cust_location.state    = ? OR (? = '' AND cust_location.state IS NULL ) $ornull",
-    "cust_location.country = ?",
-    "cust_location.city     = ? OR ? = '' OR CAST(? AS $text) IS NULL"
-  );
-  my $sql = join(' AND ', map "($_)\n", @where);
-  if ( $opt{param} ) {
-    return $sql, @fields;
-  }
-  else {
-    # do the substitution here
-    foreach (@fields) {
-      $sql =~ s/\?/cust_main_county.$_/;
-      $sql =~ s/cust_main_county.$_ = ''/cust_main_county.$_ IS NULL/;
-    }
-    return $sql;
-  }
-}
-
-=back
-
 =head2 SUBROUTINES
 
 =over 4

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

Summary of changes:
 FS/FS/UI/Web/small_custview.pm |    6 +--
 FS/FS/cust_location.pm         |  111 ++++------------------------------------
 2 files changed, 14 insertions(+), 103 deletions(-)




More information about the freeside-commits mailing list