[freeside-commits] branch FREESIDE_3_BRANCH updated. ac15bb65127bdb70398d4043a314b98eb1877fcd

Mark Wells mark at 420.am
Wed Nov 16 14:12:07 PST 2016


The branch, FREESIDE_3_BRANCH has been updated
       via  ac15bb65127bdb70398d4043a314b98eb1877fcd (commit)
       via  7429a9a63dd734a43e50a43a2e1af5b1f99ed83a (commit)
      from  b5ce5f3e32b0f40a7c6a7da86a25ec772c8dbc71 (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 ac15bb65127bdb70398d4043a314b98eb1877fcd
Author: Mark Wells <mark at freeside.biz>
Date:   Wed Nov 16 14:08:09 2016 -0800

    fix warning

diff --git a/FS/FS/Misc/Geo.pm b/FS/FS/Misc/Geo.pm
index f5edc56..2050fdf 100644
--- a/FS/FS/Misc/Geo.pm
+++ b/FS/FS/Misc/Geo.pm
@@ -210,13 +210,13 @@ sub wa_sales {
         if ( lc($text) eq 'location code' ) {
           $p->get_tag('td'); # skip to the next column
           undef $u;
-          $u = $p->get_token until $u->[0] eq 'T'; # and then skip non-text
+          $u = $p->get_token until ($u->[0] || '') eq 'T'; # and then skip non-text
           $return->{'district'} = $u->[1];
         }
         elsif ( lc($text) eq 'total tax rate' ) {
           $p->get_tag('td');
           undef $u;
-          $u = $p->get_token until $u->[0] eq 'T';
+          $u = $p->get_token until ($u->[0] || '') eq 'T';
           $return->{'tax'} = $u->[1];
         }
       } # get_token

commit 7429a9a63dd734a43e50a43a2e1af5b1f99ed83a
Author: Mark Wells <mark at freeside.biz>
Date:   Wed Nov 16 14:07:57 2016 -0800

    lock table for tax district updates, #73185

diff --git a/FS/FS/Cron/tax_rate_update.pm b/FS/FS/Cron/tax_rate_update.pm
index 2c021b8..b6ac63c 100755
--- a/FS/FS/Cron/tax_rate_update.pm
+++ b/FS/FS/Cron/tax_rate_update.pm
@@ -40,6 +40,7 @@ sub tax_rate_update {
 
   my $taxname = $conf->config('tax_district_taxname') || '';
 
+  FS::cust_main_county->lock_table;
   if ($method eq 'wa_sales') {
     # download the update file
     my $now = DateTime->now;
diff --git a/FS/FS/geocode_Mixin.pm b/FS/FS/geocode_Mixin.pm
index 46f8128..ef16e74 100644
--- a/FS/FS/geocode_Mixin.pm
+++ b/FS/FS/geocode_Mixin.pm
@@ -260,6 +260,7 @@ sub process_district_update {
   die $@ if $@;
   die "$class has no location data" if !$class->can('location_hash');
 
+  my $error;
   my $conf = FS::Conf->new;
   my $method = $conf->config('tax_district_method')
     or return; #nothing to do if null
@@ -269,9 +270,11 @@ sub process_district_update {
   my $tax_info = get_district({ $self->location_hash }, $method);
   return unless $tax_info;
 
-  $self->set('district', $tax_info->{'district'} );
-  my $error = $self->replace;
-  die $error if $error;
+  if ($self->district ne $tax_info->{'district'}) {
+    $self->set('district', $tax_info->{'district'} );
+    $error = $self->replace;
+    die $error if $error;
+  }
 
   my %hash = map { $_ => uc( $tax_info->{$_} ) } 
     qw( district city county state country );
@@ -281,6 +284,9 @@ sub process_district_update {
   my $taxname = $conf->config('tax_district_taxname');
   # there must be exactly one cust_main_county for each district+taxclass.
   # do NOT exclude taxes that are zero.
+
+  # mutex here so that concurrent queue jobs can't make duplicates.
+  FS::cust_main_county->lock_table;
   foreach my $taxclass (@classes) {
     my @existing = qsearch('cust_main_county', {
       %hash,
diff --git a/FS/bin/freeside-upgrade b/FS/bin/freeside-upgrade
index 95916ae..a454481 100755
--- a/FS/bin/freeside-upgrade
+++ b/FS/bin/freeside-upgrade
@@ -313,7 +313,7 @@ print "\n" if $DRY_RUN;
 
 if ( $dbh->{Driver}->{Name} =~ /^mysql/i && ! $opt_s ) {
 
-  foreach my $table (qw( svc_acct svc_phone )) {
+  foreach my $table (qw( svc_acct svc_phone cust_main_county )) {
 
     my $sth = $dbh->prepare(
       "SELECT COUNT(*) FROM duplicate_lock WHERE lockname = '$table'"

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

Summary of changes:
 FS/FS/Cron/tax_rate_update.pm |    1 +
 FS/FS/Misc/Geo.pm             |    4 ++--
 FS/FS/geocode_Mixin.pm        |   12 +++++++++---
 FS/bin/freeside-upgrade       |    2 +-
 4 files changed, 13 insertions(+), 6 deletions(-)




More information about the freeside-commits mailing list