Bugfix für 2275 Verkäuferinformationen im Druck kommen aus der Authdatenbank
[kivitendo-erp.git] / SL / DB / DeliveryOrder.pm
index 9c860bf..372a5cc 100644 (file)
@@ -2,39 +2,52 @@ package SL::DB::DeliveryOrder;
 
 use strict;
 
+use Carp;
+
 use SL::DB::MetaSetup::DeliveryOrder;
 use SL::DB::Manager::DeliveryOrder;
 use SL::DB::Helper::LinkedRecords;
 use SL::DB::Helper::TransNumberGenerator;
-use SL::DB::Order;
 
 use List::Util qw(first);
 
 __PACKAGE__->meta->add_relationship(orderitems => { type         => 'one to many',
                                                     class        => 'SL::DB::DeliveryOrderItem',
                                                     column_map   => { id => 'delivery_order_id' },
-                                                    manager_args => { with_objects => [ 'parts' ] }
-                                                  },
-                                    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' },
+                                                    manager_args => { with_objects => [ 'part' ] }
                                                   },
                                    );
 
 __PACKAGE__->meta->initialize;
 
+__PACKAGE__->before_save('_before_save_set_donumber');
+
+# hooks
+
+sub _before_save_set_donumber {
+  my ($self) = @_;
+
+  $self->create_trans_number if !$self->donumber;
+
+  return 1;
+}
+
 # methods
 
 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 = @_;
 
+
+  require SL::DB::Order;
   my $orders = SL::DB::Manager::Order->get_all(
     query => [
       ordnumber => $self->ordnumber,
@@ -57,4 +70,8 @@ sub displayable_state {
     ($self->delivered ? $::locale->text('delivered') : $::locale->text('not delivered'));
 }
 
+sub date {
+  goto &transdate;
+}
+
 1;