Revision 98404f3e
Von Tamino Steinert vor etwa 1 Jahr hinzugefügt
| SL/DB/Manager/Part.pm | ||
|---|---|---|
|
return or => [ map { $prefix . $_ => $value } qw(partnumber description ean customerprices.customer_partnumber) ],
|
||
|
$prefix . 'customerprices';
|
||
|
},
|
||
|
has_variant_property_value_id => sub {
|
||
|
my ($key, $value, $prefix) = @_;
|
||
|
|
||
|
my @values = grep {$_}
|
||
|
ref $value eq 'ARRAY' ? @{$value} : split(/\s+/, $value);
|
||
|
return unless scalar @values;
|
||
|
|
||
|
my $where = join(' or ', ("val.id = ?") x @values) || '1=1';
|
||
|
my $query = <<SQL;
|
||
|
SELECT part_id from (
|
||
|
SELECT
|
||
|
t1.part_id, COUNT(*) as count_hits
|
||
|
FROM
|
||
|
variant_property_values val
|
||
|
JOIN variant_property_values_parts t1 ON (t1.variant_property_value_id = val.id)
|
||
|
WHERE
|
||
|
$where
|
||
|
GROUP BY t1.part_id
|
||
|
) as tmp
|
||
|
WHERE count_hits >= ?;
|
||
|
SQL
|
||
|
|
||
|
push @values, scalar @values; # count_hits
|
||
|
|
||
|
my @part_ids =
|
||
|
map {$_->{part_id}}
|
||
|
selectall_hashref_query($::form, $::form->get_standard_dbh, $query, @values);
|
||
|
|
||
|
return id => scalar @part_ids ? \@part_ids : (-1); # empty list not allowed
|
||
|
},
|
||
|
# all_with_variants => sub {
|
||
|
all => sub {
|
||
|
my ($key, $value, $prefix) = @_;
|
||
| ... | ... | |
|
return $open_qty
|
||
|
}
|
||
|
|
||
|
sub sort_variants {
|
||
|
my ($self, $variants) = @_;
|
||
|
|
||
|
my @sorted_variants =
|
||
|
map { $_->{variant} }
|
||
|
sort { $a->{sortkey} cmp $b->{sortkey} }
|
||
|
map { {
|
||
|
variant => $_,
|
||
|
sortkey => join('', map {
|
||
|
(10000 + $_->variant_property->sortkey ) . (10000 + $_->sortkey)
|
||
|
} @{$_->variant_property_values}
|
||
|
),
|
||
|
|
||
|
} }
|
||
|
@$variants;
|
||
|
return \@sorted_variants;
|
||
|
}
|
||
|
|
||
|
sub _sort_spec {
|
||
|
(
|
||
|
default => [ 'partnumber', 1 ],
|
||
Auch abrufbar als: Unified diff
Varianten: PartPicker: mehrere Varianten eines Stammartikel hinzufügen