use File::Path qw/make_path/;
use Data::Dumper;
use File::Copy qw/copy/;
-use XML::LibXML;
+use XML::Simple;
use JSON::PP;
use lib('.');
use sqlite;
my $db = undef;
my $cmonth = "none";
my $frmonth = {"Janvier" => '01',"Février"=> '02',"Mars" => '03',"Avril" => '04', "Mai" => '05',"Juin" => '06',"Juillet" => '07',"Août" => '08',"Septembre" => '09',"Octobre" => '10',"Novembre" => '11',"Décembre" => '12'};
-# -db "C:\\Users\\ksaff\\DKS\\projects\\Creorga\\Calimero\\20170327\\basch\\9475a95d-e2ad-4586-8432-d44a604b3fd3.sqlite" -p "C:\\Users\\ksaff\\DKS\\projects\\Creorga\\Calimero\\2018.3.pdf" -o "C:\\Users\\ksaff\\DKS\\projects\\Creorga\\Calimero\\20170327\\basch\\imports\\9475a95d-e2ad-4586-8432-d44a604b3fd3" -t "C:\\Debug\\Creorga\\Tools" -l "C:\\Users\\ksaff\\AppData\\Roaming\\Creorga\\Profiles\\09coeoa7.default\\lastimport.json"
+# -db "C:\\Users\\ksaff\\DKS\\projects\\Creorga\\Calimero\\current\\differdange\\5531423c-b85a-4305-9372-c62a293d0c84.sqlite" -p "C:\\Users\\ksaff\\DKS\\projects\\Creorga\\Calimero\\2018.3.pdf" -o "C:\\Users\\ksaff\\DKS\\projects\\Creorga\\Calimero\\current\\differdange\\imports\\5531423c-b85a-4305-9372-c62a293d0c84" -t "C:\\Debug\\Creorga\\Tools" -x "C:\\Users\\ksaff\\DKS\\projects\\Creorga\\Calimero\\" -l "C:\\Users\\ksaff\\AppData\\Roaming\\Creorga\\Profiles\\09coeoa7.default\\lastimport.json"
GetOptions("dbfile|db=s" => \$dbfile,
"pdf|p=s" => \$pdffile,
"outdir|o=s" => \$outputdir,
}
my $xmlres = ();
if ($xmlfile ne "" && -e $xmlfile){
- my $xmldata = XML::LibXML->load_xml(location => $xmlfile);
- foreach my $data ($xmldata->findnodes('//factureExterne')) {
- my $ref = $data->findvalue('./referenceExterne');
+ print "Lire le fichier XML!\n";
+ my $xmldata = XMLin($xmlfile);
+
+ foreach my $data (@{$xmldata->{'factureExterne'}}) {
+ #print Dumper($data);
+ my $ref = $data->{'referenceExterne'};
$xmlres->{$ref}->{reference} = $ref;
- $xmlres->{$ref}->{crechename} = $data->findvalue('./objetBasDeFacture');
- $xmlres->{$ref}->{datefacture} = $data->findvalue('./DateFacture');
- $xmlres->{$ref}->{totalamount} = $data->findvalue('./totalTtc');
- $xmlres->{$ref}->{totalamount} = s/\,/\./g;
- $xmlres->{$ref}->{totalamount} = s/\s+//g;
- my @cast = map {$_->to_literal();} $data->findnodes('./lignesFacture/ligneFacture/objetLigneFacture');
- my @numchks = split("\n",$cast[0]);
- my $nx = $numchks[0];
- $xmlres->{$ref}->{checkservice} = $nx;
+ $xmlres->{$ref}->{crechename} = $data->{'objetBasDeFacture'};
+ $xmlres->{$ref}->{datefacture} = $data->{'DateFacture'};
+ my $ttc = $data->{'totalTtc'};
+ $ttc =~ s/\,/\./g;
+ $ttc =~ s/\s+//g;
+ $xmlres->{$ref}->{totalamount} = $ttc;
+ if (ref($data->{lignesFacture}->{ligneFacture}) eq "HASH"){
+ $xmlres->{$ref}->{checkservice} = $data->{lignesFacture}->{ligneFacture}->{objetLigneFacture};
+ } elsif (ref($data->{lignesFacture}->{ligneFacture}) eq "ARRAY"){
+ $xmlres->{$ref}->{checkservice} = $data->{lignesFacture}->{ligneFacture}[0]->{objetLigneFacture};
+ }
+
+# my @cast = map {$_->to_literal();} $data->findnodes('./lignesFacture/ligneFacture/objetLigneFacture');
+# my @numchks = split("\n",$cast[0]);
+# my $nx = $numchks[0];
+# $xmlres->{$ref}->{checkservice} = $nx;
}
}
+print Dumper($xmlres);
my $allchilddata = ();
if ($totext == 1) {
foreach my $n (@nfiles){
#compile executeables
chdir("C:\\Users\\ksaff\\Release\\tag\\Tools");
# system('"C:\\Strawberry\\perl\\site\\bin\\pp" -o "C:\\Users\\ksaff\\Release\\dist\\Tools\\creorgadb.exe" creorgadb.pl');
- system('"C:\\Strawberry\\perl\\site\\bin\\pp" -o "C:\\Users\\ksaff\\Release\\dist\\Tools\\pdfextract2.exe" --module="XML::LibXML" --compress 6 pdfextract.pl');
+ system('"C:\\Strawberry\\perl\\site\\bin\\pp" -o "C:\\Users\\ksaff\\Release\\dist\\Tools\\pdfextract.exe" --module="XML::Simple" --compress 6 pdfextract.pl');
#copy("C:\\Debug\\Creorga\\Tools\\pdfextract2.exe","C:\\Users\\ksaff\\Release\\dist\\Tools\\pdfextract.exe");
#system('"C:\\Strawberry\\perl\\site\\bin\\pp" -o "C:\\Debug\\Creorga\\Tools\\pdfextract.exe" --module="XML::LibXML" pdfextract.pl');