X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/e73f7350574cb4e46db4a4d6ad5cdaa075806489..c2efdba2dfa10e76937e4bdf5a18e5483d0cddb0:/SL/Controller/BankTransaction.pm diff --git a/SL/Controller/BankTransaction.pm b/SL/Controller/BankTransaction.pm index b81b1f673..2bf4a9c51 100644 --- a/SL/Controller/BankTransaction.pm +++ b/SL/Controller/BankTransaction.pm @@ -101,7 +101,6 @@ sub action_list { @where ], ); - # credit notes have a negative amount, treat differently my $all_open_ar_invoices = SL::DB::Manager::Invoice ->get_all(where => [ or => [ amount => { gt => \'paid' }, and => [ type => 'credit_note', @@ -126,7 +125,7 @@ sub action_list { $open_invoice->{realamount} = $::form->format_amount(\%::myconfig,$open_invoice->amount,2); $open_invoice->{skonto_type} = 'without_skonto'; foreach ( @{$all_open_sepa_export_items}) { - if ( $_->ap_id == $open_invoice->id || $_->ar_id == $open_invoice->id ) { + if (($_->ap_id && $_->ap_id == $open_invoice->id) || ($_->ar_id && $_->ar_id == $open_invoice->id)) { my $factor = ($_->ar_id == $open_invoice->id ? 1 : -1); #$main::lxdebug->message(LXDebug->DEBUG2(),"sepa_exitem=".$_->id." for invoice ".$open_invoice->id." factor=".$factor); $open_invoice->{realamount} = $::form->format_amount(\%::myconfig,$open_invoice->amount*$factor,2); @@ -216,11 +215,16 @@ sub action_list { : abs(@{ $_->{proposals} }[0]->amount + $_->amount) < 0.01) } @{ $bank_transactions }; - push @proposals, @otherproposals; + push @proposals, @otherproposals; # sort bank transaction proposals by quality (score) of proposal - $bank_transactions = [ sort { $a->{agreement} <=> $b->{agreement} } @{ $bank_transactions } ] if $::form->{sort_by} eq 'proposal' and $::form->{sort_dir} == 1; - $bank_transactions = [ sort { $b->{agreement} <=> $a->{agreement} } @{ $bank_transactions } ] if $::form->{sort_by} eq 'proposal' and $::form->{sort_dir} == 0; + if ($::form->{sort_by} && $::form->{sort_by} eq 'proposal') { + if ($::form->{sort_dir}) { + $bank_transactions = [ sort { $a->{agreement} <=> $b->{agreement} } @{ $bank_transactions } ]; + } else { + $bank_transactions = [ sort { $b->{agreement} <=> $a->{agreement} } @{ $bank_transactions } ]; + } + } # for testing with t/bank/banktransaction.t : if ( $::form->{dont_render_for_test} ) { @@ -653,7 +657,7 @@ sub save_single_bank_transaction { # so $amount_of_transaction is negative but needs positive $amount_of_transaction *= -1; - } elsif (!$invoice->is_sales && $invoice->invoice_type eq 'ap_transaction' ) { + } elsif (!$invoice->is_sales && $invoice->invoice_type =~ m/ap_transaction|purchase_invoice/) { # $invoice->open_amount may be negative for ap_transaction but may be positiv for negativ ap_transaction # if $invoice->open_amount is negative $bank_transaction->amount is positve # if $invoice->open_amount is positive $bank_transaction->amount is negative