X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FMetaSetup%2FPart.pm;h=ef6ed69f5aaee46b54c96f76608c40d3329b5c21;hb=62f2141002f5b8c11fa9d881473fd3bc469b4eef;hp=d6814e8d0716f78eecd26e9a8176f36728b0fb4a;hpb=6cf3f7762efd40bee49a2b8f11bb4ab6915d9071;p=kivitendo-erp.git diff --git a/SL/DB/MetaSetup/Part.pm b/SL/DB/MetaSetup/Part.pm index d6814e8d0..ef6ed69f5 100644 --- a/SL/DB/MetaSetup/Part.pm +++ b/SL/DB/MetaSetup/Part.pm @@ -4,62 +4,95 @@ package SL::DB::Part; use strict; -use base qw(SL::DB::Object); - -__PACKAGE__->meta->setup( - table => 'parts', - - columns => [ - id => { type => 'integer', not_null => 1, sequence => 'id' }, - partnumber => { type => 'text', not_null => 1 }, - description => { type => 'text' }, - listprice => { type => 'numeric', precision => 5, scale => 15 }, - sellprice => { type => 'numeric', precision => 5, scale => 15 }, - lastcost => { type => 'numeric', precision => 5, scale => 15 }, - priceupdate => { type => 'date', default => 'now' }, - weight => { type => 'float', precision => 4 }, - notes => { type => 'text' }, - makemodel => { type => 'boolean', default => 'false' }, - assembly => { type => 'boolean', default => 'false' }, - alternate => { type => 'boolean', default => 'false' }, - rop => { type => 'float', precision => 4 }, - inventory_accno_id => { type => 'integer' }, - income_accno_id => { type => 'integer' }, - expense_accno_id => { type => 'integer' }, - bin => { type => 'text' }, - shop => { type => 'boolean', default => 'false' }, - obsolete => { type => 'boolean', default => 'false' }, - bom => { type => 'boolean', default => 'false' }, - image => { type => 'text' }, - drawing => { type => 'text' }, - microfiche => { type => 'text' }, - partsgroup_id => { type => 'integer' }, - ve => { type => 'integer' }, - gv => { type => 'numeric', precision => 5, scale => 15 }, - itime => { type => 'timestamp', default => 'now()' }, - mtime => { type => 'timestamp' }, - unit => { type => 'varchar', length => 20, not_null => 1 }, - formel => { type => 'text' }, - not_discountable => { type => 'boolean', default => 'false' }, - buchungsgruppen_id => { type => 'integer' }, - payment_id => { type => 'integer' }, - ean => { type => 'text' }, - price_factor_id => { type => 'integer' }, - onhand => { type => 'numeric', default => '0', precision => 5, scale => 25 }, - stockable => { type => 'boolean', default => 'false' }, - has_sernumber => { type => 'boolean', default => 'false' }, - ], - - primary_key_columns => [ 'id' ], - - allow_inline_column_values => 1, - - foreign_keys => [ - buchungsgruppen => { - class => 'SL::DB::Buchungsgruppe', - key_columns => { buchungsgruppen_id => 'id' }, - }, - ], +use parent qw(SL::DB::Object); + +__PACKAGE__->meta->table('parts'); + +__PACKAGE__->meta->columns( + bin_id => { type => 'integer' }, + bom => { type => 'boolean', default => 'false' }, + buchungsgruppen_id => { type => 'integer' }, + classification_id => { type => 'integer', default => '0' }, + description => { type => 'text' }, + drawing => { type => 'text' }, + ean => { type => 'text' }, + formel => { type => 'text' }, + gv => { type => 'numeric', precision => 15, scale => 5 }, + has_sernumber => { type => 'boolean', default => 'false' }, + id => { type => 'integer', not_null => 1, sequence => 'id' }, + image => { type => 'text' }, + itime => { type => 'timestamp', default => 'now()' }, + lastcost => { type => 'numeric', precision => 15, scale => 5 }, + listprice => { type => 'numeric', precision => 15, scale => 5 }, + makemodel => { type => 'boolean', default => 'false' }, + microfiche => { type => 'text' }, + mtime => { type => 'timestamp' }, + not_discountable => { type => 'boolean', default => 'false' }, + notes => { type => 'text' }, + obsolete => { type => 'boolean', default => 'false' }, + onhand => { type => 'numeric', default => '0', precision => 25, scale => 5 }, + part_type => { type => 'enum', check_in => [ 'part', 'service', 'assembly', 'assortment' ], db_type => 'part_type_enum', not_null => 1 }, + partnumber => { type => 'text', not_null => 1 }, + partsgroup_id => { type => 'integer' }, + payment_id => { type => 'integer' }, + price_factor_id => { type => 'integer' }, + priceupdate => { type => 'date', default => 'now' }, + rop => { type => 'float', precision => 4, scale => 4 }, + sellprice => { type => 'numeric', precision => 15, scale => 5 }, + shop => { type => 'boolean', default => 'false' }, + stockable => { type => 'boolean', default => 'false' }, + unit => { type => 'varchar', length => 20, not_null => 1 }, + ve => { type => 'integer' }, + warehouse_id => { type => 'integer' }, + weight => { type => 'float', precision => 4, scale => 4 }, +); + +__PACKAGE__->meta->primary_key_columns([ 'id' ]); + +__PACKAGE__->meta->unique_keys([ 'partnumber' ]); + +__PACKAGE__->meta->allow_inline_column_values(1); + +__PACKAGE__->meta->foreign_keys( + bin => { + class => 'SL::DB::Bin', + key_columns => { bin_id => 'id' }, + }, + + buchungsgruppen => { + class => 'SL::DB::Buchungsgruppe', + key_columns => { buchungsgruppen_id => 'id' }, + }, + + classification => { + class => 'SL::DB::PartClassification', + key_columns => { classification_id => 'id' }, + }, + + partsgroup => { + class => 'SL::DB::PartsGroup', + key_columns => { partsgroup_id => 'id' }, + }, + + payment => { + class => 'SL::DB::PaymentTerm', + key_columns => { payment_id => 'id' }, + }, + + price_factor => { + class => 'SL::DB::PriceFactor', + key_columns => { price_factor_id => 'id' }, + }, + + unit_obj => { + class => 'SL::DB::Unit', + key_columns => { unit => 'name' }, + }, + + warehouse => { + class => 'SL::DB::Warehouse', + key_columns => { warehouse_id => 'id' }, + }, ); 1;