my ($self, $source, $spec) = @_;
my $rule = SL::DB::Manager::PriceRule->find_by(id => $spec);
+
+ return SL::PriceSource::Discount->new(
+ price_source => $self,
+ missing => t8('The price rule for this price does not exist anymore'),
+ ) if !$rule;
+
if ($rule->price_type != SL::DB::Manager::PriceRule::PRICE_DISCOUNT()) {
return $self->make_price_from_rule($rule);
+ } else {
+ return SL::PriceSource::Price->new(
+ price_source => $self,
+ invalid => t8('The price rule is not a rule for prices'),
+ );
}
-
- return;
}
sub discount_from_source {
my ($self, $source, $spec) = @_;
my $rule = SL::DB::Manager::PriceRule->find_by(id => $spec);
+
+ return SL::PriceSource::Discount->new(
+ price_source => $self,
+ missing => t8('The price rule for this discount does not exist anymore'),
+ ) if !$rule;
+
if ($rule->price_type == SL::DB::Manager::PriceRule::PRICE_DISCOUNT()) {
return $self->make_discount_from_rule($rule);
+ } else {
+ return SL::PriceSource::Discount->new(
+ price_source => $self,
+ invalid => t8('The price rule is not a rule for discounts'),
+ );
}
-
- return;
}
sub best_price {