itmes_sorted liefert immer eine Array-Referenz ...
[kivitendo-erp.git] / SL / DB / DeliveryOrder.pm
index b65bf3e..6bf6023 100644 (file)
@@ -2,6 +2,8 @@ package SL::DB::DeliveryOrder;
 
 use strict;
 
+use Carp;
+
 use SL::DB::MetaSetup::DeliveryOrder;
 use SL::DB::Manager::DeliveryOrder;
 use SL::DB::Helper::LinkedRecords;
@@ -12,17 +14,9 @@ use List::Util qw(first);
 
 __PACKAGE__->meta->add_relationship(orderitems => { type         => 'one to many',
                                                     class        => 'SL::DB::DeliveryOrderItem',
-                                                    column_map   => { id => 'trans_id' },
+                                                    column_map   => { id => 'delivery_order_id' },
                                                     manager_args => { with_objects => [ 'part' ] }
                                                   },
-                                    shipto => { type       => 'one to one',
-                                                class      => 'SL::DB::Shipto',
-                                                column_map => { shipto_id => 'shipto_id' },
-                                              },
-                                    department => { type       => 'one to one',
-                                                    class      => 'SL::DB::Department',
-                                                    column_map => { department_id => 'id' },
-                                                  },
                                    );
 
 __PACKAGE__->meta->initialize;
@@ -31,6 +25,12 @@ __PACKAGE__->meta->initialize;
 
 sub items { goto &orderitems; }
 
+sub items_sorted {
+  my ($self) = @_;
+
+  return [ sort {$a->id <=> $b->id } @{ $self->items } ];
+}
+
 sub sales_order {
   my $self   = shift;
   my %params = @_;
@@ -45,4 +45,20 @@ sub sales_order {
   return first { $_->is_type('sales_order') } @{ $orders };
 }
 
+sub type {
+  return shift->customer_id ? 'sales_delivery_order' : 'purchase_delivery_order';
+}
+
+sub displayable_state {
+  my ($self) = @_;
+
+  return join '; ',
+    ($self->closed    ? $::locale->text('closed')    : $::locale->text('open')),
+    ($self->delivered ? $::locale->text('delivered') : $::locale->text('not delivered'));
+}
+
+sub date {
+  goto &transdate;
+}
+
 1;