From 4064388ed4466966a281e7db86a374cabe22ae8c Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Sat, 30 Aug 2014 15:01:08 -0700 Subject: [PATCH] convert sales persons to agents, R#30315 --- bin/sales2agent | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 bin/sales2agent 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"; +} -- 2.11.0