[freeside-commits] branch FREESIDE_4_BRANCH updated. 238778f35b35243a8dc5a16b6a0d77e860a5edb3

Mark Wells mark at 420.am
Wed Jun 29 00:42:45 PDT 2016


The branch, FREESIDE_4_BRANCH has been updated
       via  238778f35b35243a8dc5a16b6a0d77e860a5edb3 (commit)
       via  c6dccfb44d8cd89f02f0d2f0212a6847e509e37a (commit)
      from  f272bf70a898ee4a4b58fcdf0c43fb69a4383cdc (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 238778f35b35243a8dc5a16b6a0d77e860a5edb3
Author: Mark Wells <mark at freeside.biz>
Date:   Wed Jun 29 00:41:18 2016 -0700

    make customer tax status a required field when the vendor requires it, #39639

diff --git a/httemplate/edit/process/cust_main.cgi b/httemplate/edit/process/cust_main.cgi
index 99c7f90..04516e9 100755
--- a/httemplate/edit/process/cust_main.cgi
+++ b/httemplate/edit/process/cust_main.cgi
@@ -188,6 +188,15 @@ if ( $cgi->param('residential_commercial') eq 'Residential' ) {
 
 }
 
+# kind of a hack, but some tax data vendors require a status and others
+# don't.
+my $vendor = $conf->config('tax_data_vendor');
+if ( $vendor eq 'avalara' or $vendor eq 'suretax' ) {
+  if ( ! $cgi->param('taxstatusnum') ) {
+    $error ||= 'Tax status required';
+  }
+}
+
 #perhaps this stuff should go to cust_main.pm
 if ( $new->custnum eq '' or $duplicate_of ) {
 
diff --git a/httemplate/edit/process/prospect_main.html b/httemplate/edit/process/prospect_main.html
index 7c8cc27..b2ae88e 100644
--- a/httemplate/edit/process/prospect_main.html
+++ b/httemplate/edit/process/prospect_main.html
@@ -1,5 +1,6 @@
 <% include('elements/process.html',
      'table'          => 'prospect_main',
+     'precheck_callback' => $precheck,
      'args_callback'  => $args_callback,
      'agent_virt'     => 1,
      'process_o2m' => {
@@ -11,6 +12,16 @@
 %>
 <%init>
 
+my $precheck = sub {
+  my $cgi = shift;
+  my $vendor = FS::Conf->new->config('tax_data_vendor');
+  if ( $vendor eq 'avalara' or $vendor eq 'suretax' ) {
+    if ( ! $cgi->param('taxstatusnum') ) {
+      return 'Tax status required';
+    }
+  }
+};
+
 my $args_callback = sub {
   my( $cgi, $object ) = @_;
 
diff --git a/httemplate/edit/prospect_main.html b/httemplate/edit/prospect_main.html
index fb67515..7c02538 100644
--- a/httemplate/edit/prospect_main.html
+++ b/httemplate/edit/prospect_main.html
@@ -50,6 +50,7 @@
        },
        { 'field'    => 'taxstatusnum',
          'type'     => 'select-tax_status',
+         'required' => 1,
          'empty_label'   => ' ',
        },
      ],

commit c6dccfb44d8cd89f02f0d2f0212a6847e509e37a
Author: Mark Wells <mark at freeside.biz>
Date:   Wed Jun 29 00:20:58 2016 -0700

    script to set up Suretax customer statuses, #39639

diff --git a/bin/set-tax-status b/bin/set-tax-status
new file mode 100755
index 0000000..d656780
--- /dev/null
+++ b/bin/set-tax-status
@@ -0,0 +1,34 @@
+#!/usr/bin/perl
+
+use FS::Misc::Getopt;
+use FS::cust_main;
+use FS::Record qw(qsearch dbh);
+use FS::Conf;
+getopts('');
+
+my $conf = FS::Conf->new;
+if ( $conf->config('tax_data_vendor') ne 'suretax' ) {
+  die "This script is for Suretax only.";
+}
+
+$FS::UID::AutoCommit = 0;
+local $FS::cust_main::ignore_expired_card = 1;
+local $FS::cust_main::ignore_invalid_card = 1;
+local $FS::cust_main::import = 1;
+
+my %taxstatusnum = map {
+  $_->taxstatus => $_->taxstatusnum
+} qsearch('tax_status', { data_vendor => 'suretax' });
+
+foreach my $cust_main (qsearch('cust_main', { taxstatusnum => '' })) {
+  my $status = length($cust_main->company) ? 'B' : 'R';
+  print $cust_main->custnum . "\t" .
+        $cust_main->name_short . "\t" .
+        $status . "\n";
+  $cust_main->set('taxstatusnum', $taxstatusnum{ $status });
+  my $error = $cust_main->replace;
+  die $error if $error;
+}
+
+warn "Finished.\n";
+dbh->commit;

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

Summary of changes:
 bin/set-tax-status                         |   34 ++++++++++++++++++++++++++++
 httemplate/edit/process/cust_main.cgi      |    9 ++++++++
 httemplate/edit/process/prospect_main.html |   11 +++++++++
 httemplate/edit/prospect_main.html         |    1 +
 4 files changed, 55 insertions(+)
 create mode 100755 bin/set-tax-status




More information about the freeside-commits mailing list