X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/5dd5e97bc9fe0aee0be2621fe11d48c86be40a5d..e8889e47af38072dc6fcbb4d97e2fdcc30d948d7:/SL/Controller/Order.pm diff --git a/SL/Controller/Order.pm b/SL/Controller/Order.pm index 8bebe381d..5c8685fbb 100644 --- a/SL/Controller/Order.pm +++ b/SL/Controller/Order.pm @@ -371,6 +371,7 @@ sub action_add_item { ->run('row_table_scroll_down') ->run('row_set_keyboard_events_by_id', $item_id) ->run('set_unit_change_with_oldval_by_id', $item_id) + ->run('renumber_positions') ->on('.recalc', 'change', 'recalc_amounts_and_taxes') ->on('.reformat_number', 'change', 'reformat_number') ->focus('#add_item_parts_id_name'); @@ -429,6 +430,7 @@ sub action_add_multi_items { $self->js ->run('close_multi_items_dialog') ->run('row_table_scroll_down') + ->run('renumber_positions') ->on('.recalc', 'change', 'recalc_amounts_and_taxes') ->on('.reformat_number', 'change', 'reformat_number') ->focus('#add_item_parts_id_name'); @@ -447,6 +449,29 @@ sub action_recalc_amounts_and_taxes { $self->js->render(); } +sub action_reorder_items { + my ($self) = @_; + + my %sort_keys = ( + partnumber => sub { $_[0]->part->partnumber }, + description => sub { $_[0]->description }, + qty => sub { $_[0]->qty }, + sellprice => sub { $_[0]->sellprice }, + discount => sub { $_[0]->discount }, + ); + + 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 { $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('redisplay_items', \@to_sort) + ->render; +} + sub action_price_popup { my ($self) = @_;