[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