__PACKAGE__->make_manager_methods;
__PACKAGE__->add_filter_specs(
- type => sub {
+ part_type => sub {
my ($key, $value, $prefix) = @_;
return __PACKAGE__->type_filter($value, $prefix);
},
$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;
+ $type = [ grep { $type->{$_} } keys %$type ];
}
- my @types = listify($type);
+ my @types = grep { $_ } listify($type);
my @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');
}
}
- return @filter > 2 ? (or => \@filter) :
- @filter ? @filter : ();
+ return @filter > 2 ? (or => \@filter) : @filter;
}
sub get_ordered_qty {