transdate Sortierung bei OrderItem war nicht eindeutig
[kivitendo-erp.git] / SL / DB / Part.pm
index 8ec7b3b..5c795f1 100644 (file)
@@ -9,32 +9,46 @@ use SL::DBUtils;
 use SL::DB::MetaSetup::Part;
 use SL::DB::Manager::Part;
 use SL::DB::Chart;
+use SL::DB::Helper::TransNumberGenerator;
+use SL::DB::Helper::CustomVariables (
+  module      => 'IC',
+  cvars_alias => 1,
+);
 
 __PACKAGE__->meta->add_relationships(
-  unit_obj                     => {
-    type         => 'one to one',
-    class        => 'SL::DB::Unit',
-    column_map   => { unit => 'name' },
-  },
   assemblies                     => {
     type         => 'one to many',
     class        => 'SL::DB::Assembly',
     column_map   => { id => 'id' },
   },
-  partsgroup                     => {
-    type         => 'one to one',
-    class        => 'SL::DB::PartsGroup',
-    column_map   => { partsgroup_id => 'id' },
+  prices         => {
+    type         => 'one to many',
+    class        => 'SL::DB::Price',
+    column_map   => { id => 'parts_id' },
+  },
+  makemodels     => {
+    type         => 'one to many',
+    class        => 'SL::DB::MakeModel',
+    column_map   => { id => 'parts_id' },
   },
-  price_factor   => {
-    type         => 'one to one',
-    class        => 'SL::DB::PriceFactor',
-    column_map   => { price_factor_id => 'id' },
+  translations   => {
+    type         => 'one to many',
+    class        => 'SL::DB::Translation',
+    column_map   => { id => 'parts_id' },
   },
 );
 
 __PACKAGE__->meta->initialize;
 
+__PACKAGE__->before_save('_before_save_set_partnumber');
+
+sub _before_save_set_partnumber {
+  my ($self) = @_;
+
+  $self->create_trans_number if !$self->partnumber;
+  return 1;
+}
+
 sub is_type {
   my $self = shift;
   my $type  = lc(shift || '');