Sortierung in Berichten über Lieferscheine auch auf- und absteigbar sortierbar gemacht.
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 7 Jul 2008 09:16:20 +0000 (09:16 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 7 Jul 2008 09:16:20 +0000 (09:16 +0000)
SL/DO.pm
bin/mozilla/do.pl

index 3f623ec..390f51f 100644 (file)
--- a/SL/DO.pm
+++ b/SL/DO.pm
@@ -142,12 +142,13 @@ sub transactions {
     "transaction_description" => "dord.transaction_description"
   );
 
-  my $sortoder = "dord.id";
+  my $sortdir   = $form->{sortdir} ? 'ASC' : 'DESC';
+  my $sortorder = "dord.id";
   if ($form->{sort} && grep($form->{sort}, keys(%allowed_sort_columns))) {
     $sortorder = $allowed_sort_columns{$form->{sort}};
   }
 
-  $query .= qq| ORDER by | . $sortorder;
+  $query .= qq| ORDER by | . $sortorder . " $sortdir";
 
   $form->{DO} = selectall_hashref_query($form, $dbh, $query, @values);
 
index c88f3b0..c3c4b07 100644 (file)
@@ -409,7 +409,9 @@ sub orders {
 
   ($form->{ $form->{vc} }, $form->{"${form->{vc}}_id"}) = split(/--/, $form->{ $form->{vc} });
 
-  $form->{sort} ||= 'transdate';
+  $form->{sort}    ||= 'transdate';
+  $form->{sortdir}   = 1 unless (defined $form->{sortdir});
+  $form->{sortdir}   = $form->{sortdir} ? 1 : 0;
 
   DO->transactions();
 
@@ -456,7 +458,8 @@ sub orders {
   );
 
   foreach my $name (qw(id transdate donumber ordnumber name employee shipvia)) {
-    $column_defs{$name}->{link} = $href . "&sort=$name";
+    my $sortdir                 = $form->{sort} eq $name ? 1 - $form->{sortdir} : $form->{sortdir};
+    $column_defs{$name}->{link} = $href . "&sort=$name&sortdir=$sortdir";
   }
 
   $form->{"l_type"} = "Y";
@@ -469,7 +472,7 @@ sub orders {
 
   $report->set_export_options('orders', @hidden_variables);
 
-  $report->set_sort_indicator($form->{sort}, 1);
+  $report->set_sort_indicator($form->{sort}, $form->{sortdir});
 
   my @options;
   if ($form->{customer}) {