recover customer locations from history, RT#77268
authorIvan Kohler <ivan@freeside.biz>
Fri, 1 Sep 2017 00:14:36 +0000 (17:14 -0700)
committerIvan Kohler <ivan@freeside.biz>
Fri, 1 Sep 2017 00:14:36 +0000 (17:14 -0700)
bin/recover-cust_location [new file with mode: 0755]

diff --git a/bin/recover-cust_location b/bin/recover-cust_location
new file mode 100755 (executable)
index 0000000..6318eb3
--- /dev/null
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use FS::UID qw( adminsuidsetup );
+use FS::Record qw( qsearchs );
+use FS::h_cust_location;
+use FS::cust_location;
+
+adminsuidsetup shift or &usage;
+my $start = shift or &usage;
+my $end = shift or &usage;
+
+for my $locationnum ( $start .. $end ) {
+
+  my $h_cust_location = qsearchs({
+    'table'     => 'h_cust_location',  
+    'hashref'   => { 'locationnum' => $locationnum, },
+    'extra_sql' => " AND ( history_action = 'insert' OR history_action = 'replace_new' )",
+    'order_by'  => 'ORDER BY historynum DESC LIMIT 1',
+  })
+    or die "h_cust_location for $locationnum not found\n";
+
+  warn "recovering cust_locaiton $locationnum\n";
+  my $cust_location = new FS::cust_location { $h_cust_location->hash };
+  my $error = $cust_location->insert;
+  die $error if $error;
+
+}
+
+sub usage {
+  die "Usage: recover-cust_location username start_locationnum end_locationnum\n";
+}