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