use SL::DB::MetaSetup::DeliveryOrder;
use SL::DB::Manager::DeliveryOrder;
use SL::DB::Helper::AttrHTML;
+use SL::DB::Helper::AttrSorted;
use SL::DB::Helper::FlattenToForm;
use SL::DB::Helper::LinkedRecords;
use SL::DB::Helper::TransNumberGenerator;
__PACKAGE__->meta->initialize;
__PACKAGE__->attr_html('notes');
+__PACKAGE__->attr_sorted('items');
__PACKAGE__->before_save('_before_save_set_donumber');
sub items { goto &orderitems; }
sub add_items { goto &add_orderitems; }
-
-sub items_sorted {
- my ($self) = @_;
-
- return [ sort {$a->position <=> $b->position } @{ $self->items } ];
-}
+sub payment_terms { goto &payment; }
sub sales_order {
my $self = shift;
$item_parent_column = 'order';
}
- my $terms = $source->can('payment_id') && $source->payment_id ? $source->payment_terms->terms_netto : 0;
-
my %args = ( map({ ( $_ => $source->$_ ) } qw(cp_id currency_id customer_id cusordnumber department_id employee_id globalproject_id intnotes language_id notes
- ordnumber reqdate salesman_id shippingpoint shipvia taxincluded taxzone_id transaction_description vendor_id
+ ordnumber payment_id reqdate salesman_id shippingpoint shipvia taxincluded taxzone_id transaction_description vendor_id
)),
closed => 0,
is_sales => !!$source->customer_id,
delivered => 0,
- terms => $terms,
transdate => DateTime->today_local,
);
An alias for C<deliver_orer_items> for compatibility with other
sales/purchase models.
-=item C<items_sorted>
-
-Returns the delivery order items sorted by their ID (same order they
-appear in the frontend delivery order masks).
-
=item C<new_from $source, %params>
Creates a new C<SL::DB::DeliveryOrder> instance and copies as much