Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / SL / DB / MetaSetup / Vendor.pm
index cc93663..a457802 100644 (file)
@@ -4,78 +4,93 @@ package SL::DB::Vendor;
 
 use strict;
 
-use base qw(SL::DB::Object);
+use parent qw(SL::DB::Object);
 
-__PACKAGE__->meta->setup(
-  table   => 'vendor',
+__PACKAGE__->meta->table('vendor');
 
-  columns => [
-    id             => { type => 'integer', not_null => 1, sequence => 'id' },
-    name           => { type => 'varchar', length => 75, not_null => 1 },
-    department_1   => { type => 'varchar', length => 75 },
-    department_2   => { type => 'varchar', length => 75 },
-    street         => { type => 'varchar', length => 75 },
-    zipcode        => { type => 'varchar', length => 10 },
-    city           => { type => 'varchar', length => 75 },
-    country        => { type => 'varchar', length => 75 },
-    contact        => { type => 'varchar', length => 75 },
-    phone          => { type => 'text' },
-    fax            => { type => 'varchar', length => 30 },
-    homepage       => { type => 'text' },
-    email          => { type => 'text' },
-    notes          => { type => 'text' },
-    terms          => { type => 'integer', default => '0' },
-    taxincluded    => { type => 'boolean' },
-    vendornumber   => { type => 'text' },
-    cc             => { type => 'text' },
-    bcc            => { type => 'text' },
-    gifi_accno     => { type => 'text' },
-    business_id    => { type => 'integer' },
-    taxnumber      => { type => 'text' },
-    discount       => { type => 'float', precision => 4 },
-    creditlimit    => { type => 'numeric', precision => 5, scale => 15 },
-    account_number => { type => 'varchar', length => 15 },
-    bank_code      => { type => 'varchar', length => 10 },
-    bank           => { type => 'text' },
-    language       => { type => 'varchar', length => 5 },
-    itime          => { type => 'timestamp', default => 'now()' },
-    mtime          => { type => 'timestamp' },
-    obsolete       => { type => 'boolean', default => 'false' },
-    username       => { type => 'varchar', length => 50 },
-    user_password  => { type => 'varchar', length => 12 },
-    salesman_id    => { type => 'integer' },
-    v_customer_id  => { type => 'text' },
-    language_id    => { type => 'integer' },
-    payment_id     => { type => 'integer' },
-    taxzone_id     => { type => 'integer', default => '0', not_null => 1 },
-    greeting       => { type => 'text' },
-    ustid          => { type => 'varchar', length => 14 },
-    iban           => { type => 'varchar', length => 100 },
-    bic            => { type => 'varchar', length => 100 },
-    direct_debit   => { type => 'boolean', default => 'false' },
-    curr           => { type => 'text' },
-  ],
+__PACKAGE__->meta->columns(
+  account_number   => { type => 'text' },
+  bank             => { type => 'text' },
+  bank_code        => { type => 'text' },
+  bcc              => { type => 'text' },
+  bic              => { type => 'text' },
+  business_id      => { type => 'integer' },
+  cc               => { type => 'text' },
+  city             => { type => 'text' },
+  contact          => { type => 'text' },
+  country          => { type => 'text' },
+  creditlimit      => { type => 'numeric', precision => 15, scale => 5 },
+  currency_id      => { type => 'integer', not_null => 1 },
+  delivery_term_id => { type => 'integer' },
+  department_1     => { type => 'text' },
+  department_2     => { type => 'text' },
+  depositor        => { type => 'text' },
+  direct_debit     => { type => 'boolean', default => 'false' },
+  discount         => { type => 'float', precision => 4, scale => 4 },
+  email            => { type => 'text' },
+  fax              => { type => 'text' },
+  gln              => { type => 'text' },
+  greeting         => { type => 'text' },
+  homepage         => { type => 'text' },
+  iban             => { type => 'text' },
+  id               => { type => 'integer', not_null => 1, sequence => 'id' },
+  itime            => { type => 'timestamp', default => 'now()' },
+  language         => { type => 'text' },
+  language_id      => { type => 'integer' },
+  mtime            => { type => 'timestamp' },
+  name             => { type => 'text', not_null => 1 },
+  natural_person   => { type => 'boolean', default => 'false' },
+  notes            => { type => 'text' },
+  obsolete         => { type => 'boolean', default => 'false' },
+  payment_id       => { type => 'integer' },
+  phone            => { type => 'text' },
+  salesman_id      => { type => 'integer' },
+  street           => { type => 'text' },
+  taxincluded      => { type => 'boolean' },
+  taxnumber        => { type => 'text' },
+  taxzone_id       => { type => 'integer', not_null => 1 },
+  user_password    => { type => 'text' },
+  username         => { type => 'text' },
+  ustid            => { type => 'text' },
+  v_customer_id    => { type => 'text' },
+  vendornumber     => { type => 'text' },
+  zipcode          => { type => 'text' },
+);
+
+__PACKAGE__->meta->primary_key_columns([ 'id' ]);
+
+__PACKAGE__->meta->allow_inline_column_values(1);
+
+__PACKAGE__->meta->foreign_keys(
+  business => {
+    class       => 'SL::DB::Business',
+    key_columns => { business_id => 'id' },
+  },
 
-  primary_key_columns => [ 'id' ],
+  currency => {
+    class       => 'SL::DB::Currency',
+    key_columns => { currency_id => 'id' },
+  },
 
-  allow_inline_column_values => 1,
+  delivery_term => {
+    class       => 'SL::DB::DeliveryTerm',
+    key_columns => { delivery_term_id => 'id' },
+  },
 
-  foreign_keys => [
-    business => {
-      class       => 'SL::DB::Business',
-      key_columns => { business_id => 'id' },
-    },
+  language_obj => {
+    class       => 'SL::DB::Language',
+    key_columns => { language_id => 'id' },
+  },
 
-    language_obj => {
-      class       => 'SL::DB::Language',
-      key_columns => { language_id => 'id' },
-    },
+  payment => {
+    class       => 'SL::DB::PaymentTerm',
+    key_columns => { payment_id => 'id' },
+  },
 
-    payment => {
-      class       => 'SL::DB::PaymentTerm',
-      key_columns => { payment_id => 'id' },
-    },
-  ],
+  taxzone => {
+    class       => 'SL::DB::TaxZone',
+    key_columns => { taxzone_id => 'id' },
+  },
 );
 
 1;