Revision 986282c1
Von Sven Schöling vor mehr als 9 Jahren hinzugefügt
SL/DB/Manager/PriceRule.pm | ||
---|---|---|
17 | 17 |
sub object_class { 'SL::DB::PriceRule' } |
18 | 18 |
|
19 | 19 |
__PACKAGE__->make_manager_methods; |
20 |
__PACKAGE__->add_filter_specs( |
|
21 |
has_item_type => sub { |
|
22 |
my ($key, $values, $prefix) = @_; |
|
23 |
return unless @$values; |
|
24 |
|
|
25 |
my $each_type = "SELECT DISTINCT price_rules_id FROM price_rule_items WHERE type = %s"; |
|
26 |
my $sub_query = join ' INTERSECT ', map { sprintf $each_type, $::form->get_standard_dbh->quote($_) } @$values; |
|
27 |
return or => [ ${prefix} . 'id' => [ \$sub_query ] ]; |
|
28 |
}, |
|
29 |
item_type_matches => sub { |
|
30 |
my ($key, $values, $prefix) = @_; |
|
31 |
return unless @$values; |
|
32 |
return unless 'HASH' eq ref $values->[0]; |
|
33 |
return unless grep $_, values %{ $values->[0] }; |
|
34 |
|
|
35 |
my $each_type = "SELECT DISTINCT price_rules_id FROM price_rule_items WHERE type = %s AND (%s)"; |
|
36 |
my $sub_query = join ' INTERSECT ', map { |
|
37 |
sprintf $each_type, $::form->get_standard_dbh->quote($_), SL::DB::Manager::PriceRuleItem->filter_match($_, $values->[0]{$_}) |
|
38 |
} grep { $values->[0]{$_} } keys %{ $values->[0] }; |
|
39 |
return or => [ ${prefix} . 'id' => [ \$sub_query ] ]; |
|
40 |
}, |
|
41 |
); |
|
20 | 42 |
|
21 | 43 |
sub get_matching_filter { |
22 | 44 |
my ($class, %params) = @_; |
Auch abrufbar als: Unified diff
PriceRule: Mehr Filteroptionen