module PriceCalculation extend ActiveSupport::Concern # Gross price = net price + deposit + tax. # @return [Number] Gross price. def gross_price add_percent(price, tax) + deposit end def gross_price_without_deposit add_percent(price, tax) end def net_deposit_price remove_percent(deposit, tax) end # @return [Number] Price for the foodcoop-member. def fc_price add_percent(gross_price, FoodsoftConfig[:price_markup].to_i) end def fc_price_without_deposit add_percent(gross_price_without_deposit, FoodsoftConfig[:price_markup].to_i) end def fc_deposit_price add_percent(deposit, FoodsoftConfig[:price_markup].to_i) end private def remove_percent(value, percent) (value / ((percent * 0.01) + 1)).round(2) end def add_percent(value, percent) (value * ((percent * 0.01) + 1)).round(2) end end