Skip to content

Instantly share code, notes, and snippets.

@cesartalves
Created September 9, 2022 20:50
Show Gist options
  • Save cesartalves/6f78f1455757bfb3a2a9115ff7aa1924 to your computer and use it in GitHub Desktop.
Save cesartalves/6f78f1455757bfb3a2a9115ff7aa1924 to your computer and use it in GitHub Desktop.
Commons
# GET file from Importer url on dashboard
url = ''
file_data = Net::HTTP.get URI(url)
csv = CSV.parse(
file_data,
headers: true,
encoding: 'UTF-8',
header_converters: ->(h) { h.strip }
)
pending_orders = csv.each.select do |col|
col['Financial Status'] != 'paid'
end.map { |col| col['Name'] }.uniq
Spree::Order.where(number: pending_orders).each do |o|
o.payments.each do |pa|
pa.update_column(:state, 'pending')
end
o.update(state: 'confirm', shipment_state: 'pending', payment_state: 'balance_due')
end
## Completed Orders
approver = Spree::User.admin.first
Spree::Order.joins(:spree_channel).where(spree_channels: { name: 'paragon' }).where.not(number: pending_orders).each do |o|
o.contents.approve(user: approver)
o.shipments.each do |s|
s.update(pushed: true)
s.suppress_mailer = true
s.ship! rescue nil
end
o.update_column(:shipment_state, 'shipped')
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment