Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 89b26688

Von Sven Schöling vor mehr als 9 Jahren hinzugefügt

  • ID 89b2668811eac6023ad58322e2f9970ddb6a27c9
  • Vorgänger c653b98f
  • Nachfolger 766ed2a6

PriceSource: Rabattbehandlung

Unterschiede anzeigen:

SL/PriceSource.pm
6 6
  scalar => [ qw(record_item record) ],
7 7
);
8 8

  
9
use List::UtilsBy qw(min_by);
9
use List::UtilsBy qw(min_by max_by);
10 10
use SL::PriceSource::ALL;
11 11
use SL::PriceSource::Price;
12 12
use SL::Locale::String;
......
14 14
sub all_price_sources {
15 15
  my ($self) = @_;
16 16

  
17
  return map {
17
  map {
18 18
    $_->new(record_item => $self->record_item, record => $self->record)
19 19
  } SL::PriceSource::ALL->all_enabled_price_sources
20 20
}
......
26 26
  my $class = SL::PriceSource::ALL->price_source_class_by_name($source_name);
27 27

  
28 28
  return $class
29
    ? $class->new(record_item => $self->record_item)->price_from_source($source, $spec)
29
    ? $class->new(record_item => $self->record_item, record => $self->record)->price_from_source($source, $spec)
30 30
    : empty_price();
31 31
}
32 32

  
......
34 34
  map { $_->available_prices } $_[0]->all_price_sources;
35 35
}
36 36

  
37
sub available_discounts {
38
  map { $_->available_discounts } $_[0]->all_price_sources;
39
}
40

  
37 41
sub best_price {
38
  min_by { $_->price } grep { $_->price > 0 } map { $_->best_price } $_[0]->all_price_sources;
42
  min_by { $_->price } grep { $_->price > 0 } grep { $_ } map { $_->best_price } $_[0]->all_price_sources;
43
}
44

  
45
sub best_discount {
46
  max_by { $_->discount } grep { $_->discount } grep { $_ } map { $_->best_discount } $_[0]->all_price_sources;
39 47
}
40 48

  
41 49
sub empty_price {

Auch abrufbar als: Unified diff