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