X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FAP.pm;h=eda1e71f41227fd0c43736038888e40b4534b0e7;hb=384c215cb96a4d2ea8e1ae13e4afd06d9907a341;hp=3c29ca85d89731f7f5dfcaeb9b0c6dee2df58ebf;hpb=b1b4e6878345cc1a8b590dd7362e4a50048f2417;p=kivitendo-erp.git diff --git a/SL/AP.pm b/SL/AP.pm index 3c29ca85d..eda1e71f4 100644 --- a/SL/AP.pm +++ b/SL/AP.pm @@ -34,6 +34,7 @@ package AP; +use SL::DATEV qw(:CONSTANTS); use SL::DBUtils; use SL::IO; use SL::MoreCommon; @@ -353,6 +354,27 @@ sub post_transaction { IO->set_datepaid(table => 'ap', id => $form->{id}, dbh => $dbh); + # safety check datev export + if ($::lx_office_conf{datev_check}{check_on_ap_transaction}) { + my $transdate = $::form->{transdate} ? DateTime->from_lxoffice($::form->{transdate}) : undef; + $transdate ||= DateTime->today; + + my $datev = SL::DATEV->new( + exporttype => DATEV_ET_BUCHUNGEN, + format => DATEV_FORMAT_KNE, + dbh => $dbh, + from => $transdate, + to => $transdate, + ); + + $datev->export; + + if ($datev->errors) { + $dbh->rollback; + die join "\n", $::locale->text('DATEV check returned errors:'), $datev->errors; + } + } + if (!$provided_dbh) { $dbh->commit(); $dbh->disconnect();