X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FManager%2FPart.pm;h=50219cb61d596470259fc7e779fad1d0c09c1fd0;hb=402784a1a94a7ec012568443060696ccc81fbbb3;hp=1564b9b79958d82c7b46b90969e0237ad54ac56c;hpb=82515b2d93dc5632f24d6e0b6f8f05f3fd19fbb0;p=kivitendo-erp.git diff --git a/SL/DB/Manager/Part.pm b/SL/DB/Manager/Part.pm index 1564b9b79..50219cb61 100644 --- a/SL/DB/Manager/Part.pm +++ b/SL/DB/Manager/Part.pm @@ -2,37 +2,41 @@ package SL::DB::Manager::Part; use strict; -use SL::DB::Helpers::Manager; -use base qw(SL::DB::Helpers::Manager); +use SL::DB::Helper::Manager; +use base qw(SL::DB::Helper::Manager); use Carp; use SL::DBUtils; +use SL::MoreCommon qw(listify); sub object_class { 'SL::DB::Part' } __PACKAGE__->make_manager_methods; sub type_filter { - my $class = shift; - my $type = lc(shift || ''); - - if ($type =~ m/^part/) { - return (and => [ or => [ assembly => 0, assembly => undef ], - '!inventory_accno_id' => 0, - '!inventory_accno_id' => undef, - ]); - - } elsif ($type =~ m/^service/) { - return (and => [ or => [ assembly => 0, assembly => undef ], - or => [ inventory_accno_id => 0, inventory_accno_id => undef ], - ]); - - } elsif ($type =~ m/^assembl/) { - return (assembly => 1); - + my ($class, $type) = @_; + + return () unless $type; + + my @types = listify($type); + my @filter; + + for my $type (@types) { + if ($type =~ m/^part/) { + push @filter, (and => [ or => [ assembly => 0, assembly => undef ], + '!inventory_accno_id' => 0, + '!inventory_accno_id' => undef, + ]); + } elsif ($type =~ m/^service/) { + push @filter, (and => [ or => [ assembly => 0, assembly => undef ], + or => [ inventory_accno_id => 0, inventory_accno_id => undef ], + ]); + } elsif ($type =~ m/^assembl/) { + push @filter, (assembly => 1); + } } - return (); + return @filter ? (or => \@filter) : (); } sub get_ordered_qty {