Ein Template-Plugin zum Escape von Angaben für JavaScript-Strings.
[kivitendo-erp.git] / SL / CA.pm
index 0c2a24f..76d2b32 100644 (file)
--- 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);
 
   }