Module: SpreeDeliveryOptions::BaseHelper

Defined in:
app/helpers/spree_delivery_options/base_helper.rb

Instance Method Summary collapse

Instance Method Details

#current_order_cutoff_timeObject



4
5
6
7
8
9
10
# File 'app/helpers/spree_delivery_options/base_helper.rb', line 4

def current_order_cutoff_time
  return nil unless (current_order && current_order.delivery_date)
  
  cutoff_time = Time.zone.now.change(hour: SpreeDeliveryOptions::Config.delivery_cut_off_hour)
  cutoff_date = current_order.delivery_date - 1.day
  "#{cutoff_date.strftime('%A, %d %b')} before #{cutoff_time.strftime("%l%P")}"
end

#next_delivery_dayObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/helpers/spree_delivery_options/base_helper.rb', line 21

def next_delivery_day
  delivery_options = JSON.parse(SpreeDeliveryOptions::Config.delivery_time_options)

  cutoff_time = Time.zone.now.change(hour: SpreeDeliveryOptions::Config.delivery_cut_off_hour)

  current_day = Time.zone.now > cutoff_time ? (Date.current + 2.days) : (Date.current + 1.day)
  next_available_day = nil
  counter = 0

  until next_available_day || counter > 7 do
    if delivery_options[current_day.strftime('%A').downcase]
      next_available_day = current_day
    else
      current_day = current_day + 1.day
      counter = counter + 1
    end
  end
  next_available_day
end

#next_delivery_slotObject



12
13
14
15
16
17
18
19
# File 'app/helpers/spree_delivery_options/base_helper.rb', line 12

def next_delivery_slot
  delivery_options = JSON.parse(SpreeDeliveryOptions::Config.delivery_time_options)

  delivery_day = next_delivery_day
  return "" unless delivery_day

  "#{delivery_day.strftime('%A').titleize} between #{delivery_options[delivery_day.strftime('%A').downcase].first}"
end