Class: DeliveryChannel::ManualCourier

Inherits:
CourierBase show all
Defined in:
app/my_lib/delivery_channel/manual_courier.rb

Overview

typed: ignore

Instance Method Summary collapse

Methods inherited from CourierBase

#cancel_order, country_to_iso, #destroy_reservation_driver, #driver_detail, #find_delivery_channel, generate_delivery_time, #get_quotation_from_reservation, #order_detail, #order_model, #reset_delivery_channel, #self_deliver?, #should_reorder_driver, #skip_reorder_driver, #valid_reservation?

Methods included from DefaultErrorContainer

#error, #error_message_simple, #merge_errors

Instance Method Details

#cancel_order_from_reservation_later(reservation, skip_reorder: default_skip_reorder_value) ⇒ Object



16
17
18
# File 'app/my_lib/delivery_channel/manual_courier.rb', line 16

def cancel_order_from_reservation_later(reservation, skip_reorder: default_skip_reorder_value)
  force_cancel_order(reservation, skip_reorder: skip_reorder)
end

#force_cancel_order(reservation, skip_reorder: default_skip_reorder_value) ⇒ Object



7
8
9
10
11
12
13
14
# File 'app/my_lib/delivery_channel/manual_courier.rb', line 7

def force_cancel_order(reservation, skip_reorder: default_skip_reorder_value)
  destroy_reservation_driver(reservation)
  reset_delivery_channel(reservation)
  skip_reorder_driver(reservation) if skip_reorder

  MyPusher::ReservationDriver.broadcast_reservation(reservation, :destroy)
  true
end


3
4
5
# File 'app/my_lib/delivery_channel/manual_courier.rb', line 3

def generate_tracking_link(_)
  ''
end

#place_an_order_from_reservation(reservation) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/my_lib/delivery_channel/manual_courier.rb', line 20

def place_an_order_from_reservation(reservation)
  driver = reservation.build_driver
  driver.is_complete = true
  driver.status = Driver::DELIVERED
  driver.save!

  reservation.update! delivery_channel: find_delivery_channel, driver_called: true

  MyPusher::ReservationDriver.broadcast_reservation(reservation, :update)
  update_firebase_delivery_detail(reservation)
  true
end

#place_an_order_from_reservation_later(reservation) ⇒ Object



33
34
35
36
37
# File 'app/my_lib/delivery_channel/manual_courier.rb', line 33

def place_an_order_from_reservation_later(reservation)
  delivery_channel = DeliveryChannel.fetch_by_lib_class self.class.to_s
  reservation.update! delivery_channel: delivery_channel
  place_an_order_from_reservation(reservation)
end