X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FGL.pm;h=bf9e1c96c164fa9236d91f2626ba04de9671a29b;hb=67ca0f93194b1d0c8f0a3d090c6c1f604670837d;hp=f538bc3590f191957ea286c2d402914c9145cbe8;hpb=e293009f4e1d70e547a479e956fd1733c24b1441;p=kivitendo-erp.git diff --git a/SL/GL.pm b/SL/GL.pm index f538bc359..bf9e1c96c 100644 --- a/SL/GL.pm +++ b/SL/GL.pm @@ -39,6 +39,7 @@ package GL; use Data::Dumper; +use SL::DATEV qw(:CONSTANTS); use SL::DBUtils; use strict; @@ -50,9 +51,8 @@ sub delete_transaction { # connect to database my $dbh = $form->dbconnect_noauto($myconfig); - my @values = (conv_i($form->{id})); - do_query($form, $dbh, qq|DELETE FROM acc_trans WHERE trans_id = ?|, @values); - do_query($form, $dbh, qq|DELETE FROM gl WHERE id = ?|, @values); + # acc_trans entries are deleted by database triggers. + do_query($form, $dbh, qq|DELETE FROM gl WHERE id = ?|, conv_i($form->{id})); # commit and redirect my $rc = $dbh->commit; @@ -109,7 +109,6 @@ sub post_transaction { } my ($null, $department_id) = split(/--/, $form->{department}); - $department_id *= 1; $form->{ob_transaction} *= 1; $form->{cb_transaction} *= 1; @@ -122,7 +121,7 @@ sub post_transaction { WHERE id = ?|; @values = ($form->{reference}, $form->{description}, $form->{notes}, - conv_date($form->{transdate}), $department_id, $form->{taxincluded} ? 't' : 'f', + conv_date($form->{transdate}), conv_i($department_id), $form->{taxincluded} ? 't' : 'f', $form->{storno} ? 't' : 'f', conv_i($form->{storno_id}), $form->{ob_transaction} ? 't' : 'f', $form->{cb_transaction} ? 't' : 'f', conv_i($form->{id})); do_query($form, $dbh, $query, @values); @@ -184,6 +183,27 @@ sub post_transaction { do_query($form, $dbh, qq|UPDATE gl SET storno = 't' WHERE id = ?|, conv_i($form->{storno_id})); } + # safety check datev export + if ($::instance_conf->get_datev_check_on_gl_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; + } + } + # commit and redirect my $rc = $dbh->commit; $dbh->disconnect;