summaryrefslogtreecommitdiff
path: root/bin/wipe-customers
diff options
context:
space:
mode:
authorivan <ivan>2010-08-11 06:35:20 +0000
committerivan <ivan>2010-08-11 06:35:20 +0000
commit9f3d1466f4dd917aeb07d7e85222d97e131062f1 (patch)
tree6a2be98b3b72f38f124d8a6a33b62bd8e2738ee9 /bin/wipe-customers
parentfc6928bd855d50cbd96b977746baf47c27fd99df (diff)
a better customer delete, RT#9564
Diffstat (limited to 'bin/wipe-customers')
-rw-r--r--bin/wipe-customers30
1 files changed, 30 insertions, 0 deletions
diff --git a/bin/wipe-customers b/bin/wipe-customers
new file mode 100644
index 000000000..e65ed61be
--- /dev/null
+++ b/bin/wipe-customers
@@ -0,0 +1,30 @@
+#!/usr/bin/perl
+
+use strict;
+use FS::UID qw(adminsuidsetup);
+use FS::Record qw(qsearch);
+use FS::cust_main;
+
+die "this removes all customers in your database except for customer 1 - remove this line to enable";
+
+my $user = shift or die "usage: wipe-customers username\n";
+adminsuidsetup $user;
+
+#this isn't terribly efficient, but the idea was clearing out a test database,
+#not actually destroying a large amount of data
+
+foreach my $cust_main (
+
+ qsearch('cust_main', { 'custnum' => { op=>'!=', value=>'1' } } )
+
+) {
+
+ 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;
+
+}