--- /dev/null
+#!/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";
+}