#!/usr/bin/perl

use strict;
use warnings;

use Carp qw(confess);
use Data::Dumper;
use Getopt::Std;

use Ernad::Args;
use Ernad::Indat::Report;
use Ernad::Common;
use Ernad::Store;
use Ernad::Erimp;
use Ernad::Editor;
use Krichel::File;

#my %o;
#&Getopt::Std::getopts('ad', \%o);

#my $do_add = $o{'a'} // 0;
#my $do_delete = $o{'d'} // 0;

our ($impna, $e, $repcode, $in_file);
&Ernad::Args::parse();

if(not $repcode) {
  print "I don't see your report\n";
  exit;
}

$e=Ernad::Erimp->new({'impna'=> $impna, 'verbose'=>3});
my $rerc=$e->{'report'}->{$repcode} // '';
if(not $rerc) {
  print "I don't know about your report '$repcode'.\n";
  exit;
}

my $sent_dir=$rerc->{'dir'}->{'sent'};
## required to call update_editor_in_doc($rix,$rs);
my $rs;
$rs->{'repcode'}=$repcode;
$rs->{'e'}=$e;
foreach my $file (glob("$sent_dir/*")) {
  # fif(not &Ernad::Common::is_rif_name($file)) {
  if(not $e->{'f'}->is($file)) {
    $e->echo(__LINE__,"File $file is not a rif, skip.");
    next;
  }
  my $rif=$file;
  my $issuedate=&Ernad::FileInfo::issuedate($file,'do_strict');
  my $rix=&Krichel::File::load($rif);
  $rix=&Ernad::Editor::update_in_doc($rix,$rs);
  if(not $e->{'x'}->count_texts($rix)) {
    $e->echo(__LINE__,"rif $rif has no texts, skip.");
    next;
  }
  &Ernad::Files::save_if_diff($rif,$rix);
  my $out_file=$e->{'dir'}->{'blatt'}."/$repcode/$issuedate.html";
  &Krichel::File::prepare($out_file);
  if(not &Ernad::Common::does_file_need_renewal($out_file,$rif)) {
    next;
  }
  my $doc=$e->{'t'}->transform_file($rif,'email_html_issue');
  $doc->toFile($out_file,1);
  $e->echo(__LINE__,"I wrote $out_file.");
}

__END__;
