Remove code-duplication of artice price calculation
This commit is contained in:
parent
b35357d4b3
commit
2d4891bf1d
3 changed files with 16 additions and 23 deletions
|
@ -1,5 +1,6 @@
|
|||
# encoding: utf-8
|
||||
class Article < ActiveRecord::Base
|
||||
include PriceCalculation
|
||||
|
||||
# @!attribute name
|
||||
# @return [String] Article name
|
||||
|
@ -67,16 +68,6 @@ class Article < ActiveRecord::Base
|
|||
before_save :update_price_history
|
||||
before_destroy :check_article_in_use
|
||||
|
||||
# The financial gross, net plus tax and deposti
|
||||
def gross_price
|
||||
((price + deposit) * (tax / 100 + 1)).round(2)
|
||||
end
|
||||
|
||||
# The price for the foodcoop-member.
|
||||
def fc_price
|
||||
(gross_price * (FoodsoftConfig[:price_markup] / 100 + 1)).round(2)
|
||||
end
|
||||
|
||||
# Returns true if article has been updated at least 2 days ago
|
||||
def recently_updated
|
||||
updated_at > 2.days.ago
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
class ArticlePrice < ActiveRecord::Base
|
||||
include PriceCalculation
|
||||
|
||||
# @!attribute price
|
||||
# @return [Number] Net price
|
||||
|
@ -27,17 +28,4 @@ class ArticlePrice < ActiveRecord::Base
|
|||
validates_numericality_of :unit_quantity, :greater_than => 0
|
||||
validates_numericality_of :deposit, :tax
|
||||
|
||||
# Gross price = net price + deposit + tax.
|
||||
# @return [Number] Gross price.
|
||||
# @todo remove code-duplication with Article
|
||||
def gross_price
|
||||
((price + deposit) * (tax / 100 + 1)).round(2)
|
||||
end
|
||||
|
||||
# @return [Number] Price for the foodcoop-member.
|
||||
# @todo remove code-duplication with Article
|
||||
def fc_price
|
||||
(gross_price * (FoodsoftConfig[:price_markup] / 100 + 1)).round(2)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
14
app/models/concerns/price_calculation.rb
Normal file
14
app/models/concerns/price_calculation.rb
Normal file
|
@ -0,0 +1,14 @@
|
|||
module PriceCalculation
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
# Gross price = net price + deposit + tax.
|
||||
# @return [Number] Gross price.
|
||||
def gross_price
|
||||
((price + deposit) * (tax / 100 + 1)).round(2)
|
||||
end
|
||||
|
||||
# @return [Number] Price for the foodcoop-member.
|
||||
def fc_price
|
||||
(gross_price * (FoodsoftConfig[:price_markup] / 100 + 1)).round(2)
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue