X-Git-Url: http://wagnertech.de/git?p=kivitendo-erp.git;a=blobdiff_plain;f=SL%2FDB%2FManager%2FPart.pm;fp=SL%2FDB%2FManager%2FPart.pm;h=b46f851cf2166cc142d6d17e082a88bbda47d740;hp=0b751bd34b58bd6af513252f8dfc9cb28ab5f20f;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hpb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44 diff --git a/SL/DB/Manager/Part.pm b/SL/DB/Manager/Part.pm index 0b751bd34..b46f851cf 100644 --- a/SL/DB/Manager/Part.pm +++ b/SL/DB/Manager/Part.pm @@ -16,14 +16,24 @@ sub object_class { 'SL::DB::Part' } __PACKAGE__->make_manager_methods; __PACKAGE__->add_filter_specs( - type => sub { + part_type => sub { my ($key, $value, $prefix) = @_; return __PACKAGE__->type_filter($value, $prefix); }, all => sub { my ($key, $value, $prefix) = @_; - return or => [ map { $prefix . $_ => $value } qw(partnumber description) ] - } + return or => [ map { $prefix . $_ => $value } qw(partnumber description ean) ] + }, + all_with_makemodel => sub { + my ($key, $value, $prefix) = @_; + return or => [ map { $prefix . $_ => $value } qw(partnumber description ean makemodels.model) ], + $prefix . 'makemodels'; + }, + all_with_customer_partnumber => sub { + my ($key, $value, $prefix) = @_; + return or => [ map { $prefix . $_ => $value } qw(partnumber description ean customerprices.customer_partnumber) ], + $prefix . 'customerprices'; + }, ); sub type_filter { @@ -33,7 +43,7 @@ sub type_filter { $prefix //= ''; - # this is to make selection like type => { part => 1, service => 1 } work + # this is to make selections like part_type => { part => 1, service => 1 } work if ('HASH' eq ref $type) { $type = [ grep { $type->{$_} } keys %$type ]; } @@ -43,16 +53,13 @@ sub type_filter { for my $type (@types) { if ($type =~ m/^part/) { - push @filter, (and => [ or => [ $prefix . assembly => 0, $prefix . assembly => undef ], - "!${prefix}inventory_accno_id" => 0, - "!${prefix}inventory_accno_id" => undef, - ]); + push @filter, ($prefix . part_type => 'part'); } elsif ($type =~ m/^service/) { - push @filter, (and => [ or => [ $prefix . assembly => 0, $prefix . assembly => undef ], - or => [ $prefix . inventory_accno_id => 0, $prefix . inventory_accno_id => undef ], - ]); - } elsif ($type =~ m/^assembl/) { - push @filter, ($prefix . assembly => 1); + push @filter, ($prefix . part_type => 'service'); + } elsif ($type =~ m/^assembly/) { + push @filter, ($prefix . part_type => 'assembly'); + } elsif ($type =~ m/^assortment/) { + push @filter, ($prefix . part_type => 'assortment'); } }