scrub agent payment gateways
[freeside.git] / bin / test_scrub
old mode 100644 (file)
new mode 100755 (executable)
index 5766925..ecb7229
@@ -3,6 +3,7 @@
 #This drops anything from the database that could cause live things to happen.
 #You'd want to do this on a test copy of your live database but NEVER on the
 #live database itself.
+die "remove this line to run -- NEVER ON A LIVE DATABASE";
 
 #-all exports (all records in part_export, part_export_option export_svc)
 #-all non-POST invoice destinations (cust_main_invoice)
 #-business-onlinepayment and business-onlinepayment-ach config
 
 use strict;
+use vars qw( $opt_h );
+use Getopt::Std;
 use FS::UID qw(adminsuidsetup dbh);
 use FS::Conf;
+use FS::Schema qw(dbdef);
+
+getopts('h');
 
 adminsuidsetup shift;
 
 foreach my $table (qw(
-  part_export
-  part_export_option
   export_svc
+  part_export_option
+  part_export
   payment_gateway
   payment_gateway_option
   agent_payment_gateway
@@ -37,12 +43,37 @@ my $dsth = dbh->prepare("DELETE FROM cust_main_invoice WHERE dest != 'POST'")
   or die dbh->errstr;
 $dsth->execute or die $dsth->errstr;
 
+foreach my $table (qw( cust_main cust_payby
+                       cust_pay_pending cust_pay cust_pay_void cust_pay_batch
+                       cust_refund
+)) {
+  my $ccsth = dbh->prepare("
+    UPDATE $table SET payinfo = '4111111111111111'
+      WHERE payby = 'CARD' OR payby = 'DCRD'
+  ") or die dbh->errstr;
+  $ccsth->execute or die $ccsth->errstr;
+}
+
+my $sth = dbh->prepare("UPDATE part_event SET disabled = 'Y'");
+$sth->execute or die $sth->errstr;
+
 my $conf = new FS::Conf;
 foreach my $item (qw(
   business-onlinepayment
   business-onlinepayment-ach
+  dump-localdest
+  dump-scpdest
+  cust_bill-ftp_spool
+  smtpmachine
 )) {
   $conf->delete($item);
 }
 
+if ($opt_h) {  # not all history can be safely deleted
+  foreach my $table (grep { /^h_\w+$/ } dbdef->tables) {
+    my $sth = dbh->prepare("DELETE FROM $table") or die dbh->errstr;
+    $sth->execute or die $sth->errstr;
+  }
+}
+
 dbh->commit or die dbh->errstr;