- 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 currency_id delivery_term_id)),
+ my (@columns, @item_columns, $item_parent_id_column, $item_parent_column);
+
+ if (ref($source) eq 'SL::DB::Order') {
+ @columns = qw(quonumber payment_id delivery_customer_id delivery_vendor_id);
+ @item_columns = qw(subtotal);
+
+ $item_parent_id_column = 'trans_id';
+ $item_parent_column = 'order';
+
+ } else {
+ @columns = qw(donumber);
+
+ $item_parent_id_column = 'delivery_order_id';
+ $item_parent_column = 'delivery_order';
+ }
+
+ my %args = ( map({ ( $_ => $source->$_ ) } qw(customer_id taxincluded shippingpoint shipvia notes intnotes salesman_id cusordnumber ordnumber department_id
+ cp_id language_id taxzone_id shipto_id globalproject_id transaction_description currency_id delivery_term_id), @columns),