Class: SpreeCmCommissioner::Accommodations::Find
- Inherits:
-
Object
- Object
- SpreeCmCommissioner::Accommodations::Find
- Defined in:
- app/finders/spree_cm_commissioner/accommodations/find.rb
Instance Attribute Summary collapse
-
#from_date ⇒ Object
readonly
Returns the value of attribute from_date.
-
#number_of_guests ⇒ Object
readonly
Returns the value of attribute number_of_guests.
-
#state_id ⇒ Object
readonly
Returns the value of attribute state_id.
-
#to_date ⇒ Object
readonly
Returns the value of attribute to_date.
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(from_date:, to_date:, state_id:, number_of_adults:, number_of_kids:) ⇒ Find
constructor
A new instance of Find.
Constructor Details
#initialize(from_date:, to_date:, state_id:, number_of_adults:, number_of_kids:) ⇒ Find
Returns a new instance of Find.
6 7 8 9 10 11 |
# File 'app/finders/spree_cm_commissioner/accommodations/find.rb', line 6 def initialize(from_date:, to_date:, state_id:, number_of_adults:, number_of_kids:) @from_date = from_date @to_date = to_date @state_id = state_id @number_of_guests = number_of_adults.to_i + number_of_kids.to_i end |
Instance Attribute Details
#from_date ⇒ Object (readonly)
Returns the value of attribute from_date.
4 5 6 |
# File 'app/finders/spree_cm_commissioner/accommodations/find.rb', line 4 def from_date @from_date end |
#number_of_guests ⇒ Object (readonly)
Returns the value of attribute number_of_guests.
4 5 6 |
# File 'app/finders/spree_cm_commissioner/accommodations/find.rb', line 4 def number_of_guests @number_of_guests end |
#state_id ⇒ Object (readonly)
Returns the value of attribute state_id.
4 5 6 |
# File 'app/finders/spree_cm_commissioner/accommodations/find.rb', line 4 def state_id @state_id end |
#to_date ⇒ Object (readonly)
Returns the value of attribute to_date.
4 5 6 |
# File 'app/finders/spree_cm_commissioner/accommodations/find.rb', line 4 def to_date @to_date end |
Instance Method Details
#execute ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'app/finders/spree_cm_commissioner/accommodations/find.rb', line 13 def execute scope .where(default_state_id: state_id) .where('spree_variants.track_inventory = FALSE OR cm_inventory_items.inventory_date BETWEEN ? AND ?', from_date, to_date) .where('spree_variants.track_inventory = FALSE OR cm_inventory_items.quantity_available > 0') .where('COALESCE(CAST(spree_variants.public_metadata->\'cm_options\'->>\'number-of-adults\' AS INTEGER), 0) + COALESCE(CAST(spree_variants.public_metadata->\'cm_options\'->>\'number-of-kids\' AS INTEGER), 0) >= ?', number_of_guests ) .distinct end |