Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 9f666261

Von Sven Schöling vor fast 10 Jahren hinzugefügt

  • ID 9f66626118ec0cdcee8082b3d81f288bbfa23648
  • Vorgänger 226002b0
  • Nachfolger 30590722

PriceSource: Priorität auf Preisquellenebene verstehen und umsetzen.

Priorität kann jetzt von den einzelnen Preisquellen durchgereicht werden

Unterschiede anzeigen:

SL/PriceSource.pm
}
sub best_price {
min_by { $_->price } grep { $_->price > 0 } grep { $_ } map { $_->best_price } $_[0]->all_price_sources;
min_by { $_->price } max_by { $_->priority } grep { $_->price > 0 } grep { $_ } map { $_->best_price } $_[0]->all_price_sources;
}
sub best_discount {
max_by { $_->discount } grep { $_->discount } grep { $_ } map { $_->best_discount } $_[0]->all_price_sources;
max_by { $_->discount } max_by { $_->priority } grep { $_->discount } grep { $_ } map { $_->best_discount } $_[0]->all_price_sources;
}
sub empty_price {
SL/PriceSource/Discount.pm
use parent 'SL::DB::Object';
use Rose::Object::MakeMethods::Generic (
scalar => [ qw(discount description spec price_source invalid missing) ],
'scalar --get_set_init' => [ qw(priority) ],
);
require SL::DB::Helper::Attr;
......
"source: @{[ $_[0]->source ]}, discount: @{[ $_[0]->discount ]}, description: @{[ $_[0]->description ]}"
}
sub init_priority {
3
}
1;
__END__
......
A ref to the creating algorithm.
=item C<priority>
OPTIONAL. Discounts may supply a numerical priority. Higher will trump over lower, even when
supplying lower discounts. Defaults to 3 (as in middle of 1-5).
=item C<missing>
OPTIONAL. Both indicator and localized message that the discount with this spec
SL/PriceSource/Price.pm
use parent 'SL::DB::Object';
use Rose::Object::MakeMethods::Generic (
scalar => [ qw(price description spec price_source invalid missing) ],
'scalar --get_set_init' => [ qw(priority) ],
);
require SL::DB::Helper::Attr;
......
"source: @{[ $_[0]->source ]}, price: @{[ $_[0]->price ]}, description: @{[ $_[0]->description ]}"
}
sub init_priority {
3
}
1;
__END__
......
A ref to the creating algorithm.
=item C<priority>
OPTIONAL. Prices may supply a numerical priority. Higher will trump over lower, even when
supplying higher prices. Defaults to 3 (as in middle of 1-5).
=item C<missing>
OPTIONAL. Both indicator and localized message that the price with this spec
SL/PriceSource/PriceRules.pm
price => $self->price_for_rule($rule),
spec => $rule->id,
description => $rule->name,
priority => $rule->priority,
price_source => $self,
(invalid => t8('This Price Rule is no longer valid'))x!!$rule->obsolete,
)
......
discount => $rule->discount / 100,
spec => $rule->id,
description => $rule->name,
priority => $rule->priority,
price_source => $self,
(invalid => t8('This Price Rule is no longer valid'))x!!$rule->obsolete,
)

Auch abrufbar als: Unified diff