X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDATEV.pm;h=e0a0435eb31f0ad4da4dca59d32dd0702bc43a29;hb=f58a783a6f211f7bf6a293e95afa8868f695e7c9;hp=e48b4db2fac97ca25cb4e9c7a30a278e81fe3b38;hpb=5d1cdfab06b2c2db1cf4b8aa8d7c5b9b628f70f7;p=kivitendo-erp.git diff --git a/SL/DATEV.pm b/SL/DATEV.pm index e48b4db2f..e0a0435eb 100644 --- a/SL/DATEV.pm +++ b/SL/DATEV.pm @@ -256,10 +256,16 @@ sub get_transactions { $sth->execute || $form->dberror($query); $i = 0; $g = 0; + my $counter = 0; @splits; while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { $count = 0; $firstrun = 1; + $counter++; + if (($counter % 500) == 0) { + print("$counter "); + } + $count += $ref->{amount}; push @{$i}, $ref; while (abs($count) > 0.01 || $firstrun) { @@ -308,16 +314,12 @@ sub get_transactions { $blubb{'amount'} = $form->round_amount(($i->[$j]->{'amount'} * $test * -1), 2); - #print(STDERR $test, " Taxrate\n\n"); $blubb{'umsatz'} = abs($form->round_amount(($i->[$j]->{'amount'} * $test), 2)) * $ml; $i->[$j]->{'umsatz'} = abs($form->round_amount(($i->[$j]->{'amount'} * $test), 2)) * $ml; - #print(STDERR $i->[$j]->{'umsatz'}, " Steuer Umsatz\n"); - #print(STDERR $i->[$j]->{'amount'}, " Steuer Betrag\n"); - #print(STDERR $blubb{'umsatz'}, " Umsatz NOTSPLIT\n"); push @{ $splits[$g] }, \%blubb; push @{ $splits[$g] }, $i->[$j]; push @{ $form->{DATEV} }, \@{ $splits[$g] }; @@ -327,8 +329,7 @@ sub get_transactions { } } if (abs($absumsatz) > 0.01) { - print(STDERR $absumsatz, "ABSAUMSATZ\n"); - $form->error("Datev-Export fehlgeschlagen!"); + $form->error("Datev-Export fehlgeschlagen! Bei Transaktion $i->[0]->{trans_id}\n"); } } else { push @{ $form->{DATEV} }, \@{$i}; @@ -588,12 +589,20 @@ sub kne_buchungsexport { my @ed_versionsets; my $fileno = 0; + $form->header; + print qq| + + Export in Bearbeitung
+ Buchungssätze verarbeitet: +|; + $fromto = &get_dates($form->{zeitraum}, $form->{monat}, $form->{quartal}, $form->{transdatefrom}, $form->{transdateto}); &get_transactions($myconfig, $form, $fromto); - + my $counter = 0; + print qq|
2. Durchlauf:|; while (scalar(@{ $form->{DATEV} })) { my $blockcount = 1; my $remaining_bytes = 256; @@ -607,8 +616,13 @@ sub kne_buchungsexport { $remaining_bytes -= length($header); while (scalar(@{ $form->{DATEV} }) > 0) { - $transaction = shift @{ $form->{DATEV} }; - $trans_lines = scalar(@{$transaction}); + $transaction = shift @{ $form->{DATEV} }; + $trans_lines = scalar(@{$transaction}); + $counter++; + if (($counter % 500) == 0) { + print("$counter "); + } + $umsatz = 0; $gegenkonto = ""; $konto = ""; @@ -629,8 +643,14 @@ sub kne_buchungsexport { 'ß' => 'sz'); for (my $i = 0; $i < $trans_lines; $i++) { - if (abs($transaction->[$i]->{'umsatz'}) > abs($umsatz)) { - $umsatz = $transaction->[$i]->{'umsatz'}; + if ($trans_lines == 2) { + if (abs($transaction->[$i]->{'amount'}) > abs($umsatz)) { + $umsatz = $transaction->[$i]->{'amount'}; + } + } else { + if (abs($transaction->[$i]->{'umsatz'}) > abs($umsatz)) { + $umsatz = $transaction->[$i]->{'umsatz'}; + } } if ($transaction->[$i]->{'datevautomatik'}) { $datevautomatik = 1; @@ -809,6 +829,9 @@ sub kne_buchungsexport { print(EV $ed_versionset[$file]); } close(EV); + print qq|
Done.
+ +|; ### $main::lxdebug->leave_sub(); } @@ -842,8 +865,7 @@ sub kne_stammdatenexport { qq|SELECT c.accno, c.description FROM chart c WHERE c.accno >=| . $dbh->quote($form->{accnofrom}) . qq| AND c.accno <= | - . $dbh->quote($form->{accnoto}) - . qq| ORDER BY c.accno|; + . $dbh->quote($form->{accnoto}) . qq| ORDER BY c.accno|; $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query);