Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // saca el id del primer user creado el 4/1
- SELECT id, email, created_at from users where created_at >= '2017-01-16 07:00:00+00' ORDER BY created_at ASC LIMIT 1;
- 1646815 | deering.sean@gmail.com | 2017-01-16 07:00:52.174084
- \COPY (SELECT o.email, o.number, o.currency, a.address1 AS "Address1", a.address2 AS "Address2", a.city AS "City", COALESCE(s.name, a.state_name) AS "State", a.zipcode AS "Zipcode", c.name AS "Country", a.phone AS "Phone" FROM spree_orders AS o JOIN site_users AS su ON (su.reportable_email = o.email OR su.user_id = o.user_id) JOIN spree_line_items AS li ON (li.order_id = o.id) JOIN spree_addresses AS a ON (a.id = o.ship_address_id) JOIN spree_countries AS c ON (c.id = a.country_id) LEFT JOIN spree_states AS s ON (s.id = a.state_id) JOIN spree_payments AS p ON (p.order_id = o.id) LEFT JOIN spree_refunds AS r ON (r.payment_id = p.id) WHERE o.considered_risky = 'no' AND o.completed_at >= '2017-01-16 07:00:00+00' AND o.completed_at <= NOW() AND o.state IN ('complete','resumed') AND li.variant_id IN (53,54) AND COALESCE(o.user_id, su.user_id) < 1646815 AND o.promo_total = 0 AND r.payment_id IS NULL) To '/tmp/user_floodlight_orders_wo_promo.csv' With CSV DELIMITER ',';
- not_refunded = []
- refunded = []
- errors = []
- numbers.each do |n|
- begin
- o = Spree::Order.find_by(number: n)
- if o.paid?
- payment = o.payments.first
- if o.promo_total == 0
- amount = (o.currency == 'GBP' ? 30 : 50 )
- case payment.source_type
- when 'Spree::CreditCard', 'Spree::AmazonTransaction'
- if o.refunds.empty?
- payment.refunds.create!(amount: amount, refund_reason_id: 5) #customer satisfaction
- o.adjustments.create!(amount: (amount*-1), label: 'Refund', order_id: o.id)
- o.reload.update!
- end
- when 'Spree::PaypalExpressCheckout'
- if o.payments.where('amount < 0').none?
- payment.payment_method.refund(payment, amount)
- end
- end
- refunded << n
- else
- not_refunded << n
- end
- else
- not_refunded << n
- end
- rescue => e
- errors << { order: n, errors: e }
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement