X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FPriceSource%2FPriceRules.pm;h=48ab563115bf5a2f7ee337aa60cfaef663905bcf;hb=ef351df30360376cf16a1c5ce64be8e0ff630a5a;hp=c9cecf9314e24d5f1723b73aa0484089166e9144;hpb=bc8c26f36837b8f7e7ded304cdf475b479999277;p=kivitendo-erp.git diff --git a/SL/PriceSource/PriceRules.pm b/SL/PriceSource/PriceRules.pm index c9cecf931..48ab56311 100644 --- a/SL/PriceSource/PriceRules.pm +++ b/SL/PriceSource/PriceRules.pm @@ -45,10 +45,39 @@ sub price_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 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'), + ); + } +} + +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 $self->make_price_from_rule($rule); + return SL::PriceSource::Discount->new( + price_source => $self, + invalid => t8('The price rule is not a rule for discounts'), + ); } } @@ -92,7 +121,9 @@ sub make_price_from_rule { 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, ) } @@ -103,7 +134,9 @@ sub make_discount_from_rule { 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, ) }