X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/0f2a7ae0c71f82f5945aac10100e0d6e866f90a3..3bed12835acd27f26ff501eb46cd741135cf24f8:/SL/Controller/BankTransaction.pm 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);