Merge branch 'github/pr/55_reprise'
[freeside.git] / bin / cch.redelete
1 #!/usr/bin/perl -w
2
3 use strict;
4 use Storable qw( thaw nfreeze );
5 use MIME::Base64;
6 use FS::UID qw( adminsuidsetup );
7 use FS::tax_rate;
8
9 adminsuidsetup(shift);
10
11 #my @namelist = qw( code detail geocode plus4 txmatrix zip );
12 my @namelist = qw( plus4 txmatrix zip );
13
14 my $cache_dir = '/usr/local/etc/freeside/cache.'. $FS::UID::datasrc. '/';
15 my $dir = $cache_dir.'taxdata/cch';
16
17 my @list = ();
18 foreach my $name ( @namelist ) {
19   my $difffile = "$dir.new/$name.txt";
20   if (1) { # ($update) {
21     #my $error = $job->update_statustext( "0,Comparing to previous $name" );
22     #die $error if $error;
23     warn "processing $dir.new/$name.txt\n"; # if $DEBUG;
24     #my $olddir = $update ? "$dir.1" : "";
25     my $olddir = "$dir.1";
26     $difffile = FS::tax_rate::_perform_cch_diff( $name, "$dir.new", $olddir );
27   }
28   $difffile =~ s/^$cache_dir//;
29   push @list, "${name}file:$difffile";
30 }
31
32 # perform the import
33 local $FS::tax_rate::keep_cch_files = 1;
34 my $param = {
35   'format'         => 'cch-update',
36   'uploaded_files' => join( ',', @list ),
37   'delete_only'    => 1,
38 };
39 my $error =
40   #_perform_batch_import( $job, encode_base64( nfreeze( $param ) ) );
41   FS::tax_rate::_perform_batch_import( '', encode_base64( nfreeze( $param ) ) );
42
43 if ( $error ) {
44   warn "ERROR: $error\n";
45 } else {
46   warn "success!\n";
47 }
48
49 #XXX do this manually
50 #rename "$dir.new", "$dir"
51 #  or die "cch tax update processed, but can't rename $dir.new: $!\n";
52