ActionBar: Verwendung im Pflichtenheft-Controller
[kivitendo-erp.git] / SL / Controller / BankTransaction.pm
index 00b4ff6..7fa25d7 100644 (file)
@@ -511,6 +511,9 @@ sub save_invoices {
       $count += scalar( @{$invoice_ids} );
     }
   }
+  foreach (@{ $self->problems }) {
+    $count-- if $_->{result} eq 'error';
+  }
   return $count;
 }
 
@@ -596,7 +599,7 @@ sub save_single_bank_transaction {
 
     if (   $payment_sent
         && any {    ( $_->is_sales && ($_->amount > 0))
-                 || (!$_->is_sales && ($_->amount < 0))
+                 || (!$_->is_sales && ($_->amount < 0) && ($_->invoice_type eq 'purchase_invoice'))
                } @{ $data{invoices} }) {
       return {
         %data,
@@ -659,7 +662,8 @@ sub save_single_bank_transaction {
                               source       => $source,
                               memo         => $memo,
                               transdate    => $bank_transaction->transdate->to_kivitendo);
-      } elsif ( $invoice->is_sales && $invoice->invoice_type eq 'credit_note' ) {
+      } elsif (( $invoice->is_sales && $invoice->invoice_type eq 'credit_note' ) ||
+               (!$invoice->is_sales && $invoice->invoice_type eq 'ap_transaction' )) {
         # no check for overpayment/multiple payments
         $invoice->pay_invoice(chart_id     => $bank_transaction->local_bank_account->chart_id,
                               trans_id     => $invoice->id,
@@ -730,7 +734,8 @@ sub save_single_bank_transaction {
       };
     };
 
-    die if $error;
+    # Rollback Fehler nicht weiterreichen
+    # die if $error;
   });
 
   return grep { $_ } ($error, @warnings);