app/models/c80_estate/area.rb in c80_estate-0.1.0.26 vs app/models/c80_estate/area.rb in c80_estate-0.1.0.27
- old
+ new
@@ -257,16 +257,45 @@
def last_updater
sevents.last.auser.email
end
+ # выдать цену за м.кв. в месяц
def price_value
+
res = 0.0
- p = item_props.where(:prop_name_id => 1)
- if p.count > 0
- res = p.first.value.to_f
+ mark_use_usual_price = false
+
+ # если указана "цена за площадь",
+ # то цену за м кв. в месяц высчитываем
+ pa = item_props.where(:prop_name_id => 14)
+ if pa.count > 0
+ pa_val = pa.first.value.to_f
+
+ if pa_val == 0
+ # если руками было проставлено 0 - т.е. свойство как бы было удалено, выключено
+ mark_use_usual_price = true
+ else
+ if square_value != 0
+ # результат получаем только тогда, когда указана площадь и когда указана цена за площадь
+ res = pa_val / square_value
+ else
+ # если не указана площадь - то берём обычную цену
+ mark_use_usual_price = true
+ end
+ end
+ else
+ mark_use_usual_price = true
end
+
+ if mark_use_usual_price
+ p = item_props.where(:prop_name_id => 1)
+ if p.count > 0
+ res = p.first.value.to_f
+ end
+ end
+
res
end
def square_value
res = 0.0
@@ -286,9 +315,22 @@
url = 'no_thumb.png'
if aphotos.count > 0
url = aphotos.first.image.thumb512
end
url
+ end
+
+ # вернёт true, если вручную указана цена за всю площадь
+ def is_locked_area_price?
+ res = false
+ pa = item_props.where(:prop_name_id => 14)
+ if pa.count > 0
+ pa_val = pa.first.value.to_f
+ if pa_val > 0
+ res = true
+ end
+ end
+ res
end
ransacker :item_prop_price_val,
formatter: proc { |price_range| # 10,156
results = C80Estate::Area.where_price_range(price_range).map(&:id)
\ No newline at end of file