FiBu Schnellsuche - transactions für GL Summe benutzen
authorG. Richardson <information@kivitendo-premium.de>
Fri, 30 Jan 2015 10:38:15 +0000 (11:38 +0100)
committerG. Richardson <information@kivitendo-premium.de>
Fri, 30 Jan 2015 13:40:05 +0000 (14:40 +0100)
Berechnung der GL Summe umgeschrieben.

SL/Controller/GL.pm

index a407e80..e79f304 100644 (file)
@@ -8,6 +8,7 @@ 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');
 
@@ -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 = [