1. $form->{sort} nicht ohne Überprüfung in einem SQL-Query benutzen.
2. Nur dann mehrere Zeilen zusammenfassen, wenn auch ihre ID übereinstimmen (was vermutlich nie der Fall sein wird, aber anders ist es schlicht falsch, weil dann Buchungen zusammengefasst werden können, die zu unterschiedlichen Belegen gehören).
$union = qq|UNION ALL|;
}
- $query .= qq|ORDER BY | . $form->{sort};
+ 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} = [];
$ca->{debit} = 0;
}
- $ca->{index} = $ca->{reference}.$ca->{description};
+ $ca->{index} = join "--", map { $ca->{$_} } qw(id reference description);
push(@{ $form->{CA} }, $ca);