Vorschläge für Kontoauszüge verbessern, fall: remote_account_number
[kivitendo-erp.git] / SL / DB / InvoiceItem.pm
index 1407c33..80c406b 100644 (file)
@@ -3,28 +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',
+    },
   },
-  price_factor_obj => {
+);
+
+__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::PriceFactor',
-    column_map     => { price_factor_id => 'id' },
+    class          => 'SL::DB::Invoice',
+    column_map     => { trans_id => 'id' },
   },
-  unit_obj       => {
-    type         => 'one to one',
-    class        => 'SL::DB::Unit',
-    column_map   => { unit => 'name' },
+
+  purchase_invoice => {
+    type           => 'one to one',
+    class          => 'SL::DB::PurchaseInvoice',
+    column_map     => { trans_id => 'id' },
   },
 );
 
-# Creates get_all, get_all_count, get_all_iterator, delete_all and update_all.
-__PACKAGE__->meta->make_manager_class;
-
 __PACKAGE__->meta->initialize;
 
+sub record {
+  my ($self) = @_;
+
+  return $self->invoice          if $self->invoice;
+  return $self->purchase_invoice if $self->purchase_invoice;
+  return;
+};
+
 1;