summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2014-08-30 15:01:08 -0700
committerIvan Kohler <ivan@freeside.biz>2014-08-30 15:01:08 -0700
commit4064388ed4466966a281e7db86a374cabe22ae8c (patch)
tree8a54105a178e9ba4e98dd28e1f0dacfc88101fd6 /bin
parent1dbab258aed2f501761d69a2afcdf6b977721dfe (diff)
convert sales persons to agents, R#30315
Diffstat (limited to 'bin')
-rw-r--r--bin/sales2agent75
1 files changed, 75 insertions, 0 deletions
diff --git a/bin/sales2agent b/bin/sales2agent
new file mode 100644
index 000000000..e3e122a2e
--- /dev/null
+++ b/bin/sales2agent
@@ -0,0 +1,75 @@
+#!/usr/bin/perl
+
+use FS::UID qw(adminsuidsetup dbh);
+use FS::Record qw(qsearch);
+use FS::sales;
+use FS::agent;
+use FS::access_group;
+use FS::access_groupagent;
+use FS::cust_main;
+
+adminsuidsetup shift or die &usage;
+
+$FS::UID::AutoCommit = 0;
+
+my @sales = qsearch('sales', {'disabled'=>''});
+
+foreach my $sales (@sales) {
+
+ my $agent = new FS::agent {
+ 'agent' => $sales->salesperson,
+ 'agent_custnum' => $sales->sales_custnum,
+ };
+ my $error = $agent->insert;
+ if ( $error ) {
+ dbh->rollback or die dbh->errstr;
+ die $error;
+ }
+
+ my $access_group = new FS::access_group {
+ 'groupname' => $agent->agent,
+ };
+ $error = $access_group->insert;
+ if ( $error ) {
+ dbh->rollback or die dbh->errstr;
+ die $error;
+ }
+
+ my $access_groupagent = new FS::access_groupagent {
+ 'groupnum' => $access_group->groupnum,
+ 'agentnum' => $agent->agentnum,
+ };
+ $error = $access_groupagent->insert;
+ if ( $error ) {
+ dbh->rollback or die dbh->errstr;
+ die $error;
+ }
+
+ foreach my $cust_main (qsearch('cust_main', {'salesnum'=>$sales->salesnum})) {
+
+ $cust_main->salesnum('');
+ $cust_main->agentnum($agent->agentnum);
+ $error = $cust_main->replace;
+ if ( $error ) {
+ dbh->rollback or die dbh->errstr;
+ die $error;
+ }
+
+ }
+
+ $sales->disabled('');
+ $error = $sales->replace;
+ if ( $error ) {
+ dbh->rollback or die dbh->errstr;
+ die $error;
+ }
+
+}
+
+dbh->commit or die dbh->errstr;
+
+1;
+
+sub usage {
+ die "Usage:\n\n sales2agent username\n";
+}