} else {
# use the whole amount of the bank transaction for the invoice, overpay the invoice if necessary
- if ( $invoice->is_sales && $invoice->invoice_type eq 'credit_note' ) {
+ # this catches credit_notes and negative sales invoices
+ if ( $invoice->is_sales && $invoice->amount < 0 ) {
# $invoice->open_amount is negative for credit_notes
# $bank_transaction->amount is negative for outgoing transactions
# so $amount_of_transaction is negative but needs positive
my ($self, $template) = @_;
return $self->url_for(
- controller => 'ap.pl',
- action => 'load_record_template',
- id => $template->id,
- 'form_defaults.amount_1' => $::form->format_amount(\%::myconfig, -1 * $self->transaction->amount, 2),
- 'form_defaults.transdate' => $self->transaction->transdate_as_date,
- 'form_defaults.duedate' => $self->transaction->transdate_as_date,
- 'form_defaults.datepaid_1' => $self->transaction->transdate_as_date,
- 'form_defaults.paid_1' => $::form->format_amount(\%::myconfig, -1 * $self->transaction->amount, 2),
- 'form_defaults.currency' => $self->transaction->currency->name,
- 'form_defaults.AP_paid_1' => $self->transaction->local_bank_account->chart->accno,
- 'form_defaults.callback' => $self->callback,
+ controller => 'ap.pl',
+ action => 'load_record_template',
+ id => $template->id,
+ 'form_defaults.amount_1' => $::form->format_amount(\%::myconfig, -1 * $self->transaction->amount, 2),
+ 'form_defaults.transdate' => $self->transaction->transdate_as_date,
+ 'form_defaults.duedate' => $self->transaction->transdate_as_date,
+ 'form_defaults.no_payment_bookings' => 1,
+ 'form_defaults.paid_1_suggestion' => $::form->format_amount(\%::myconfig, -1 * $self->transaction->amount, 2),
+ 'form_defaults.AP_paid_1_suggestion' => $self->transaction->local_bank_account->chart->accno,
+ 'form_defaults.callback' => $self->callback,
);
}