sub items { goto &invoiceitems; }
+sub items_sorted {
+ my ($self) = @_;
+
+ return [ sort {$a->id <=> $b->id } @{ $self->items } ];
+}
+
sub is_sales {
# For compatibility with Order, DeliveryOrder
croak 'not an accessor' if @_ > 1;
my $terms = $source->can('payment_id') && $source->payment_id ? $source->payment_terms->terms_netto : 0;
- my %args = ( map({ ( $_ => $source->$_ ) } qw(customer_id taxincluded shippingpoint shipvia notes intnotes curr salesman_id cusordnumber ordnumber quonumber
+ my %args = ( map({ ( $_ => $source->$_ ) } qw(customer_id taxincluded shippingpoint shipvia notes intnotes salesman_id cusordnumber ordnumber quonumber
department_id cp_id language_id payment_id delivery_customer_id delivery_vendor_id taxzone_id shipto_id
- globalproject_id transaction_description)),
+ globalproject_id transaction_description currency_id)),
transdate => DateTime->today_local,
gldate => DateTime->today_local,
duedate => DateTime->today_local->add(days => $terms * 1),
base_qty subtotal longdescription lastcost price_factor_id)),
deliverydate => $source_item->reqdate,
fxsellprice => $source_item->sellprice,);
- } @{ $source->items };
+ } @{ $source->items_sorted };
$invoice->invoiceitems(\@items);