]> wagnertech.de Git - mfinanz.git/blobdiff - SL/Controller/BankTransaction.pm
Auth: Unterstützung für multiple Authentifizierungsbackends
[mfinanz.git] / SL / Controller / BankTransaction.pm
index a937451c491577ebae60a4b93429658cad7582ea..844dad521ff3ad4c2e207fe3e89301e610001f0e 100644 (file)
@@ -616,6 +616,9 @@ sub save_single_bank_transaction {
       my $memo   = ($data{memos}   // [])->[$n_invoices];
 
       $n_invoices++ ;
       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 {
       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 = ?
         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' ]);
       }
       # 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;
       $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;
 
 
       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.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,
   );
 }
 
   );
 }