X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FCA.pm;h=76d2b320a5580cb202d3f9beb4be9ee2a27d411a;hb=6216f7b53a81a73641a2d98ea43f363b6a615b07;hp=0c2a24f3730156e523d947b4df7674d5352b08eb;hpb=bd34eaeac9e09277148172dc634c0cd71bff91a8;p=kivitendo-erp.git diff --git a/SL/CA.pm b/SL/CA.pm index 0c2a24f37..76d2b320a 100644 --- a/SL/CA.pm +++ b/SL/CA.pm @@ -247,7 +247,7 @@ sub all_transactions { @values = (); foreach my $id (@id) { - + # NOTE: Postgres is really picky about the order of implicit CROSS # JOINs with ',' if you alias the tables and want to use the # alias later in another JOIN. the alias you want to use has to @@ -266,29 +266,31 @@ sub all_transactions { $dpt_join . qq|WHERE | . $where . $dpt_where . $project . qq| AND ac.chart_id = ? | . - qq| AND ac.trans_id = a.id | . + qq| AND ac.trans_id = a.id | . - qq|UNION | . + qq|UNION ALL | . qq|SELECT a.id, a.invnumber, c.name, ac.transdate, | . qq| a.invoice, ac.amount, 'ar' as module | . qq|FROM acc_trans ac, customer c, ar a | . $dpt_join . qq|WHERE | . $where . $dpt_where . $project . - qq| AND ac.chart_id = ? | . - qq| AND ac.trans_id = a.id | . - qq| AND a.customer_id = c.id | . + qq| AND ac.chart_id = ? | . + qq| AND NOT a.storno | . + qq| AND ac.trans_id = a.id | . + qq| AND a.customer_id = c.id | . - qq|UNION | . + qq|UNION ALL | . qq|SELECT a.id, a.invnumber, v.name, ac.transdate, | . qq| a.invoice, ac.amount, 'ap' as module | . qq|FROM acc_trans ac, vendor v, ap a | . $dpt_join . qq|WHERE | . $where . $dpt_where . $project . - qq| AND ac.chart_id = ? | . - qq| AND ac.trans_id = a.id | . - qq| AND a.vendor_id = v.id |; + qq| AND ac.chart_id = ? | . + qq| AND ac.trans_id = a.id | . + qq| AND NOT a.storno | . + qq| AND a.vendor_id = v.id |; push(@values, @where_values, @department_values, @project_values, $id, @@ -345,7 +347,9 @@ sub all_transactions { $union = qq|UNION ALL|; } - $query .= qq|ORDER BY | . $sortorder; + my $sort = grep({ $form->{sort} eq $_ } qw(transdate reference description)) ? $form->{sort} : 'transdate'; + + $query .= qq|ORDER BY $sort|; $sth = prepare_execute_query($form, $dbh, $query, @values); $form->{CA} = []; @@ -368,6 +372,8 @@ sub all_transactions { $ca->{debit} = 0; } + $ca->{index} = join "--", map { $ca->{$_} } qw(id reference description); + push(@{ $form->{CA} }, $ca); }