Module: SpreeCmCommissioner::OrderRequestable

Extended by:
ActiveSupport::Concern
Defined in:
app/models/concerns/spree_cm_commissioner/order_requestable.rb

Instance Method Summary collapse

Instance Method Details

#accepted_by(user) ⇒ Object

allow authorized user to accept all requested line items



69
70
71
72
73
74
75
76
77
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 69

def accepted_by(user)
  transaction do
    accept!

    line_items.each do |line_item|
      line_item.accepted_by(user)
    end
  end
end

#can_accept_all?Boolean

can_accepted? already use by ransack/visitor.rb

Returns:

  • (Boolean)


80
81
82
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 80

def can_accept_all?
  approved? && requested?
end

#can_alert_request_to_vendor?Boolean

Returns:

  • (Boolean)


88
89
90
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 88

def can_alert_request_to_vendor?
  !accepted? && approved? && need_confirmation?
end

#can_reject_all?Boolean

Returns:

  • (Boolean)


84
85
86
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 84

def can_reject_all?
  approved? && requested?
end

#need_confirmation?Boolean

Returns:

  • (Boolean)


96
97
98
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 96

def need_confirmation?
  line_items.any?(&:need_confirmation)
end

#notify_order_complete_app_notification_to_userObject



117
118
119
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 117

def notify_order_complete_app_notification_to_user
  SpreeCmCommissioner::OrderCompleteNotificationSender.call(order: self)
end

#notify_order_complete_telegram_notification_to_userObject



121
122
123
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 121

def notify_order_complete_telegram_notification_to_user
  SpreeCmCommissioner::OrderCompleteTelegramSenderJob.perform_later(id) if user_id.present?
end

#payment_state_changed_to_paid?Boolean

Returns:

  • (Boolean)


100
101
102
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 100

def payment_state_changed_to_paid?
  saved_change_to_payment_state? && payment_state == 'paid'
end

#rejected_by(user) ⇒ Object



58
59
60
61
62
63
64
65
66
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 58

def rejected_by(user)
  transaction do
    reject!

    line_items.each do |line_item|
      line_item.rejected_by(user)
    end
  end
end

#requested_state?Boolean

Returns:

  • (Boolean)


92
93
94
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 92

def requested_state?
  request_state == 'requested'
end

#send_order_accepted_app_notification_to_userObject



129
130
131
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 129

def send_order_accepted_app_notification_to_user
  SpreeCmCommissioner::OrderAcceptedNotificationSender.call(order: self)
end

#send_order_accepted_telegram_alert_to_storeObject



144
145
146
147
148
149
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 144

def send_order_accepted_telegram_alert_to_store
  title = '✅ --- [ORDER ACCEPTED BY VENDOR] ---'
  chat_id = store.preferred_telegram_order_request_alert_chat_id
  factory = OrderTelegramMessageFactory.new(title: title, order: self)
  TelegramNotificationSenderJob.perform_later(chat_id: chat_id, message: factory.message, parse_mode: factory.parse_mode)
end

#send_order_complete_telegram_alert_to_storeObject



158
159
160
161
162
163
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 158

def send_order_complete_telegram_alert_to_store
  title = '🎫 --- [NEW ORDER] ---'
  chat_id = store.preferred_telegram_order_alert_chat_id
  factory = OrderTelegramMessageFactory.new(title: title, order: self)
  TelegramNotificationSenderJob.perform_later(chat_id: chat_id, message: factory.message, parse_mode: factory.parse_mode)
end

#send_order_complete_telegram_alert_to_vendorsObject



106
107
108
109
110
111
112
113
114
115
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 106

def send_order_complete_telegram_alert_to_vendors
  vendor_list.each do |vendor|
    title = '🎫 --- [NEW ORDER FROM BOOKME+] ---'
    chat_id = vendor.preferred_telegram_chat_id
    if chat_id.present?
      factory = OrderTelegramMessageFactory.new(title: title, order: self, vendor: vendor)
      TelegramNotificationSenderJob.perform_later(chat_id: chat_id, message: factory.message, parse_mode: factory.parse_mode)
    end
  end
end

#send_order_rejected_app_notification_to_userObject



133
134
135
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 133

def send_order_rejected_app_notification_to_user
  SpreeCmCommissioner::OrderRejectedNotificationSender.call(order: self)
end

#send_order_rejected_telegram_alert_to_storeObject



151
152
153
154
155
156
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 151

def send_order_rejected_telegram_alert_to_store
  title = '❌ --- [ORDER REJECTED BY VENDOR] ---'
  chat_id = store.preferred_telegram_order_request_alert_chat_id
  factory = OrderTelegramMessageFactory.new(title: title, order: self)
  TelegramNotificationSenderJob.perform_later(chat_id: chat_id, message: factory.message, parse_mode: factory.parse_mode)
end

#send_order_request_telegram_confirmation_alert_to_vendorObject



104
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 104

def send_order_request_telegram_confirmation_alert_to_vendor; end

#send_order_requested_app_notification_to_userObject



125
126
127
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 125

def send_order_requested_app_notification_to_user
  SpreeCmCommissioner::OrderRequestedNotificationSender.call(order: self)
end

#send_order_requested_telegram_alert_to_storeObject



137
138
139
140
141
142
# File 'app/models/concerns/spree_cm_commissioner/order_requestable.rb', line 137

def send_order_requested_telegram_alert_to_store
  title = '🔔 --- [NEW REQUESTED BY USER] ---'
  chat_id = store.preferred_telegram_order_request_alert_chat_id
  factory = OrderTelegramMessageFactory.new(title: title, order: self)
  TelegramNotificationSenderJob.perform_later(chat_id: chat_id, message: factory.message, parse_mode: factory.parse_mode)
end