adding wipe-agent script, RT#10679
authorivan <ivan>
Fri, 19 Nov 2010 21:58:43 +0000 (21:58 +0000)
committerivan <ivan>
Fri, 19 Nov 2010 21:58:43 +0000 (21:58 +0000)
bin/wipe-agent [new file with mode: 0644]

diff --git a/bin/wipe-agent b/bin/wipe-agent
new file mode 100644 (file)
index 0000000..fbe58a8
--- /dev/null
@@ -0,0 +1,39 @@
+#!/usr/bin/perl
+
+use strict;
+use vars qw( $opt_a $opt_d );
+use Getopt::Std;
+use FS::UID qw(adminsuidsetup);
+use FS::Record qw(qsearch);
+use FS::cust_main;
+
+die "i cancel and delete all customers of an agent - use the -d switch first and be careful - remove this line to enable";
+
+getopts('a:d');
+
+my $user = shift or die "usage: wipe-agent -a agentnum [ -d ] username\n";
+adminsuidsetup $user;
+
+die "no agentnum specified" unless $opt_a;
+
+foreach my $cust_main (
+
+  qsearch('cust_main', { 'agentnum' => $opt_a } )
+
+) {
+
+  warn "deleting ". $cust_main->name. "\n";
+
+  unless ( $opt_d ) { #dry run
+
+    my @cerrors = $cust_main->cancel( quiet=>1, nobill=>1 );
+    if ( @cerrors ) {
+      die join(' / ', @cerrors);
+    }
+
+    my $error = $cust_main->delete( 'delete_financials' => 1);
+    die $error if $error;
+
+  }
+
+}