module => 'IC',
cvars_alias => 1,
);
+use List::Util qw(sum);
__PACKAGE__->meta->add_relationships(
assemblies => {
if (!exists $charts->{$taxzone}->{$type}) {
require SL::DB::Buchungsgruppe;
my $bugru = SL::DB::Buchungsgruppe->load_cached($self->buchungsgruppen_id);
- my $chart_id = ($type eq 'inventory') ? ($self->inventory_accno_id ? $bugru->inventory_accno_id : undef)
+ my $chart_id = ($type eq 'inventory') ? ($self->is_part ? $bugru->inventory_accno_id : undef)
: $bugru->call_sub("${type}_accno_id", $taxzone);
if ($chart_id) {
return $clone;
}
+sub assembly_sellprice_sum {
+ my ($self) = @_;
+
+ return unless $self->is_assembly;
+ sum map { $_->linetotal } @{$self->part->assemblies};
+};
+
+sub assembly_lastcost_sum {
+ my ($self) = @_;
+
+ return unless $self->is_assembly;
+ sum map { $_->linetotal } @{$self->part->assemblies};
+};
+
+sub assortment_sellprice_sum {
+ my ($self) = @_;
+
+ return unless $self->is_assortment;
+ sum map { $_->linetotal } @{$self->part->assortment_items};
+};
+
+sub assortment_lastcost_sum {
+ my ($self) = @_;
+
+ return unless $self->is_assortment;
+ sum map { $_->linetotal } @{$self->part->assortment_items};
+};
+
1;
__END__
Please note, that this is a write only accessor, the original Buchungsgruppe can
not be retrieved from an article once set.
+=item C<assembly_sellprice_sum>
+
+Non-recursive sellprice sum of all the assembly item sellprices.
+
+=item C<assortment_sellprice_sum>
+
+Non-recursive sellprice sum of all the assortment item sellprices.
+
+=item C<assembly_lastcost_sum>
+
+Non-recursive lastcost sum of all the assembly item lastcosts.
+
+=item C<assortment_lastcost_sum>
+
+Non-recursive lastcost sum of all the assortment item lastcosts.
+
=back
=head1 AUTHORS