54 lines
1.1 KiB
Ruby
54 lines
1.1 KiB
Ruby
class SubProduct < ActiveRecord::Base
|
|
belongs_to :fournisseur
|
|
belongs_to :product
|
|
belongs_to :product_order_product
|
|
|
|
def price_ht_with_qte
|
|
self.calculated_price.to_f * self.qte
|
|
end
|
|
|
|
def qte_tot
|
|
if self.product_order_product
|
|
self.qte * self.product_order_product.qty
|
|
else
|
|
0.0
|
|
end
|
|
end
|
|
|
|
def price_tot_with_qte
|
|
self.qte_tot * self.calculated_price.to_f
|
|
end
|
|
|
|
def calculated_price
|
|
|
|
if self.product_order_product.price_ht
|
|
price_order_product = self.product_order_product.price_ht
|
|
end
|
|
|
|
if self.price_type == "reste"
|
|
if price_order_product
|
|
somme = 0.0
|
|
self.product_order_product.sub_products.where("price_type != ?", "reste" ).each do |sp|
|
|
somme += sp.calculated_price
|
|
end
|
|
|
|
|
|
(price_order_product - somme).round(2)
|
|
else
|
|
0.0
|
|
end
|
|
elsif self.price_type == "percent"
|
|
if price_order_product
|
|
|
|
|
|
(price_order_product * (self.price_ht/100)).round(2)
|
|
else
|
|
0.0
|
|
end
|
|
else
|
|
self.price_ht.round(2)
|
|
end
|
|
end
|
|
|
|
end
|