Class: SpreeCmCommissioner::Imports::Orders::Cancel
- Defined in:
- app/services/spree_cm_commissioner/imports/orders/cancel.rb
Constant Summary collapse
- BATCH_SIZE =
ENV.fetch('CANCEL_IMPORT_ORDERS_BATCH_SIZE', '50').to_i
Instance Attribute Summary collapse
-
#canceled_by_user_id ⇒ Object
readonly
Returns the value of attribute canceled_by_user_id.
-
#cancellation_reason ⇒ Object
readonly
Returns the value of attribute cancellation_reason.
Attributes inherited from Base
#fail_row_numbers, #import_order_id
Instance Method Summary collapse
- #call ⇒ Object
- #cancel_orders ⇒ Object
-
#initialize(import_order_id:, canceled_by_user_id:, cancellation_reason: nil) ⇒ Cancel
constructor
A new instance of Cancel.
Methods inherited from Base
#cleaned_value, #fetch_content, #import_order, #record_failure, #save_fail_rows, #update_import_status_when_finish, #update_import_status_when_start
Constructor Details
#initialize(import_order_id:, canceled_by_user_id:, cancellation_reason: nil) ⇒ Cancel
Returns a new instance of Cancel.
9 10 11 12 13 |
# File 'app/services/spree_cm_commissioner/imports/orders/cancel.rb', line 9 def initialize(import_order_id:, canceled_by_user_id:, cancellation_reason: nil) super(import_order_id: import_order_id) @canceled_by_user_id = canceled_by_user_id @cancellation_reason = cancellation_reason end |
Instance Attribute Details
#canceled_by_user_id ⇒ Object (readonly)
Returns the value of attribute canceled_by_user_id.
7 8 9 |
# File 'app/services/spree_cm_commissioner/imports/orders/cancel.rb', line 7 def canceled_by_user_id @canceled_by_user_id end |
#cancellation_reason ⇒ Object (readonly)
Returns the value of attribute cancellation_reason.
7 8 9 |
# File 'app/services/spree_cm_commissioner/imports/orders/cancel.rb', line 7 def cancellation_reason @cancellation_reason end |
Instance Method Details
#call ⇒ Object
15 16 17 18 19 20 21 |
# File 'app/services/spree_cm_commissioner/imports/orders/cancel.rb', line 15 def call return if import_order.canceled? mark_canceling! cancel_orders mark_canceled! end |
#cancel_orders ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'app/services/spree_cm_commissioner/imports/orders/cancel.rb', line 23 def cancel_orders import_order.orders.includes(:imported_order).where.not(state: 'canceled').find_in_batches(batch_size: BATCH_SIZE) do |batch| batch.each do |order| order.canceled_by(canceled_by_user, cancellation_reason: cancellation_reason) rescue StandardError => e CmAppLogger.error( label: "#{self.class.name}#cancel_orders", data: { message: e., order_id: order.id, order_number: order.number } ) end end end |