Revision 4d45be84
Von Tamino Steinert vor 6 Monaten hinzugefügt
SL/Controller/Part.pm | ||
---|---|---|
857 | 857 |
$self->js->run('kivi.Part.redisplay_items', \@to_sort)->render; |
858 | 858 |
} |
859 | 859 |
|
860 |
sub action_reorder_variants { |
|
861 |
my ($self) = @_; |
|
862 |
|
|
863 |
my $part= $self->part; |
|
864 |
|
|
865 |
my %sort_keys = ( |
|
866 |
partnumber => sub { $_[0]->partnumber }, |
|
867 |
description => sub { $_[0]->description }, |
|
868 |
sellprice => sub { $_[0]->sellprice }, |
|
869 |
lastcost => sub { $_[0]->lastcost }, |
|
870 |
variant_values => sub { $_[0]->variant_values }, |
|
871 |
); |
|
872 |
foreach my $variant_property (@{$part->variant_properties}) { |
|
873 |
my $key = 'variant_property_' . $variant_property->unique_name; |
|
874 |
$sort_keys{$key} = sub { |
|
875 |
$_[0]->get_variant_property_value_by_unique_name($variant_property->unique_name)->value; |
|
876 |
} |
|
877 |
} |
|
878 |
|
|
879 |
my $method = $sort_keys{$::form->{order_by}}; |
|
880 |
|
|
881 |
my @items = $part->variants; |
|
882 |
|
|
883 |
my %variant_id_to_position = |
|
884 |
map {$_->{id} => $_->{position}} |
|
885 |
@{$::form->{variants}}; |
|
886 |
|
|
887 |
my @to_sort = map { { old_pos => $variant_id_to_position{$_->id}, order_by => $method->($_) } } @items; |
|
888 |
if ($::form->{order_by} =~ /^(sellprice|lastcost)$/) { |
|
889 |
if ($::form->{sort_dir}) { |
|
890 |
@to_sort = sort { $a->{order_by} <=> $b->{order_by} } @to_sort; |
|
891 |
} else { |
|
892 |
@to_sort = sort { $b->{order_by} <=> $a->{order_by} } @to_sort; |
|
893 |
} |
|
894 |
} else { |
|
895 |
if ($::form->{sort_dir}) { |
|
896 |
@to_sort = sort { $a->{order_by} cmp $b->{order_by} } @to_sort; |
|
897 |
} else { |
|
898 |
@to_sort = sort { $b->{order_by} cmp $a->{order_by} } @to_sort; |
|
899 |
} |
|
900 |
}; |
|
901 |
|
|
902 |
$self->js->run('kivi.Part.redisplay_variants', \@to_sort)->render; |
|
903 |
} |
|
904 |
|
|
860 | 905 |
sub action_warehouse_changed { |
861 | 906 |
my ($self) = @_; |
862 | 907 |
|
Auch abrufbar als: Unified diff
Varianten: Sortieren der Variantentabelle ermöglicht