X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FGL.pm;h=e79f304cbc3ef61ca5ce73083804f5d3ce42cc33;hb=dac0c31d4a35ce06fba77bfa64d5b314ce92dcd0;hp=683d6a288d32661bef920f0f3fe0eb290927117f;hpb=b18df4e322457c13df7a2e2da7e04cd4344d4485;p=kivitendo-erp.git diff --git a/SL/Controller/GL.pm b/SL/Controller/GL.pm index 683d6a288..e79f304cb 100644 --- a/SL/Controller/GL.pm +++ b/SL/Controller/GL.pm @@ -8,16 +8,17 @@ use SL::DB::Invoice; use SL::DB::PurchaseInvoice; use SL::DB::AccTransaction; use SL::Locale::String qw(t8); +use List::Util qw(sum); __PACKAGE__->run_before('check_auth'); sub action_quicksearch { my ($self, %params) = @_; - + my $limit = $::form->{limit} || 40; # max number of results per type (AR/AP/GL) my $term = $::form->{term} || ''; - + my $descriptionquery = { ilike => '%' . $term . '%' }; my $referencequery = { ilike => '%' . $term . '%' }; my $apinvnumberquery = { ilike => '%' . $term . '%' }; @@ -38,14 +39,9 @@ sub action_quicksearch { my $ars = SL::DB::Manager::Invoice->get_all( query => [ @arfilter ], limit => $limit, sort_by => 'transdate DESC', with_objects => [ 'customer' ]); my $aps = SL::DB::Manager::PurchaseInvoice->get_all(query => [ @apfilter ], limit => $limit, sort_by => 'transdate DESC', with_objects => [ 'vendor' ]); - # calculate an amount to be displayed for gl transaction + # use the sum of all credit amounts as the "amount" of the gl transaction foreach my $gl ( @$gls ) { - my $amount = 0; - my $acc_trans_lines = SL::DB::Manager::AccTransaction->get_all(query => [ trans_id => $gl->id ]); - foreach my $acc_trans_line ( @$acc_trans_lines ) { - $amount += $acc_trans_line->amount if $acc_trans_line->amount > 0 ; - }; - $gl->{'amount'} = $amount; + $gl->{'amount'} = sum map { $_->amount if $_->amount > 0 } @{$gl->transactions}; }; my $gldata = [