Vorschläge für Kontoauszüge verbessern, fall: remote_account_number
[kivitendo-erp.git] / SL / DB / InvoiceItem.pm
index d8b3903..80c406b 100644 (file)
@@ -3,18 +3,46 @@ package SL::DB::InvoiceItem;
 use strict;
 
 use SL::DB::MetaSetup::InvoiceItem;
-
-__PACKAGE__->meta->add_relationship(
-  part => {
-    type         => 'one to one',
-    class        => 'SL::DB::Part',
-    column_map   => { parts_id => 'id' },
-  }
+use SL::DB::Helper::ActsAsList;
+use SL::DB::Helper::LinkedRecords;
+use SL::DB::Helper::RecordItem;
+use SL::DB::Helper::CustomVariables (
+  sub_module  => 'invoice',
+  cvars_alias => 1,
+  overloads   => {
+    parts_id => {
+     class => 'SL::DB::Part',
+     module => 'IC',
+    },
+  },
 );
 
-# Creates get_all, get_all_count, get_all_iterator, delete_all and update_all.
 __PACKAGE__->meta->make_manager_class;
 
+__PACKAGE__->configure_acts_as_list(group_by => [qw(trans_id)]);
+
+__PACKAGE__->meta->add_relationships(
+  invoice          => {
+    type           => 'one to one',
+    class          => 'SL::DB::Invoice',
+    column_map     => { trans_id => 'id' },
+  },
+
+  purchase_invoice => {
+    type           => 'one to one',
+    class          => 'SL::DB::PurchaseInvoice',
+    column_map     => { trans_id => 'id' },
+  },
+);
+
 __PACKAGE__->meta->initialize;
 
+sub record {
+  my ($self) = @_;
+
+  return $self->invoice          if $self->invoice;
+  return $self->purchase_invoice if $self->purchase_invoice;
+  return;
+};
+
 1;