X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fdatev.pl;h=4ada35f109624f47a852aec4d615a04fac42daad;hb=0e079eba45bcb834792660358b2e86dcb70e494e;hp=9944abfba13e699fe72a2e19c69aaf32c5402082;hpb=a14a3ff56b00e22c39a2cfb0e465f8c7764a4cd4;p=kivitendo-erp.git diff --git a/bin/mozilla/datev.pl b/bin/mozilla/datev.pl index 9944abfba..4ada35f10 100644 --- a/bin/mozilla/datev.pl +++ b/bin/mozilla/datev.pl @@ -31,14 +31,24 @@ use Archive::Zip qw(:ERROR_CODES :CONSTANTS); use SL::Common; use SL::DATEV; +use strict; + 1; # end of main -sub continue { &{ $form->{nextsub} } } +require "bin/mozilla/common.pl"; + +sub continue { call_sub($main::form->{"nextsub"}); } sub export { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; + + $main::auth->assert('datev_export'); $form->{title} = $locale->text("DATEX - Export Assistent"); @@ -62,45 +72,45 @@ sub export { - - - - - - - - - - - - - - - - - - - - - - - | . # OBE-Export noch nicht implementiert! + + + + + + + + + + + + + + + + + + + + + + + | . # OBE-Export noch nicht implementiert! qq| - - - + + + - - +
| . $locale->text("Beraternummer") . qq|| . $locale->text("DFV-Kennzeichen") . qq|
| . $locale->text("Beratername") . qq|| . $locale->text("Password") . qq|
| . $locale->text("Mandantennummer") . qq|| . $locale->text("Datenträgernummer") . qq|
| . $locale->text("Kontonummernerweiterung (KNE)") . qq|
| . $locale->text("Beraternummer") . qq|| . $locale->text("DFV-Kennzeichen") . qq|
| . $locale->text("Beratername") . qq|| . $locale->text("Password") . qq|
| . $locale->text("Mandantennummer") . qq|| . $locale->text("Medium Number") . qq|
| . $locale->text("Kontonummernerweiterung (KNE)") . qq| | . $locale->text("Abrechnungsnummer") . qq|
| . $locale->text("Abrechnungsnummer") . qq|
| . $locale->text("Export Buchungsdaten") . qq| | + | . $locale->text("Export Stammdaten") . qq|
@@ -111,10 +121,6 @@ sub export { -{path}> -{login}> -{password}> -
@@ -123,22 +129,32 @@ sub export { |; - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub export2 { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + + $main::auth->assert('datev_export'); if ($form->{exporttype} == 0) { &export_bewegungsdaten(); } else { &export_stammdaten(); } - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub export_bewegungsdaten { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; + + $main::auth->assert('datev_export'); $form->{title} = $locale->text("DATEX - Export Assistent"); @@ -198,17 +214,17 @@ sub export_bewegungsdaten { - + - + - + @@ -217,10 +233,10 @@ sub export_bewegungsdaten { . $locale->text('Datum von') . qq| - + - +
 | . $locale->text('Monat') . qq|
 | . $locale->text('Quartal') . qq|
| . $locale->text('bis') . qq|| . $locale->text('bis') . qq|
@@ -246,10 +262,6 @@ sub export_bewegungsdaten { -{path}> -{login}> -{password}> -
@@ -259,11 +271,16 @@ sub export_bewegungsdaten { |; - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub export_stammdaten { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my $locale = $main::locale; + + $main::auth->assert('datev_export'); $form->{title} = $locale->text("DATEX - Export Assistent"); @@ -285,11 +302,11 @@ sub export_stammdaten { - + - +
| . $locale->text('Von Konto: ') . qq|| . $locale->text('Von Konto: ') . qq|
| . $locale->text('Bis Konto: ') . qq|| . $locale->text('Bis Konto: ') . qq|
@@ -312,10 +329,6 @@ sub export_stammdaten { -{path}> -{login}> -{password}> -
@@ -325,62 +338,86 @@ sub export_stammdaten { |; - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub export3 { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; + + $main::auth->assert('datev_export'); + + DATEV::clean_temporary_directories(); DATEV->save_datev_stamm(\%myconfig, \%$form); - my $link = $form->{"script"} . "?"; - map({ $link .= "${_}=" . $form->escape($form->{$_}) . "&"; } qw(path login password)); - $link .= "action=download"; + my $link = "datev.pl?action=download&download_token="; if ($form->{kne}) { - my @filenames = DATEV->kne_export(\%myconfig, \%$form); - if (@filenames) { - print(qq|
| . $locale->text('KNE-Export erfolgreich!') . qq|
|); - $link .= "&filenames=" . $form->escape(join(":", @filenames)); - print(qq|
Download|); + my $result = DATEV->kne_export(\%myconfig, \%$form); + if ($result && @{ $result->{filenames} }) { + $link .= Q($result->{download_token}); + + print(qq|
| . $locale->text('KNE-Export erfolgreich!') . qq|

Download|); + + print $form->parse_html_template('datev/net_gross_difference') if @{ $form->{net_gross_differences} }; + } else { $form->error("KNE-Export schlug fehl."); } } else { - my @filenames = DATEV->obe_export(\%myconfig, \%$form); - if (@filenames) { - print(qq|
| . $locale->text('OBE-Export erfolgreich!') . qq|
|); - $link .= "&filenames=" . $form->escape(join(":", @filenames)); - print(qq|
Download|); - } else { - $form->error("OBE-Export schlug fehl."); - } + # OBE-Export nicht implementiert. + + # my @filenames = DATEV->obe_export(\%myconfig, \%$form); + # if (@filenames) { + # print(qq|
| . $locale->text('OBE-Export erfolgreich!') . qq|
|); + # $link .= "&filenames=" . $form->escape(join(":", @filenames)); + # print(qq|
Download|); + # } else { + # $form->error("OBE-Export schlug fehl."); + # } } print(""); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub download { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my $locale = $main::locale; + + $main::auth->assert('datev_export'); my $tmp_name = Common->tmpname(); - my $zip_name = strftime("lx-office-datev-export-%Y%m%d.zip", - localtime(time())); + my $zip_name = strftime("lx-office-datev-export-%Y%m%d.zip", localtime(time())); my $cwd = getcwd(); - chdir("users") || die("chdir users"); - my @filenames = split(/:/, $form->{"filenames"}); - map({ s|.*/||; $form->error("Eine der KNE-Exportdateien wurde nicht " . - "gefunden. Wurde der Export bereits " . - "durchgeführt?") unless (-f $_); } - @filenames); + my $path = DATEV::get_path_for_download_token($form->{download_token}); + if (!$path) { + $form->error($locale->text("Your download does not exist anymore. Please re-run the DATEV export assistant.")); + } + + chdir($path) || die("chdir $path"); + + my @filenames = glob "*"; + + if (!@filenames) { + chdir($cwd); + DATEV::clean_temporary_directories(); + $form->error($locale->text("Your download does not exist anymore. Please re-run the DATEV export assistant.")); + } my $zip = Archive::Zip->new(); - map({ $zip->addFile($_); } @filenames); + map { $zip->addFile($_); } @filenames; $zip->writeToFileNamed($tmp_name); + chdir($cwd); open(IN, $tmp_name) || die("open $tmp_name"); @@ -393,5 +430,7 @@ sub download { unlink($tmp_name); - $lxdebug->leave_sub(); + DATEV::clean_temporary_directories(); + + $main::lxdebug->leave_sub(); }