OrderController Sortierung berichtigt. Sort::Naturally hat auch nicht
authorWerner Hahn <wh@futureworldsearch.net>
Tue, 26 Mar 2019 08:54:10 +0000 (09:54 +0100)
committerWerner Hahn <wh@futureworldsearch.net>
Tue, 26 Mar 2019 08:56:20 +0000 (09:56 +0100)
wie erwartet sortiert

SL/Controller/Order.pm

index 656883c..c37dc1c 100644 (file)
@@ -910,9 +910,17 @@ sub action_reorder_items {
   my $method = $sort_keys{$::form->{order_by}};
   my @to_sort = map { { old_pos => $_->position, order_by => $method->($_) } } @{ $self->order->items_sorted };
   if ($::form->{sort_dir}) {
-    @to_sort = sort { Sort::Naturally::ncmp($a->{order_by}, $b->{order_by} ) } @to_sort;
+    if ( $::form->{order_by} =~ m/qty|sellprice|discount/ ){
+      @to_sort = sort { $a->{order_by} <=> $b->{order_by} } @to_sort;
+    } else {
+      @to_sort = sort { $a->{order_by} cmp $b->{order_by} } @to_sort;
+    }
   } else {
-    @to_sort = sort { Sort::Naturally::ncmp($b->{order_by}, $a->{order_by} ) } @to_sort;
+    if ( $::form->{order_by} =~ m/qty|sellprice|discount/ ){
+      @to_sort = sort { $b->{order_by} <=> $a->{order_by} } @to_sort;
+    } else {
+      @to_sort = sort { $b->{order_by} cmp $a->{order_by} } @to_sort;
+    }
   }
   $self->js
     ->run('kivi.Order.redisplay_items', \@to_sort)