69 lines
1.5 KiB
Ruby
Executable File
69 lines
1.5 KiB
Ruby
Executable File
class ProductOrderProduct < ActiveRecord::Base
|
|
belongs_to :order
|
|
belongs_to :product
|
|
|
|
|
|
belongs_to :product_size
|
|
belongs_to :product_option
|
|
|
|
belongs_to :archived_product, class_name: "Product"
|
|
belongs_to :archived_product_size, class_name: "ProductSize"
|
|
belongs_to :archived_product_option, class_name: "ProductOption"
|
|
|
|
def price_ttc_with_qty
|
|
qty.to_f * product.price_ttc.to_f
|
|
end
|
|
|
|
def final_price_ttc_with_qty
|
|
qty.to_f * product.final_price_ttc.to_f
|
|
end
|
|
|
|
def final_price_ht_with_qty
|
|
qty.to_f * product.final_price_ht.to_f
|
|
end
|
|
|
|
|
|
|
|
def archived_price_ttc_with_qty
|
|
if archived_product
|
|
qty.to_f * archived_product.price_ttc.to_f
|
|
else
|
|
0
|
|
end
|
|
end
|
|
|
|
|
|
def archived_final_price_ttc_with_qty
|
|
if archived_product
|
|
qty.to_f * archived_product.final_price_ttc.to_f
|
|
else
|
|
0
|
|
end
|
|
end
|
|
|
|
|
|
def verify_qty
|
|
|
|
product_stock_t = self.product.product_stocks.where(:product_option_id => self.product_option_id,:product_size_id => self.product_size_id).first
|
|
|
|
if product_stock_t and self.qty > product_stock_t.stock_th
|
|
self.qty = product_stock_t.stock_th
|
|
elsif !product_stock_t
|
|
|
|
self.qty = 0
|
|
end
|
|
end
|
|
|
|
def update_stock_th
|
|
product_stock_t = self.product.product_stocks.where(:product_option_id => self.product_option_id,:product_size_id => self.product_size_id).first
|
|
|
|
if product_stock_t
|
|
product_stock_t.stock_th = product_stock_t.stock_th - self.qty
|
|
product_stock_t.save
|
|
|
|
end
|
|
end
|
|
|
|
|
|
end
|