Skip to content

Commit

Permalink
Merge pull request #3495 from nebulab/kennyadsl/improve-sample-returns
Browse files Browse the repository at this point in the history
Improve sample data for the returned/reimbursed order
  • Loading branch information
spaghetticode authored Feb 7, 2020
2 parents 5958af2 + 7686078 commit 3ceec32
Showing 1 changed file with 36 additions and 12 deletions.
48 changes: 36 additions & 12 deletions sample/db/samples/reimbursements.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,46 @@

Spree::Sample.load_sample("orders")

order = Spree::Order.last
inventory_unit = order.inventory_units.first
order = Spree::Order.last
inventory_unit = order.inventory_units.take!
stock_location = inventory_unit.find_stock_item.stock_location
return_reason = Spree::ReturnReason.active.take!
preferred_reimbursement_type = Spree::ReimbursementType.where(name: 'Original').take!
admin_user = if defined?(Spree::Auth)
Spree.user_class.admin.take!
else
Spree.user_class.find_or_create_by!(email: '[email protected]')
end

return_item = Spree::ReturnItem.create(inventory_unit: inventory_unit)
# Mark the order paid and shipped
order.payments.pending.each(&:complete)
order.shipments.each do |shipment|
shipment.suppress_mailer = false
shipment.ship!
end

return_item.exchange_variant = return_item.eligible_exchange_variants.last
return_item.build_exchange_inventory_unit
return_item.accept!
# Create a return authorization
return_item = Spree::ReturnItem.new(
inventory_unit: inventory_unit,
preferred_reimbursement_type: preferred_reimbursement_type
)

customer_return = Spree::CustomerReturn.create(
stock_location: stock_location,
return_items: [return_item]
order.return_authorizations.create!(
reason: return_reason,
return_items: [return_item],
stock_location: stock_location
)

order.reimbursements.create(
customer_return: customer_return,
return_items: [return_item]
# Create a customer return and mark it as received
customer_return = Spree::CustomerReturn.create!(
return_items: [return_item],
stock_location: stock_location
)
return_item.reload
return_item.skip_customer_return_processing = true
return_item.receive!
customer_return.process_return!

# Accept the customer return and reimburse it
reimbursement = Spree::Reimbursement.build_from_customer_return(customer_return)
reimbursement.return_all(created_by: admin_user)

0 comments on commit 3ceec32

Please sign in to comment.