Merge branch 'test' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / SL / DB / MetaSetup / Invoice.pm
index 2a0e50e..e80b110 100644 (file)
@@ -4,126 +4,142 @@ package SL::DB::Invoice;
 
 use strict;
 
-use base qw(SL::DB::Object);
-
-__PACKAGE__->meta->setup(
-  table   => 'ar',
-
-  columns => [
-    id                        => { type => 'integer', not_null => 1, sequence => 'glid' },
-    invnumber                 => { type => 'text', not_null => 1 },
-    transdate                 => { type => 'date', default => 'now' },
-    gldate                    => { type => 'date', default => 'now' },
-    customer_id               => { type => 'integer' },
-    taxincluded               => { type => 'boolean' },
-    amount                    => { type => 'numeric', precision => 5, scale => 15 },
-    netamount                 => { type => 'numeric', precision => 5, scale => 15 },
-    paid                      => { type => 'numeric', precision => 5, scale => 15 },
-    datepaid                  => { type => 'date' },
-    duedate                   => { type => 'date' },
-    deliverydate              => { type => 'date' },
-    invoice                   => { type => 'boolean', default => 'false' },
-    shippingpoint             => { type => 'text' },
-    terms                     => { type => 'integer', default => '0' },
-    notes                     => { type => 'text' },
-    ordnumber                 => { type => 'text' },
-    employee_id               => { type => 'integer' },
-    quonumber                 => { type => 'text' },
-    cusordnumber              => { type => 'text' },
-    intnotes                  => { type => 'text' },
-    department_id             => { type => 'integer' },
-    shipvia                   => { type => 'text' },
-    itime                     => { type => 'timestamp', default => 'now()' },
-    mtime                     => { type => 'timestamp' },
-    cp_id                     => { type => 'integer' },
-    language_id               => { type => 'integer' },
-    payment_id                => { type => 'integer' },
-    delivery_customer_id      => { type => 'integer' },
-    delivery_vendor_id        => { type => 'integer' },
-    storno                    => { type => 'boolean', default => 'false' },
-    taxzone_id                => { type => 'integer' },
-    shipto_id                 => { type => 'integer' },
-    type                      => { type => 'text' },
-    dunning_config_id         => { type => 'integer' },
-    orddate                   => { type => 'date' },
-    quodate                   => { type => 'date' },
-    globalproject_id          => { type => 'integer' },
-    salesman_id               => { type => 'integer' },
-    transaction_description   => { type => 'text' },
-    storno_id                 => { type => 'integer' },
-    marge_total               => { type => 'numeric', precision => 5, scale => 15 },
-    marge_percent             => { type => 'numeric', precision => 5, scale => 15 },
-    donumber                  => { type => 'text' },
-    invnumber_for_credit_note => { type => 'text' },
-    direct_debit              => { type => 'boolean', default => 'false' },
-    currency_id               => { type => 'integer', not_null => 1 },
-  ],
-
-  primary_key_columns => [ 'id' ],
-
-  allow_inline_column_values => 1,
-
-  foreign_keys => [
-    contact => {
-      class       => 'SL::DB::Contact',
-      key_columns => { cp_id => 'cp_id' },
-    },
-
-    currency => {
-      class       => 'SL::DB::Currency',
-      key_columns => { currency_id => 'id' },
-    },
-
-    customer => {
-      class       => 'SL::DB::Customer',
-      key_columns => { customer_id => 'id' },
-    },
-
-    department => {
-      class       => 'SL::DB::Department',
-      key_columns => { department_id => 'id' },
-    },
-
-    dunning_config => {
-      class       => 'SL::DB::DunningConfig',
-      key_columns => { dunning_config_id => 'id' },
-    },
-
-    employee => {
-      class       => 'SL::DB::Employee',
-      key_columns => { employee_id => 'id' },
-    },
-
-    globalproject => {
-      class       => 'SL::DB::Project',
-      key_columns => { globalproject_id => 'id' },
-    },
-
-    language => {
-      class       => 'SL::DB::Language',
-      key_columns => { language_id => 'id' },
-    },
-
-    payment_terms => {
-      class       => 'SL::DB::PaymentTerm',
-      key_columns => { payment_id => 'id' },
-    },
-
-    salesman => {
-      class       => 'SL::DB::Employee',
-      key_columns => { salesman_id => 'id' },
-    },
-
-    shipto => {
-      class       => 'SL::DB::Shipto',
-      key_columns => { shipto_id => 'shipto_id' },
-    },
-
-    storno_obj => {
-      class       => 'SL::DB::Invoice',
-      key_columns => { storno_id => 'id' },
-    },
-  ],
+use parent qw(SL::DB::Object);
+
+__PACKAGE__->meta->table('ar');
+
+__PACKAGE__->meta->columns(
+  amount                    => { type => 'numeric', default => '0', not_null => 1, precision => 15, scale => 5 },
+  billing_address_id        => { type => 'integer' },
+  cp_id                     => { type => 'integer' },
+  currency_id               => { type => 'integer', not_null => 1 },
+  cusordnumber              => { type => 'text' },
+  customer_id               => { type => 'integer' },
+  datepaid                  => { type => 'date' },
+  delivery_customer_id      => { type => 'integer' },
+  delivery_term_id          => { type => 'integer' },
+  delivery_vendor_id        => { type => 'integer' },
+  deliverydate              => { type => 'date' },
+  department_id             => { type => 'integer' },
+  direct_debit              => { type => 'boolean', default => 'false' },
+  donumber                  => { type => 'text' },
+  duedate                   => { type => 'date' },
+  dunning_config_id         => { type => 'integer' },
+  employee_id               => { type => 'integer' },
+  gldate                    => { type => 'date', default => 'now' },
+  globalproject_id          => { type => 'integer' },
+  id                        => { type => 'integer', not_null => 1, sequence => 'glid' },
+  intnotes                  => { type => 'text' },
+  invnumber                 => { type => 'text', not_null => 1 },
+  invnumber_for_credit_note => { type => 'text' },
+  invoice                   => { type => 'boolean', default => 'false' },
+  itime                     => { type => 'timestamp', default => 'now()' },
+  language_id               => { type => 'integer' },
+  marge_percent             => { type => 'numeric', precision => 15, scale => 5 },
+  marge_total               => { type => 'numeric', precision => 15, scale => 5 },
+  mtime                     => { type => 'timestamp' },
+  netamount                 => { type => 'numeric', default => '0', not_null => 1, precision => 15, scale => 5 },
+  notes                     => { type => 'text' },
+  orddate                   => { type => 'date' },
+  ordnumber                 => { type => 'text' },
+  paid                      => { type => 'numeric', default => '0', not_null => 1, precision => 15, scale => 5 },
+  payment_id                => { type => 'integer' },
+  qrbill_without_amount     => { type => 'boolean', default => 'false' },
+  quodate                   => { type => 'date' },
+  quonumber                 => { type => 'text' },
+  salesman_id               => { type => 'integer' },
+  shippingpoint             => { type => 'text' },
+  shipto_id                 => { type => 'integer' },
+  shipvia                   => { type => 'text' },
+  storno                    => { type => 'boolean', default => 'false' },
+  storno_id                 => { type => 'integer' },
+  tax_point                 => { type => 'date' },
+  taxincluded               => { type => 'boolean' },
+  taxzone_id                => { type => 'integer', not_null => 1 },
+  transaction_description   => { type => 'text' },
+  transdate                 => { type => 'date', default => 'now' },
+  type                      => { type => 'text' },
+);
+
+__PACKAGE__->meta->primary_key_columns([ 'id' ]);
+
+__PACKAGE__->meta->allow_inline_column_values(1);
+
+__PACKAGE__->meta->foreign_keys(
+  billing_address => {
+    class       => 'SL::DB::AdditionalBillingAddress',
+    key_columns => { billing_address_id => 'id' },
+  },
+
+  contact => {
+    class       => 'SL::DB::Contact',
+    key_columns => { cp_id => 'cp_id' },
+  },
+
+  currency => {
+    class       => 'SL::DB::Currency',
+    key_columns => { currency_id => 'id' },
+  },
+
+  customer => {
+    class       => 'SL::DB::Customer',
+    key_columns => { customer_id => 'id' },
+  },
+
+  delivery_term => {
+    class       => 'SL::DB::DeliveryTerm',
+    key_columns => { delivery_term_id => 'id' },
+  },
+
+  department => {
+    class       => 'SL::DB::Department',
+    key_columns => { department_id => 'id' },
+  },
+
+  dunning_config => {
+    class       => 'SL::DB::DunningConfig',
+    key_columns => { dunning_config_id => 'id' },
+  },
+
+  employee => {
+    class       => 'SL::DB::Employee',
+    key_columns => { employee_id => 'id' },
+  },
+
+  globalproject => {
+    class       => 'SL::DB::Project',
+    key_columns => { globalproject_id => 'id' },
+  },
+
+  language => {
+    class       => 'SL::DB::Language',
+    key_columns => { language_id => 'id' },
+  },
+
+  payment_terms => {
+    class       => 'SL::DB::PaymentTerm',
+    key_columns => { payment_id => 'id' },
+  },
+
+  salesman => {
+    class       => 'SL::DB::Employee',
+    key_columns => { salesman_id => 'id' },
+  },
+
+  shipto => {
+    class       => 'SL::DB::Shipto',
+    key_columns => { shipto_id => 'shipto_id' },
+  },
+
+  storno_obj => {
+    class       => 'SL::DB::Invoice',
+    key_columns => { storno_id => 'id' },
+  },
+
+  taxzone => {
+    class       => 'SL::DB::TaxZone',
+    key_columns => { taxzone_id => 'id' },
+  },
 );
 
 1;