use strict;
use SL::DB::MetaSetup::InvoiceItem;
-
-for my $field (qw(
- qty allocated sellprice fxsellprice discount base_qty marge_total
- marge_percent lastcost price_factor marge_price_factor
-)) {
- __PACKAGE__->attr_number($field, places => -2);
-}
-
-__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;