$terms = $source->customer->payment_terms if !defined $terms && $source->customer;
my %args = ( map({ ( $_ => $source->$_ ) } qw(customer_id taxincluded shippingpoint shipvia notes intnotes salesman_id cusordnumber ordnumber department_id
- cp_id language_id taxzone_id tax_point globalproject_id transaction_description currency_id delivery_term_id), @columns),
+ cp_id language_id taxzone_id tax_point globalproject_id transaction_description currency_id delivery_term_id
+ billing_address_id), @columns),
transdate => $params{transdate} // DateTime->today_local,
gldate => DateTime->today_local,
duedate => $terms ? $terms->calc_date(reference_date => DateTime->today_local) : DateTime->today_local,
my ($self) = @_;
return 'ar_transaction' if !$self->invoice;
- return 'credit_note' if $self->type eq 'credit_note' && $self->amount < 0 && !$self->storno;
+ # stornoed credit_notes are still credit notes and not invoices
+ return 'credit_note' if $self->type eq 'credit_note' && $self->amount < 0;
return 'invoice_storno' if $self->type ne 'credit_note' && $self->amount < 0 && $self->storno;
return 'credit_note_storno' if $self->type eq 'credit_note' && $self->amount > 0 && $self->storno;
return 'invoice';