Revision a97fc370
Von Tamino Steinert vor etwa 1 Jahr hinzugefügt
SL/Controller/Part.pm | ||
---|---|---|
$self->js->run('kivi.Part.redisplay_items', \@to_sort)->render;
|
||
}
|
||
|
||
sub action_reorder_variants {
|
||
my ($self) = @_;
|
||
|
||
my $part= $self->part;
|
||
|
||
my %sort_keys = (
|
||
partnumber => sub { $_[0]->partnumber },
|
||
description => sub { $_[0]->description },
|
||
sellprice => sub { $_[0]->sellprice },
|
||
lastcost => sub { $_[0]->lastcost },
|
||
variant_values => sub { $_[0]->variant_values },
|
||
);
|
||
foreach my $variant_property (@{$part->variant_properties}) {
|
||
my $key = 'variant_property_' . $variant_property->unique_name;
|
||
$sort_keys{$key} = sub {
|
||
$_[0]->get_variant_property_value_by_unique_name($variant_property->unique_name)->value;
|
||
}
|
||
}
|
||
|
||
my $method = $sort_keys{$::form->{order_by}};
|
||
|
||
my @items = $part->variants;
|
||
|
||
my %variant_id_to_position =
|
||
map {$_->{id} => $_->{position}}
|
||
@{$::form->{variants}};
|
||
|
||
my @to_sort = map { { old_pos => $variant_id_to_position{$_->id}, order_by => $method->($_) } } @items;
|
||
if ($::form->{order_by} =~ /^(sellprice|lastcost)$/) {
|
||
if ($::form->{sort_dir}) {
|
||
@to_sort = sort { $a->{order_by} <=> $b->{order_by} } @to_sort;
|
||
} else {
|
||
@to_sort = sort { $b->{order_by} <=> $a->{order_by} } @to_sort;
|
||
}
|
||
} else {
|
||
if ($::form->{sort_dir}) {
|
||
@to_sort = sort { $a->{order_by} cmp $b->{order_by} } @to_sort;
|
||
} else {
|
||
@to_sort = sort { $b->{order_by} cmp $a->{order_by} } @to_sort;
|
||
}
|
||
};
|
||
|
||
$self->js->run('kivi.Part.redisplay_variants', \@to_sort)->render;
|
||
}
|
||
|
||
sub action_warehouse_changed {
|
||
my ($self) = @_;
|
||
|
Auch abrufbar als: Unified diff
Varianten: Sortieren der Variantentabelle ermöglicht