#!/usr/bin/perl

use strict;
use warnings;

use Ernad::Erimp;
use Ernad::Dates;
use Ernad::Membership;


#my $impna=$ARGV[0] // '';
#if(not $impna) {
#  print "I need an impna argument\n";
#  exit;
#}

# only used for nep
my $impna='nep';

our $e=Ernad::Erimp->new({'impna'=>$impna});

## reads from kapro
my $member_doc=Ernad::Membership::form_membership_doc($e);

my $colldoc=$e->{'r'}->assemble();
$colldoc=$e->{'x'}->inplace_ernad_into_coldoc($colldoc,$member_doc);

## remove issues bec
my $xpc = $e->{'x'}->{'xpc'};
#my $found=$xpc->find('./e:issue',$colldoc);

## remove individual issue and elements for readablity when debugging
foreach my $to_go ('//e:issue', '//e:rel') {
  my @eles=$xpc->find($to_go,$colldoc)->get_nodelist();
  foreach my $ele (@eles) {
    my $blank=$ele->nextSibling;
    my $p=$ele->parentNode;
    $p->removeChild($ele);
    $p->removeChild($blank);
  }
}

### remove rels elements for readablity when debugging
#my @issue_eles=$xpc->find('//e:rels',$colldoc)->get_nodelist();
#foreach my $issue_ele (@issue_eles) {
#  my $blank=$issue_ele->nextSibling;
#  my $issues_ele=$issue_ele->parentNode;
#  $issues_ele->removeChild($issue_ele);
#  $issues_ele->removeChild($blank);
#}

#my $up_date_ele=$colldoc->createElementNS($ernad_ns, "update");
#$up_date_ele->appendText(&Ernad::Dates::pretty_now());
#$colldoc->documentElement->appendChild($up_date_ele);

if($e->{'testing'}) {
  $colldoc->toFile("/tmp/$impna.xml");
}

my $ernad_ns=$Ernad::Constant::c->{'ernad_ns'};
my $pretty_format = "%Y‒%m‒%d %H:%M:%S";
my $up_date=&Ernad::Dates::pretty_now();

#    def add_currency(self, doc):
#        refdate = self.issuedate(doc)
#        if refdate is None:
#            refdate = dater.today()
#        for verb in self.idref.verbs:
#            xp = '//a:' + verb
#            for ele in self.xpafs.run(doc, xp):
#                ele.attrib['laubi'] = str(1)
#                if 'until' in ele.attrib:
#                    until = ele.attrib['until']
#                    if until <= refdate:
#                        ele.attrib['laubi'] = str(0)
#                        # # past binary
#                        ele.attrib['pasbi'] = str(1)
#                    continue
#                if 'from' in ele.attrib:
#                    start = ele.attrib['from']
#                    if start > refdate:
#                        ele.attrib['laubi'] = str(0)
#                    continue
#        return doc

## add current to the coll_doc

my $today=Ernad::Dates::today();
foreach my $verb ('haseditor',  'ispartof') {
  my @eles=$xpc->find('//amf:'.$verb,$colldoc)->get_nodelist();
  foreach my $ele (@eles) {
    my $until=$ele->getAttribute('until');
    if($until) {
      $ele->setAttribute('laubi', '0');
    }
    else {
      $ele->setAttribute('laubi', '1');
    }
  }
}

if($e->{'testing'}) {
  $colldoc->toFile("/tmp/$impna.xml");
}

my $html_doc=$e->{'t'}->transform($colldoc,'index',{'update' => "'$up_date'"});
my $out_file=$e->{'dir'}->{'web'}.'/'.'index.html';
$html_doc->toFile($out_file);
if($e->{'testing'}) {
  $html_doc->toFile("/tmp/$impna.html");
}
# print("I wrote $out_file\n");
exit;
