Module: SpreeCmCommissioner::LineItemDurationable
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/models/concerns/spree_cm_commissioner/line_item_durationable.rb
Instance Method Summary collapse
- #amount_per_date_unit ⇒ Object
- #checkin_date ⇒ Object
- #checkout_date ⇒ Object
- #date_present? ⇒ Boolean
- #date_range ⇒ Object
- #date_unit ⇒ Object
Instance Method Details
#amount_per_date_unit ⇒ Object
14 15 16 |
# File 'app/models/concerns/spree_cm_commissioner/line_item_durationable.rb', line 14 def amount_per_date_unit amount / date_unit end |
#checkin_date ⇒ Object
39 40 41 |
# File 'app/models/concerns/spree_cm_commissioner/line_item_durationable.rb', line 39 def checkin_date from_date&.to_datetime end |
#checkout_date ⇒ Object
43 44 45 46 47 |
# File 'app/models/concerns/spree_cm_commissioner/line_item_durationable.rb', line 43 def checkout_date return to_date ? to_date.to_datetime + 1.day : nil if accommodation? to_date&.to_datetime end |
#date_present? ⇒ Boolean
10 11 12 |
# File 'app/models/concerns/spree_cm_commissioner/line_item_durationable.rb', line 10 def date_present? from_date.present? && to_date.present? end |
#date_range ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'app/models/concerns/spree_cm_commissioner/line_item_durationable.rb', line 24 def date_range return [] unless date_present? return [] unless permanent_stock? # For transit products (e.g., bus, train), only return the departure day, # as the booking represents a single trip rather than a duration. return [from_date.to_date] if transit? # For products with a stay or usage period (e.g., hotel, car rental, activities), # return the full date range from start to end, inclusive. return (from_date.to_date..to_date.to_date).to_a if service? || accommodation? [] end |
#date_unit ⇒ Object
18 19 20 21 22 |
# File 'app/models/concerns/spree_cm_commissioner/line_item_durationable.rb', line 18 def date_unit return nil unless permanent_stock? date_range.size end |