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;
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;
}
# 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;
}