X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/cd8b56f2ec945264132d443ad8f412699d1a8a1b..d180d84e035a21291e2dc186b4430e3336998156:/SL/Helper/MT940.pm diff --git a/SL/Helper/MT940.pm b/SL/Helper/MT940.pm new file mode 100644 index 000000000..5c8865d02 --- /dev/null +++ b/SL/Helper/MT940.pm @@ -0,0 +1,31 @@ +package SL::Helper::MT940; + +use strict; + +sub convert_mt940_data { + my ($mt940_data) = @_; + + # takes the data from an uploaded mt940 file, converts it to csv via aqbanking and returns the converted data + # The uploaded file data is stored as a session file, just like the aqbanking settings file. + + my $import_filename = 'bank_transfer.940'; + my $sfile = SL::SessionFile->new($import_filename, mode => '>'); + $sfile->fh->print($mt940_data); + $sfile->fh->close; + + my $aqbin = $::lx_office_conf{applications}->{aqbanking}; + die "Can't find aqbanking-cli, please check your configuration file.\n" unless -f $aqbin; + my $cmd = "$aqbin --cfgdir=\"" . $sfile->get_path . "\" import --importer=\"swift\" --profile=\"SWIFT-MT940\" -f " . $sfile->get_path . "/$import_filename | $aqbin --cfgdir=\"" . $sfile->get_path . "\" listtrans --exporter=\"csv\" --profile=\"AqMoney2\" "; + + my $converted_data = '"empty";"local_bank_code";"local_account_number";"remote_bank_code";"remote_account_number";"transdate";"valutadate";"amount";"currency";"remote_name";"remote_name_1";"purpose";"purpose1";"purpose2";"purpose3";"purpose4";"purpose5";"purpose6";"purpose7";"purpose8";"purpose9";"purpose10";"purpose11"' . "\n"; + + open my $mt, "-|", "$cmd" || die "Problem with executing aqbanking\n"; + my $headerline = <$mt>; # discard original aqbanking header line + while (<$mt>) { + $converted_data .= $_; + }; + close $mt; + return $converted_data; +}; + +1;