#!/usr/bin/perl

use strict;
use warnings;

use File::Basename;
use File::Copy;
use File::Path;
use Data::Dumper;

use Ernad::Erimp;

my $impna=$ARGV[0] // '';
if(not defined($impna)) {
  print "fatal: I need the impna $impna\n";
  exit;
}

my $repcode=$ARGV[1] // '';
if(not $repcode) {
  print "no repcode\n";
  exit;
}


my $issue_date=$ARGV[2] // '';
if(not $issue_date) {
  print "no issue_date\n";
  exit;
}

my $e=Ernad::Erimp->new({'impna'=>$impna});
if(not $e) {
  print "invalid impna $impna\n";
  exit;
}

my $reports_dir=$e->{'dir'}->{'reports'};
my $reports_archive_dir=$e->{'dir'}->{'reports_archive'};

my $rerc=$e->{'report'}->{$repcode} // '';
if(not $rerc) {
  print "no such report: $repcode\n";
}

#print Dumper $e->{'const'}->{'stages'};

my @stages=@{$e->{'const'}->{'stages'}};

my @edit_stages=splice(@stages,1,scalar(@stages));

#print Dumper @edit_stages;
push(@edit_stages,'mail');

foreach my $stage (@edit_stages) {
  my $dir=$rerc->{'dir'}->{$stage} or next;
  foreach my $file (`ls $dir/$issue_date* 2> /dev/null`) {
    chomp $file;    
    my $archive_file=$file;
    $archive_file=~s|\Q$reports_dir\E|$reports_archive_dir|;
    my $archive_dir=dirname($archive_file);
    if(not -d $archive_dir) {
      mkpath($archive_dir);
    }
    copy($file,$archive_file) or die;
    print "archive_file is $archive_file\n";
    print "unlink $file\n";
    unlink $file;    
  }
}

unlink $rerc->{'path'} .'/'. 'state';

