X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FController%2FBankTransaction.pm;h=7fa25d7b2ece8f901e6ea01518d2b7d344092482;hb=6f90b1ba5d1301194ad12591a000794acd89449b;hp=00b4ff65f4e7cd6ee8aded88529714e340145b1d;hpb=0f2a7ae0c71f82f5945aac10100e0d6e866f90a3;p=kivitendo-erp.git diff --git a/SL/Controller/BankTransaction.pm b/SL/Controller/BankTransaction.pm index 00b4ff65f..7fa25d7b2 100644 --- a/SL/Controller/BankTransaction.pm +++ b/SL/Controller/BankTransaction.pm @@ -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);