X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FController%2FBankTransaction.pm;h=77f5b963ec6187d4ed001b5339d9abf0cbb1f39d;hb=f9a93e326337ed219de49f575c02e5a8cb36a1b6;hp=8b9ee207c808c36c41d274e8306281adc7fc0900;hpb=aa949f278f7a5503a94739662cd1a43408b5511d;p=kivitendo-erp.git diff --git a/SL/Controller/BankTransaction.pm b/SL/Controller/BankTransaction.pm index 8b9ee207c..77f5b963e 100644 --- a/SL/Controller/BankTransaction.pm +++ b/SL/Controller/BankTransaction.pm @@ -226,7 +226,9 @@ sub action_ajax_payment_suggestion { my $html; $html .= SL::Presenter->input_tag('invoice_ids.' . $::form->{bt_id} . '[]', $::form->{prop_id} , type => 'hidden'); - $html .= SL::Presenter->escape( $invoice->invnumber ); + # better in template code - but how to ajax this + $html .= SL::Presenter->escape(t8('Invno.') . ': ' . $invoice->invnumber . ' '); + $html .= SL::Presenter->escape(t8('Amount') . ': ' . $::form->format_amount(\%::myconfig, $invoice->open_amount, 2) . ' '); $html .= SL::Presenter->select_tag('invoice_skontos.' . $::form->{bt_id} . '[]', \@select_options, value_key => 'payment_type', title_key => 'display' ) if @select_options; @@ -248,6 +250,7 @@ sub action_filter_drafts { foreach my $draft ( @{ $drafts } ) { my $draft_as_object = YAML::Load($draft->form); + next unless $draft_as_object->{vendor_id}; # we cannot filter for vendor name, if this is a gl draft my $vendor = SL::DB::Manager::Vendor->find_by(id => $draft_as_object->{vendor_id}); $draft->{vendor} = $vendor->name; $draft->{vendor_id} = $vendor->id; @@ -398,26 +401,27 @@ sub action_save_invoices { } # pay invoice or go to the next bank transaction if the amount is not sufficiently high if ($invoice->open_amount <= $amount_of_transaction) { - $invoice->pay_invoice(chart_id => $bank_transaction->local_bank_account->chart_id, - trans_id => $invoice->id, - amount => $invoice->open_amount, - payment_type => $payment_type, - transdate => $bank_transaction->transdate->to_kivitendo); + # first calculate new bank transaction amount ... if ($invoice->is_sales) { $amount_of_transaction -= $sign * $invoice->open_amount; $bank_transaction->invoice_amount($bank_transaction->invoice_amount + $invoice->open_amount); } else { - $amount_of_transaction += $sign * $invoice->open_amount if (!$invoice->is_sales); + $amount_of_transaction += $sign * $invoice->open_amount; $bank_transaction->invoice_amount($bank_transaction->invoice_amount - $invoice->open_amount); } + # ... and then pay the invoice + $invoice->pay_invoice(chart_id => $bank_transaction->local_bank_account->chart_id, + trans_id => $invoice->id, + amount => $invoice->open_amount, + payment_type => $payment_type, + transdate => $bank_transaction->transdate->to_kivitendo); } else { $invoice->pay_invoice(chart_id => $bank_transaction->local_bank_account->chart_id, trans_id => $invoice->id, amount => $amount_of_transaction, payment_type => $payment_type, transdate => $bank_transaction->transdate->to_kivitendo); - $bank_transaction->invoice_amount($bank_transaction->amount) if $invoice->is_sales; - $bank_transaction->invoice_amount($bank_transaction->amount) if !$invoice->is_sales; + $bank_transaction->invoice_amount($bank_transaction->amount); $amount_of_transaction = 0; }