2009-01-29 01:57:51 +01:00
|
|
|
class ArticlePrice < ActiveRecord::Base
|
|
|
|
|
|
|
|
belongs_to :article
|
|
|
|
has_many :order_articles
|
2010-07-01 16:12:02 +02:00
|
|
|
|
|
|
|
validates_presence_of :price, :tax, :deposit, :unit_quantity
|
2013-02-24 19:59:29 +01:00
|
|
|
validates_numericality_of :price, :unit_quantity, :greater_than => 0
|
2009-02-09 20:12:56 +01:00
|
|
|
|
|
|
|
# Custom attribute setter that accepts decimal numbers using localized decimal separator.
|
|
|
|
def price=(price)
|
|
|
|
self[:price] = String.delocalized_decimal(price)
|
|
|
|
end
|
|
|
|
|
|
|
|
# Custom attribute setter that accepts decimal numbers using localized decimal separator.
|
|
|
|
def tax=(tax)
|
|
|
|
self[:tax] = String.delocalized_decimal(tax)
|
|
|
|
end
|
|
|
|
|
|
|
|
# Custom attribute setter that accepts decimal numbers using localized decimal separator.
|
|
|
|
def deposit=(deposit)
|
|
|
|
self[:deposit] = String.delocalized_decimal(deposit)
|
|
|
|
end
|
2009-01-29 01:57:51 +01:00
|
|
|
|
|
|
|
# The financial gross, net plus tax and deposit.
|
|
|
|
def gross_price
|
2009-03-01 18:45:34 +01:00
|
|
|
((price + deposit) * (tax / 100 + 1)).round(2)
|
2009-01-29 01:57:51 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
# The price for the foodcoop-member.
|
|
|
|
def fc_price
|
2009-03-24 17:25:33 +01:00
|
|
|
(gross_price * (Foodsoft.config[:price_markup] / 100 + 1)).round(2)
|
2009-01-29 01:57:51 +01:00
|
|
|
end
|
|
|
|
end
|
2011-05-07 21:55:24 +02:00
|
|
|
|
|
|
|
# == Schema Information
|
|
|
|
#
|
|
|
|
# Table name: article_prices
|
|
|
|
#
|
|
|
|
# id :integer(4) not null, primary key
|
|
|
|
# article_id :integer(4)
|
|
|
|
# price :decimal(8, 2) default(0.0), not null
|
|
|
|
# tax :decimal(8, 2) default(0.0), not null
|
|
|
|
# deposit :decimal(8, 2) default(0.0), not null
|
|
|
|
# unit_quantity :integer(4)
|
|
|
|
# created_at :datetime
|
|
|
|
#
|
|
|
|
|