X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/b90ff6b18df92c98b1b875d14835d1fdf9ff339a..f217d072d76183bc07723dcc29503b732bd2022d:/SL/GL.pm diff --git a/SL/GL.pm b/SL/GL.pm index 46c2d49b1..57aa145a1 100644 --- a/SL/GL.pm +++ b/SL/GL.pm @@ -46,6 +46,8 @@ use SL::DATEV qw(:CONSTANTS); use SL::DBUtils; use SL::DB::Chart; use SL::DB::Draft; +use SL::DB::ValidityToken; +use SL::DB::GLTransaction; use SL::Util qw(trim); use SL::DB; @@ -77,6 +79,16 @@ sub _post_transaction { my ($self, $myconfig, $form) = @_; $main::lxdebug->enter_sub(); + my $validity_token; + if (!$form->{id}) { + $validity_token = SL::DB::Manager::ValidityToken->fetch_valid_token( + scope => SL::DB::ValidityToken::SCOPE_GL_TRANSACTION_POST(), + token => $form->{form_validity_token}, + ); + + die $::locale->text('The form is not valid anymore.') if !$validity_token; + } + my ($debit, $credit) = (0, 0); my $project_id; @@ -213,6 +225,9 @@ sub _post_transaction { } } + $validity_token->delete if $validity_token; + delete $form->{form_validity_token}; + return 1; } @@ -783,6 +798,19 @@ sub _storno { do_query($form, $dbh, $query, (values %$row)); } + if ($form->{workflow_email_journal_id}) { + my $ar_transaction_storno = SL::DB::GLTransaction->new(id => $new_id)->load; + my $email_journal = SL::DB::EmailJournal->new( + id => delete $form->{workflow_email_journal_id} + )->load; + $email_journal->link_to_record_with_attachment( + $ar_transaction_storno, + delete $form->{workflow_email_attachment_id} + ); + $form->{callback} = delete $form->{workflow_email_callback}; + } + + $form->{storno_id} = $id; return 1; }