summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2016-06-29 00:20:58 -0700
committerMark Wells <mark@freeside.biz>2016-06-29 00:21:15 -0700
commit539daa850d829061bb0901c2851ec6ddf685030e (patch)
treedaef2c2db0735ba0f2c8f4a6dd1477c96bb3319a /bin
parentca00b528d98dbf454bae7b497c8d83ca8851724c (diff)
script to set up Suretax customer statuses, #39639
Diffstat (limited to 'bin')
-rwxr-xr-xbin/set-tax-status34
1 files changed, 34 insertions, 0 deletions
diff --git a/bin/set-tax-status b/bin/set-tax-status
new file mode 100755
index 000000000..d656780d1
--- /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;