script to set up Suretax customer statuses, #39639
authorMark Wells <mark@freeside.biz>
Wed, 29 Jun 2016 07:20:58 +0000 (00:20 -0700)
committerMark Wells <mark@freeside.biz>
Wed, 29 Jun 2016 07:21:15 +0000 (00:21 -0700)
bin/set-tax-status [new file with mode: 0755]

diff --git a/bin/set-tax-status b/bin/set-tax-status
new file mode 100755 (executable)
index 0000000..d656780
--- /dev/null
@@ -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;