PriceSource: Erste Version
[kivitendo-erp.git] / SL / DB / MetaSetup / OrderItem.pm
index 3f048c3..2bd6bf5 100644 (file)
@@ -6,49 +6,73 @@ use strict;
 
 use base qw(SL::DB::Object);
 
-__PACKAGE__->meta->setup(
-  table   => 'orderitems',
-
-  columns => [
-    trans_id           => { type => 'integer' },
-    parts_id           => { type => 'integer' },
-    description        => { type => 'text' },
-    qty                => { type => 'float', precision => 4 },
-    sellprice          => { type => 'numeric', precision => 5, scale => 15 },
-    discount           => { type => 'float', precision => 4 },
-    project_id         => { type => 'integer' },
-    reqdate            => { type => 'date' },
-    ship               => { type => 'float', precision => 4 },
-    serialnumber       => { type => 'text' },
-    id                 => { type => 'integer', not_null => 1, sequence => 'orderitemsid' },
-    itime              => { type => 'timestamp', default => 'now()' },
-    mtime              => { type => 'timestamp' },
-    pricegroup_id      => { type => 'integer' },
-    ordnumber          => { type => 'text' },
-    transdate          => { type => 'text' },
-    cusordnumber       => { type => 'text' },
-    unit               => { type => 'varchar', length => 20 },
-    base_qty           => { type => 'float', precision => 4 },
-    subtotal           => { type => 'boolean', default => 'false' },
-    longdescription    => { type => 'text' },
-    marge_total        => { type => 'numeric', precision => 5, scale => 15 },
-    marge_percent      => { type => 'numeric', precision => 5, scale => 15 },
-    lastcost           => { type => 'numeric', precision => 5, scale => 15 },
-    price_factor_id    => { type => 'integer' },
-    price_factor       => { type => 'numeric', default => 1, precision => 5, scale => 15 },
-    marge_price_factor => { type => 'numeric', default => 1, precision => 5, scale => 15 },
-  ],
-
-  primary_key_columns => [ 'id' ],
-
-  allow_inline_column_values => 1,
-
-  foreign_keys => [
-    parts => {
-      class       => 'SL::DB::Part',
-      key_columns => { parts_id => 'id' },
-    },
-  ],
+__PACKAGE__->meta->table('orderitems');
+
+__PACKAGE__->meta->columns(
+  base_qty            => { type => 'float', scale => 4 },
+  cusordnumber        => { type => 'text' },
+  description         => { type => 'text' },
+  discount            => { type => 'float', scale => 4 },
+  id                  => { type => 'integer', not_null => 1, sequence => 'orderitemsid' },
+  itime               => { type => 'timestamp', default => 'now()' },
+  lastcost            => { type => 'numeric', precision => 15, scale => 5 },
+  longdescription     => { type => 'text' },
+  marge_percent       => { type => 'numeric', precision => 15, scale => 5 },
+  marge_price_factor  => { type => 'numeric', default => 1, precision => 15, scale => 5 },
+  marge_total         => { type => 'numeric', precision => 15, scale => 5 },
+  mtime               => { type => 'timestamp' },
+  ordnumber           => { type => 'text' },
+  parts_id            => { type => 'integer' },
+  price_factor        => { type => 'numeric', default => 1, precision => 15, scale => 5 },
+  price_factor_id     => { type => 'integer' },
+  pricegroup_id       => { type => 'integer' },
+  project_id          => { type => 'integer' },
+  qty                 => { type => 'float', scale => 4 },
+  reqdate             => { type => 'date' },
+  sellprice           => { type => 'numeric', precision => 15, scale => 5 },
+  serialnumber        => { type => 'text' },
+  ship                => { type => 'float', scale => 4 },
+  subtotal            => { type => 'boolean', default => 'false' },
+  trans_id            => { type => 'integer' },
+  transdate           => { type => 'text' },
+  unit                => { type => 'varchar', length => 20 },
+  active_price_source => { type => 'text', default => '', not_null => 1 },
+);
+
+__PACKAGE__->meta->primary_key_columns([ 'id' ]);
+
+__PACKAGE__->meta->allow_inline_column_values(1);
+
+__PACKAGE__->meta->foreign_keys(
+  order => {
+    class       => 'SL::DB::Order',
+    key_columns => { trans_id => 'id' },
+  },
+
+  part => {
+    class       => 'SL::DB::Part',
+    key_columns => { parts_id => 'id' },
+  },
+
+  price_factor_obj => {
+    class       => 'SL::DB::PriceFactor',
+    key_columns => { price_factor_id => 'id' },
+  },
+
+  pricegroup => {
+    class       => 'SL::DB::Pricegroup',
+    key_columns => { pricegroup_id => 'id' },
+  },
+
+  project => {
+    class       => 'SL::DB::Project',
+    key_columns => { project_id => 'id' },
+  },
+
+  unit_obj => {
+    class       => 'SL::DB::Unit',
+    key_columns => { unit => 'name' },
+  },
 );
 
 1;