]> wagnertech.de Git - mfinanz.git/blobdiff - SL/Controller/BankTransaction.pm
Kontoauszug rückgängig machen: Nur bei aktuellem Beleg arap.paid neu setzen
[mfinanz.git] / SL / Controller / BankTransaction.pm
index a937451c491577ebae60a4b93429658cad7582ea..98639ff0f80cca6be2ed9fd1b42dd71396362d03 100644 (file)
@@ -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' ]);
@@ -970,6 +974,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,
   );
 }