X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/822f5cf7db806f963758849e1e944340a9233a0d..48c71a4b51f5359a7ab7e9bc51280baf9bc9b9b2:/SL/Controller/BankTransaction.pm diff --git a/SL/Controller/BankTransaction.pm b/SL/Controller/BankTransaction.pm index a937451c4..844dad521 100644 --- a/SL/Controller/BankTransaction.pm +++ b/SL/Controller/BankTransaction.pm @@ -616,6 +616,9 @@ sub save_single_bank_transaction { my $memo = ($data{memos} // [])->[$n_invoices]; $n_invoices++ ; + # safety check invoice open + croak("Invoice closed. Cannot proceed.") unless ($invoice->open_amount); + if ( ($payment_sent && $bank_transaction->not_assigned_amount >= 0) || ($payment_received && $bank_transaction->not_assigned_amount <= 0)) { return { @@ -788,9 +791,10 @@ sub action_unlink_bank_transaction { my $query = qq|UPDATE $type SET paid = (SELECT COALESCE(abs(sum(amount)),0) FROM acc_trans WHERE trans_id = ? - AND chart_link ilike '%paid%')|; + AND chart_link ilike '%paid%') + WHERE id = ?|; - die if (do_query($::form, $bank_transaction->db->dbh, $query, $trans_id) == -1); + die if (do_query($::form, $bank_transaction->db->dbh, $query, $trans_id, $trans_id) == -1); } # 4. and delete all (if any) record links my $rl = SL::DB::Manager::RecordLink->delete_all(where => [ from_id => $bt_id, from_table => 'bank_transactions' ]); @@ -799,6 +803,14 @@ sub action_unlink_bank_transaction { $bank_transaction->invoice_amount(0); $bank_transaction->cleared(0); $bank_transaction->save; + # 6. and add a log entry in history_erp + SL::DB::History->new( + trans_id => $bank_transaction->id, + snumbers => 'bank_transaction_unlink_' . $bank_transaction->id, + employee_id => SL::DB::Manager::Employee->current->id, + what_done => 'bank_transaction', + addition => 'UNLINKED', + )->save(); 1; @@ -970,6 +982,7 @@ sub load_gl_record_template_url { 'form_defaults.callback' => $self->callback, 'form_defaults.bt_id' => $self->transaction->id, 'form_defaults.bt_chart_id' => $self->transaction->local_bank_account->chart->id, + 'form_defaults.description' => $self->transaction->purpose, ); }