From 0d5564ee4eaf6af6cbcc0c59b08e9ed16c828b49 Mon Sep 17 00:00:00 2001 From: "G. Richardson" Date: Wed, 10 Aug 2016 00:14:38 +0200 Subject: [PATCH] =?utf8?q?Neue=20Part-Methoden=20f=C3=BCr=20Erzeugnis-=20u?= =?utf8?q?nd=20Sortimentssummen?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit derzeit noch nicht rekursiv (wenn ein Sortiment wiederum aus anderen Sortimenten besteht). --- SL/DB/Part.pm | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/SL/DB/Part.pm b/SL/DB/Part.pm index 2535efca9..901f57aa8 100644 --- a/SL/DB/Part.pm +++ b/SL/DB/Part.pm @@ -16,6 +16,7 @@ use SL::DB::Helper::CustomVariables ( module => 'IC', cvars_alias => 1, ); +use List::Util qw(sum); __PACKAGE__->meta->add_relationships( assemblies => { @@ -284,6 +285,34 @@ sub clone_and_reset_deep { 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__ @@ -422,6 +451,22 @@ Used to set the accounting information from a L object. Please note, that this is a write only accessor, the original Buchungsgruppe can not be retrieved from an article once set. +=item C + +Non-recursive sellprice sum of all the assembly item sellprices. + +=item C + +Non-recursive sellprice sum of all the assortment item sellprices. + +=item C + +Non-recursive lastcost sum of all the assembly item lastcosts. + +=item C + +Non-recursive lastcost sum of all the assortment item lastcosts. + =back =head1 AUTHORS -- 2.20.1