Class: Boats::BoatSalePricesSaveService
- Inherits:
-
AbstractPricesService
- Object
- AbstractPricesService
- Boats::BoatSalePricesSaveService
- Defined in:
- app/services/boats/boat_sale_prices_save_service.rb
Overview
- spec/services/boat/boat_sale_price_save_service_spec.rb
Instance Attribute Summary collapse
-
#is_for_sale ⇒ Object
readonly
Returns the value of attribute is_for_sale.
Attributes inherited from AbstractPricesService
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from AbstractPricesService
Constructor Details
This class inherits a constructor from AbstractPricesService
Instance Attribute Details
#is_for_sale ⇒ Object (readonly)
Returns the value of attribute is_for_sale.
7 8 9 |
# File 'app/services/boats/boat_sale_prices_save_service.rb', line 7 def is_for_sale @is_for_sale end |
Class Method Details
.perform(boat_id, price) ⇒ Object
9 10 11 |
# File 'app/services/boats/boat_sale_prices_save_service.rb', line 9 def self.perform(boat_id, price) new.perform boat_id, price end |
Instance Method Details
#perform(boat_id, price = nil) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'app/services/boats/boat_sale_prices_save_service.rb', line 13 def perform(boat_id, price = nil) _reset_ivars return false if price.nil? sp = price.dup sp[:boat_id] = boat_id sp[:is_orig] = true sp[:value] = sp[:value].is_a?(String) ? sp[:value].split(/[, ]/).join : sp[:value].to_i # с формы может прийти строка, сгруппированная по разрадям, вида "100,100,222" + тут же превращаем nil в 0 sp[:discount] = sp[:discount].present? ? sp[:discount] : 0 sp[:created_at] = '\'%s\'' % Time.now.to_s(:db) _build_other sp filtered2 = @built_prices + [sp] saved = nil ActiveRecord::Base.transaction do _delete_existing_records boat_id saved = _save filtered2 end @is_for_sale = _detect_for_sale saved true end |