my ($notsplitindex);
my @errors = ();
+ $form->{net_gross_differences} = [];
+ $form->{sum_net_gross_differences} = 0;
+
$fromto =~ s/transdate/ac\.transdate/g;
my $taxkeys = Taxkeys->new();
$idx++;
}
- if (abs($absumsatz) >= 0.01) {
- push @errors, "Datev-Export fehlgeschlagen! Bei Transaktion $trans->[0]->{trans_id} ($absumsatz, Rundungsfehler $rounding_error)\n";
+ $absumsatz = $form->round_amount($absumsatz, 2);
+ if (abs($absumsatz) >= (0.01 * (1 + scalar @taxed))) {
+ push @errors, "Datev-Export fehlgeschlagen! Bei Transaktion $trans->[0]->{trans_id} ($absumsatz)\n";
+
+ } elsif (abs($absumsatz) >= 0.01) {
+ push @{ $form->{net_gross_differences} }, $absumsatz;
+ $form->{sum_net_gross_differences} += $absumsatz;
}
}
print(qq|<br><b>| . $locale->text('KNE-Export erfolgreich!') . qq|</b><br><br><a href="$link">Download</a>|);
+ print $form->parse_html_template('datev/net_gross_difference') if @{ $form->{net_gross_differences} };
+
} else {
$form->error("KNE-Export schlug fehl.");
}
--- /dev/null
+[% USE HTML %][% USE LxERP %]
+
+<p>
+ <b>Hinweis:</b>
+</p>
+
+<p>
+ Lx-Office speichert Buchungsdaten als aggregierte Nettowerte.
+
+ Das DATEV-Dateiformat hingegen erwartet aufgeteilte Buchungssätze mit
+ Bruttowerten.
+
+ Es ist deshalb technisch nicht immer möglich, aus den vorhandenen
+ aggregierten Nettowerten solche Bruttowerte zu errechnen, sodass für
+ einen Beleg betrachtet die von Lx-Office angezeigten und die in den
+ DATEV-Export geschriebenen Bruttowerte exakt übereinstimmen.
+
+ Abweichungen im Cent-Bereich sind in beide Richtungen möglich (Brutto
+ Lx-Office ist größer als Brutto DATEV und umgekehrt), werden aber von
+ den Steuerbehörden anstandslos akzeptiert.
+</p>
+
+<p>
+ In dem gerade durchgeführten Export gab es [% net_gross_differences.size %]
+ solcher Fälle. Die Summe aller Abweichungen beläuft sich auf
+ [% LxERP.format_amount(sum_net_gross_differences, 2) %].
+</p>
--- /dev/null
+[% USE HTML %][% USE LxERP %]
+
+<p>
+ <b>Hinweis:</b>
+</p>
+
+<p>
+ Lx-Office speichert Buchungsdaten als aggregierte Nettowerte.
+
+ Das DATEV-Dateiformat hingegen erwartet aufgeteilte Buchungssätze mit
+ Bruttowerten.
+
+ Es ist deshalb technisch nicht immer möglich, aus den vorhandenen
+ aggregierten Nettowerten solche Bruttowerte zu errechnen, sodass für
+ einen Beleg betrachtet die von Lx-Office angezeigten und die in den
+ DATEV-Export geschriebenen Bruttowerte exakt übereinstimmen.
+
+ Abweichungen im Cent-Bereich sind in beide Richtungen möglich (Brutto
+ Lx-Office ist größer als Brutto DATEV und umgekehrt), werden aber von
+ den Steuerbehörden anstandslos akzeptiert.
+</p>
+
+<p>
+ In dem gerade durchgeführten Export gab es [% net_gross_differences.size %]
+ solcher Fälle. Die Summe aller Abweichungen beläuft sich auf
+ [% LxERP.format_amount(sum_net_gross_differences, 2) %].
+</p>