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