app/models/c80_catoffers/offer.rb in c80_catoffers-0.1.0.6 vs app/models/c80_catoffers/offer.rb in c80_catoffers-0.1.0.7

- old
+ new

@@ -1,8 +1,9 @@ require "babosa" module C80Catoffers + class Offer < ActiveRecord::Base has_many :ophotos, :dependent => :destroy accepts_nested_attributes_for :ophotos, :reject_if => lambda { |attributes| @@ -10,13 +11,17 @@ }, :allow_destroy => true scope :def_order, -> {order(:created_at => :desc)} + after_update :recalc_parent_sample_price + after_create :recalc_parent_sample_price + has_and_belongs_to_many :categories has_and_belongs_to_many :props + # один Offer может соответствовать нескольким Строкам has_many :crows, :dependent => :destroy extend FriendlyId friendly_id :title, use: :slugged def normalize_friendly_id(input) @@ -73,8 +78,22 @@ def price_integer d = self.price.match '\d+' d.present? ? d[0].to_i : 0 end + def recalc_parent_sample_price + # если Пример состоит в Строке + if crows.count > 0 + # переберём его Строки + crows.each do |crow| + Rails.logger.debug "[TRACE] <Offer.recalc_parent_sample_price> Пересчитать стоимость Примера id=#{crow.csample.id}." + # добираемся до Примера, в чьём составе находится Строка, которая "содержит" данное Преложение, и просим его пересчитать цену + crow.csample.recalc_summ_price + end + else + Rails.logger.debug '[TRACE] <Offer.recalc_parent_sample_price> У Предложения нет Строк.' + end + end + end end \ No newline at end of file