edcf544b6b32855d2c936164bffff73ad24ba381
[kivitendo-erp.git] / SL / Controller / Part.pm
1 package SL::Controller::Part;
2
3 use strict;
4 use parent qw(SL::Controller::Base);
5
6 use SL::DB::Part;
7
8 # safety
9 __PACKAGE__->run_before(sub { $::auth->assert('part_service_assembly_edit') });
10
11 sub action_part_picker_testpage {
12   my ($self, %params) = @_;
13   $self->render('part/testpage');
14 }
15
16 sub action_ajax_autocomplete {
17   my ($self, %params) = @_;
18
19   my $limit  = $::form->{limit}  || 20;
20   my $type   = $::form->{type} || {};
21   my $query  = { ilike => "%$::form->{term}%" };
22   my @filter;
23   push @filter, SL::DB::Manager::Part->type_filter($type);
24   push @filter, ($::form->{column})
25     ? ($::form->{column} => $query)
26     : (or => [ partnumber => $query, description => $query ]);
27
28   $self->{parts} = SL::DB::Manager::Part->get_all(query => [ @filter ], limit => $limit);
29   $self->{value} = $::form->{column} || 'description';
30
31   $self->render('part/ajax_autocomplete', { no_layout => 1 });
32 }
33
34
35 1;