PriceRule: Nicht Fehler werfen wenn _garkeine_ Regel zutrifft
authorSven Schöling <s.schoeling@linet-services.de>
Fri, 12 Sep 2014 15:59:32 +0000 (17:59 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Thu, 18 Dec 2014 15:18:51 +0000 (16:18 +0100)
SL/PriceSource/PriceRules.pm

index 1fee032..514cadb 100644 (file)
@@ -36,7 +36,14 @@ sub price_from_source {
 sub best_price {
   my ($self) = @_;
 
-  $self->make_price_from_rule( min_by { $self->price_for_rule($_) } max_by { $_->priority } @{ $self->available_rules });
+  my $rules     = $self->available_rules;
+
+  return unless @$rules;
+
+  my @max_prio  = max_by { $_->priority } @$rules;
+  my $min_price = min_by { $self->price_for_rule($_) } @max_prio;
+
+  $self->make_price_from_rule($min_price);
 }
 
 sub price_for_rule {