effective_orders 6.14.6 → 6.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c08de0ca2663c0056e1333cd3b84053de84ebcc259c633d6456ad550560d9b8f
4
- data.tar.gz: d46ec9f6a3f9820d56d8743db2a3dcd69cf518caabe7d65e881eee4c9a8d1236
3
+ metadata.gz: 0b08f45584d4d140c41e019bde939d75ae38b5e95bc0ae46da885f2209b9ee0b
4
+ data.tar.gz: e20642203408a7b2549ff3407c5a20ca955d0bbd3fb76db696ee397307426792
5
5
  SHA512:
6
- metadata.gz: fa17f89db73c185e09a8eb5611733c7bcac269196b5994ddfe656a2a3f64d212d3fe9b93b3a3d90fbc6d72be776fe64b3b929e81d7e0000ef20b1b599c01051e
7
- data.tar.gz: 3bf57c8be6cfad3887b9f943a32d9300487b7bfae3ae34f898d0f148a06c2eab5294933b6c7b62e016542952b7e78c9478400e757ea99b7992a93ecd4e534102
6
+ metadata.gz: 42bcfa092afb097f92f949ac8bd7aa61fc623a1b5b3b857410d696bcb02bb1911a78eadbd222365e1e5e8b56a6b302e6038e81a4c5d2f0d9b3606bf5c5e3b4cf
7
+ data.tar.gz: 9f0e6c8f7de1243e537186ba8f78bbc89d0c096d2d84eb5340fc1d1757083fdfe8e1e91423cb627193960e8f92919bf3061810143ea1d1b08d6e953c0c4641a2
@@ -6,20 +6,19 @@ module Effective
6
6
  protected
7
7
 
8
8
  def admin_checkout?(payment_params)
9
- payment_params[:purchased_url].to_s.include?('/admin/')
9
+ (payment_params[:purchased_url] || payment_params[:deferred_url]).to_s.include?('/admin/')
10
10
  end
11
11
 
12
- def order_purchased(payment:, provider:, card: 'none', email: true, skip_buyer_validations: false, purchased_url: nil, current_user: nil)
12
+ def order_purchased(payment:, provider:, card: 'none', email: true, skip_buyer_validations: false, purchased_url: nil)
13
13
  @order.purchase!(
14
14
  payment: payment,
15
15
  provider: provider,
16
16
  card: card,
17
17
  email: email,
18
- skip_buyer_validations: skip_buyer_validations,
19
- current_user: current_user
18
+ skip_buyer_validations: skip_buyer_validations
20
19
  )
21
20
 
22
- Effective::Cart.where(user: current_user).destroy_all if current_user.present?
21
+ Effective::Cart.where(user: @order.current_user).destroy_all if @order.current_user.present?
23
22
 
24
23
  if flash[:success].blank?
25
24
  if email && @order.send_order_receipt_to_buyer?
@@ -36,7 +35,7 @@ module Effective
36
35
  def order_deferred(provider:, email: true, deferred_url: nil)
37
36
  @order.defer!(provider: provider, email: email)
38
37
 
39
- Effective::Cart.where(user: current_user).destroy_all if current_user.present?
38
+ Effective::Cart.where(user: @order.current_user).destroy_all if @order.current_user.present?
40
39
 
41
40
  if flash[:success].blank?
42
41
  if email
@@ -50,10 +49,10 @@ module Effective
50
49
  redirect_to deferred_url.gsub(':id', @order.to_param.to_s)
51
50
  end
52
51
 
53
- def order_delayed(payment:, payment_intent:, provider:, card: 'none', deferred_url: nil, email: false)
52
+ def order_delayed(payment:, payment_intent:, provider:, card: 'none', email: false, deferred_url: nil)
54
53
  @order.delay!(payment: payment, payment_intent: payment_intent, provider: provider, card: card, email: email)
55
54
 
56
- Effective::Cart.where(user: current_user).destroy_all if current_user.present?
55
+ Effective::Cart.where(user: @order.current_user).destroy_all if @order.current_user.present?
57
56
 
58
57
  if flash[:success].blank?
59
58
  if email
@@ -7,6 +7,7 @@ module Effective
7
7
  raise('cheque provider is not available') unless EffectiveOrders.cheque?
8
8
 
9
9
  @order ||= Order.deep.find(params[:id])
10
+ @order.current_user = current_user unless admin_checkout?(cheque_params)
10
11
 
11
12
  EffectiveResources.authorize!(self, :update, @order)
12
13
 
@@ -7,6 +7,7 @@ module Effective
7
7
  raise('deluxe provider is not available') unless EffectiveOrders.deluxe?
8
8
 
9
9
  @order = Effective::Order.deep.find(params[:id])
10
+ @order.current_user = current_user unless admin_checkout?(deluxe_params)
10
11
 
11
12
  EffectiveResources.authorize!(self, :update, @order)
12
13
 
@@ -39,7 +40,12 @@ module Effective
39
40
 
40
41
  if purchased == false
41
42
  flash[:danger] = "Payment was unsuccessful. The credit card payment failed with message: #{Array(payment['responseMessage']).to_sentence.presence || 'none'}. Please try again."
42
- return order_declined(payment: payment, provider: 'deluxe', card: payment['card'], declined_url: deluxe_params[:declined_url])
43
+ return order_declined(
44
+ payment: payment,
45
+ provider: 'deluxe',
46
+ card: payment['card'],
47
+ declined_url: deluxe_params[:declined_url]
48
+ )
43
49
  end
44
50
 
45
51
  # Valid Authorized and Completed Payment
@@ -47,8 +53,7 @@ module Effective
47
53
  payment: payment,
48
54
  provider: 'deluxe',
49
55
  card: payment['card'],
50
- purchased_url: deluxe_params[:purchased_url],
51
- current_user: (current_user unless admin_checkout?(deluxe_params))
56
+ purchased_url: deluxe_params[:purchased_url]
52
57
  )
53
58
  end
54
59
 
@@ -8,6 +8,7 @@ module Effective
8
8
  raise('deluxe_delayed provider is not available') unless EffectiveOrders.deluxe_delayed?
9
9
 
10
10
  @order = Effective::Order.deep.find(params[:id])
11
+ @order.current_user = current_user unless admin_checkout?(deluxe_delayed_params)
11
12
 
12
13
  EffectiveResources.authorize!(self, :update, @order)
13
14
 
@@ -30,12 +31,23 @@ module Effective
30
31
  valid = payment_intent['status'] == 'success'
31
32
 
32
33
  if valid == false
33
- return order_declined(payment: card_info, provider: 'deluxe_delayed', card: card_info['card'], declined_url: deluxe_delayed_params[:declined_url])
34
+ return order_declined(
35
+ payment: card_info,
36
+ provider: 'deluxe_delayed',
37
+ card: card_info['card'],
38
+ declined_url: deluxe_delayed_params[:declined_url]
39
+ )
34
40
  end
35
41
 
36
42
  flash[:success] = EffectiveOrders.deluxe_delayed[:success]
37
43
 
38
- order_delayed(payment: card_info, payment_intent: payment_intent_payload, provider: 'deluxe_delayed', card: card_info['card'], deferred_url: deluxe_delayed_params[:deferred_url])
44
+ order_delayed(
45
+ payment: card_info,
46
+ payment_intent: payment_intent_payload,
47
+ provider: 'deluxe_delayed',
48
+ card: card_info['card'],
49
+ deferred_url: deluxe_delayed_params[:deferred_url]
50
+ )
39
51
  end
40
52
 
41
53
  private
@@ -8,6 +8,7 @@ module Effective
8
8
  raise('deluxe_delayed_purchase provider is not available') unless EffectiveOrders.deluxe_delayed?
9
9
 
10
10
  @order ||= Order.deep.find(params[:id])
11
+ @order.current_user = nil # Admin action, we don't want to assign current_user to the order
11
12
 
12
13
  EffectiveResources.authorize!(self, :update, @order)
13
14
  EffectiveResources.authorize!(self, :admin, :effective_orders)
@@ -22,7 +23,13 @@ module Effective
22
23
 
23
24
  if purchased == false
24
25
  flash[:danger] = "Payment was unsuccessful. The credit card payment failed with message: #{Array(payment['responseMessage']).to_sentence.presence || 'none'}. Please try again."
25
- return order_declined(payment: payment, provider: 'deluxe_delayed', card: payment['card'], declined_url: deluxe_delayed_purchase_params[:declined_url])
26
+
27
+ return order_declined(
28
+ payment: payment,
29
+ provider: 'deluxe_delayed',
30
+ card: payment['card'],
31
+ declined_url: deluxe_delayed_purchase_params[:declined_url]
32
+ )
26
33
  end
27
34
 
28
35
  @order.assign_attributes(deluxe_delayed_purchase_params.except(:purchased_url, :declined_url, :id))
@@ -33,8 +40,7 @@ module Effective
33
40
  card: payment['card'],
34
41
  email: @order.send_mark_as_paid_email_to_buyer?,
35
42
  skip_buyer_validations: true,
36
- purchased_url: effective_orders.admin_order_path(@order),
37
- current_user: nil # Admin action, we don't want to assign current_user to the order
43
+ purchased_url: effective_orders.admin_order_path(@order)
38
44
  )
39
45
  end
40
46
 
@@ -7,6 +7,7 @@ module Effective
7
7
  raise('etransfer provider is not available') unless EffectiveOrders.etransfer?
8
8
 
9
9
  @order ||= Order.deep.find(params[:id])
10
+ @order.current_user = current_user unless admin_checkout?(etransfer_params)
10
11
 
11
12
  EffectiveResources.authorize!(self, :update, @order)
12
13
 
@@ -7,6 +7,7 @@ module Effective
7
7
  raise('free provider is not available') unless EffectiveOrders.free?
8
8
 
9
9
  @order ||= Order.deep.find(params[:id])
10
+ @order.current_user = current_user unless admin_checkout?(free_params)
10
11
 
11
12
  EffectiveResources.authorize!(self, :update, @order)
12
13
 
@@ -20,8 +21,7 @@ module Effective
20
21
  payment: 'free order. no payment required.',
21
22
  provider: 'free',
22
23
  card: 'none',
23
- purchased_url: free_params[:purchased_url],
24
- current_user: current_user
24
+ purchased_url: free_params[:purchased_url]
25
25
  )
26
26
  end
27
27
 
@@ -7,6 +7,7 @@ module Effective
7
7
  raise('mark_as_paid provider is not available') unless EffectiveOrders.mark_as_paid?
8
8
 
9
9
  @order ||= Order.deep.find(params[:id])
10
+ @order.current_user = nil # Admin action, we don't want to assign current_user to the order
10
11
 
11
12
  EffectiveResources.authorize!(self, :update, @order)
12
13
  EffectiveResources.authorize!(self, :admin, :effective_orders)
@@ -19,8 +20,7 @@ module Effective
19
20
  card: mark_as_paid_params[:payment_card],
20
21
  email: @order.send_mark_as_paid_email_to_buyer?,
21
22
  skip_buyer_validations: true,
22
- purchased_url: effective_orders.admin_order_path(@order),
23
- current_user: nil # Admin action, we don't want to assign current_user to the order
23
+ purchased_url: effective_orders.admin_order_path(@order)
24
24
  )
25
25
  end
26
26
 
@@ -13,6 +13,7 @@ module Effective
13
13
  raise('moneris provider is not available') unless EffectiveOrders.moneris?
14
14
 
15
15
  @order ||= Effective::Order.deep.find(params[:response_order_id])
16
+ @order.current_user = current_user unless admin_checkout?(moneris_params)
16
17
 
17
18
  # We do this even if we're not authorized
18
19
  EffectiveResources.authorized?(self, :update, @order)
@@ -35,14 +36,28 @@ module Effective
35
36
  valid = (1..49).include?(payment[:response_code].to_i) # Must be > 0 and < 50 to be valid. Sometimes we get the string 'null'
36
37
 
37
38
  if valid == false
38
- return order_declined(payment: payment, provider: 'moneris', card: params[:card], declined_url: declined_url)
39
+ return order_declined(
40
+ payment: payment,
41
+ provider: 'moneris',
42
+ card: params[:card],
43
+ declined_url: declined_url
44
+ )
39
45
  end
40
46
 
41
- order_purchased(payment: payment, provider: 'moneris', card: params[:card], purchased_url: purchased_url, current_user: current_user)
47
+ order_purchased(
48
+ payment: payment,
49
+ provider: 'moneris',
50
+ card: params[:card],
51
+ purchased_url: purchased_url
52
+ )
42
53
  end
43
54
 
44
55
  private
45
56
 
57
+ def moneris_params
58
+ { purchased_url: params[:rvar_purchased_url] }
59
+ end
60
+
46
61
  def verify_moneris_transaction(transactionKey)
47
62
  # Send a verification POST request
48
63
  uri = URI.parse(EffectiveOrders.moneris[:verify_url])
@@ -7,6 +7,7 @@ module Effective
7
7
  raise('moneris_checkout provider is not available') unless EffectiveOrders.moneris_checkout?
8
8
 
9
9
  @order = Order.deep.find(params[:id])
10
+ @order.current_user = current_user unless admin_checkout?(moneris_checkout_params)
10
11
 
11
12
  # We do this even if we're not authorized.
12
13
  EffectiveResources.authorized?(self, :update, @order)
@@ -31,8 +32,7 @@ module Effective
31
32
  payment: payment,
32
33
  provider: 'moneris_checkout',
33
34
  card: payment['card_type'],
34
- purchased_url: moneris_checkout_params[:purchased_url],
35
- current_user: current_user
35
+ purchased_url: moneris_checkout_params[:purchased_url]
36
36
  )
37
37
  end
38
38
 
@@ -13,6 +13,7 @@ module Effective
13
13
  raise('paypal provider is not available') unless EffectiveOrders.paypal?
14
14
 
15
15
  @order ||= Effective::Order.deep.where(id: (params[:invoice].to_i rescue 0)).first
16
+ @order.current_user = current_user unless admin_checkout?(paypal_params)
16
17
 
17
18
  # We do this even if we're not authorized
18
19
  EffectiveResources.authorized?(self, :update, @order)
@@ -21,7 +22,7 @@ module Effective
21
22
  if @order.purchased?
22
23
  order_purchased(payment: params, provider: 'paypal', card: params[:payment_type])
23
24
  elsif (params[:payment_status] == 'Completed' && params[:custom] == EffectiveOrders.paypal[:secret])
24
- order_purchased(payment: params, provider: 'paypal', card: params[:payment_type], current_user: current_user)
25
+ order_purchased(payment: params, provider: 'paypal', card: params[:payment_type])
25
26
  else
26
27
  order_declined(payment: params, provider: 'paypal', card: params[:payment_type])
27
28
  end
@@ -30,6 +31,10 @@ module Effective
30
31
  head(:ok)
31
32
  end
32
33
 
34
+ def paypal_params
35
+ {}
36
+ end
37
+
33
38
  end
34
39
  end
35
40
  end
@@ -7,6 +7,7 @@ module Effective
7
7
  raise('phone provider is not available') unless EffectiveOrders.phone?
8
8
 
9
9
  @order ||= Order.deep.find(params[:id])
10
+ @order.current_user = current_user unless admin_checkout?(phone_params)
10
11
 
11
12
  EffectiveResources.authorize!(self, :update, @order)
12
13
 
@@ -7,6 +7,7 @@ module Effective
7
7
  raise('pretend provider is not available') unless EffectiveOrders.pretend?
8
8
 
9
9
  @order ||= Order.deep.find(params[:id])
10
+ @order.current_user = current_user unless admin_checkout?(pretend_params)
10
11
 
11
12
  EffectiveResources.authorize!(self, :update, @order)
12
13
 
@@ -22,8 +23,7 @@ module Effective
22
23
  payment: 'for pretend',
23
24
  provider: 'pretend',
24
25
  card: 'none',
25
- purchased_url: pretend_params[:purchased_url],
26
- current_user: (current_user unless admin_checkout?(pretend_params))
26
+ purchased_url: pretend_params[:purchased_url]
27
27
  )
28
28
  end
29
29
  end
@@ -8,6 +8,7 @@ module Effective
8
8
  raise('refund provider is not configured for buyer purchase') unless EffectiveOrders.buyer_purchases_refund?
9
9
 
10
10
  @order ||= Order.deep.find(params[:id])
11
+ @order.current_user = current_user unless admin_checkout?(refund_params)
11
12
 
12
13
  EffectiveResources.authorize!(self, :update, @order)
13
14
 
@@ -7,6 +7,8 @@ module Effective
7
7
  raise('stripe provider is not available') unless EffectiveOrders.stripe?
8
8
 
9
9
  @order = Order.deep.find(params[:id])
10
+ @order.current_user = current_user unless admin_checkout?(stripe_params)
11
+
10
12
  @customer = Effective::Customer.for_user(@order.user || current_user)
11
13
 
12
14
  EffectiveResources.authorize!(self, :update, @order)
@@ -21,7 +23,11 @@ module Effective
21
23
  payment = validate_stripe_payment(payment_intent_id)
22
24
 
23
25
  if payment.blank?
24
- return order_declined(payment: payment, provider: 'stripe', declined_url: stripe_params[:declined_url])
26
+ return order_declined(
27
+ payment: payment,
28
+ provider: 'stripe',
29
+ declined_url: stripe_params[:declined_url]
30
+ )
25
31
  end
26
32
 
27
33
  # Update the customer payment fields
@@ -33,8 +39,7 @@ module Effective
33
39
  payment: payment,
34
40
  provider: 'stripe',
35
41
  card: payment[:card],
36
- purchased_url: stripe_params[:purchased_url],
37
- current_user: (current_user unless admin_checkout?(stripe_params))
42
+ purchased_url: stripe_params[:purchased_url]
38
43
  )
39
44
  end
40
45
 
@@ -37,6 +37,8 @@ module Effective
37
37
  # Effective Reports
38
38
  acts_as_reportable if respond_to?(:acts_as_reportable)
39
39
 
40
+ attr_accessor :current_user # Set by the checkout controller for non-admin users
41
+
40
42
  attr_accessor :terms_and_conditions # Yes, I agree to the terms and conditions
41
43
  attr_accessor :confirmed_checkout # Set on the Checkout Step 1
42
44
 
@@ -684,12 +686,12 @@ module Effective
684
686
  # Call this as a way to skip over non consequential orders
685
687
  # And mark some purchasables purchased
686
688
  # This is different than the Mark as Paid payment processor
687
- def mark_as_purchased!(current_user: nil)
688
- purchase!(skip_buyer_validations: true, email: false, skip_quickbooks: true, current_user: current_user)
689
+ def mark_as_purchased!
690
+ purchase!(skip_buyer_validations: true, email: false, skip_quickbooks: true)
689
691
  end
690
692
 
691
693
  # Effective::Order.new(items: Product.first, user: User.first).purchase!(email: false)
692
- def purchase!(payment: nil, provider: nil, card: nil, email: true, skip_buyer_validations: false, skip_quickbooks: false, current_user: nil)
694
+ def purchase!(payment: nil, provider: nil, card: nil, email: true, skip_buyer_validations: false, skip_quickbooks: false)
693
695
  return true if purchased?
694
696
 
695
697
  raise('unable to purchase voided order') if voided?
@@ -37,7 +37,7 @@
37
37
  - if EffectiveOrders.stripe?
38
38
  = render partial: '/effective/orders/stripe/form', locals: provider_locals
39
39
 
40
- - if EffectiveOrders.deferred? && order.user == current_user && !local_assigns[:skip_deferred]
40
+ - if EffectiveOrders.deferred? && !controller_path.include?('admin/') && !local_assigns[:skip_deferred]
41
41
  %p.my-4.text-center - or -
42
42
  = render partial: '/effective/orders/deferred/form', locals: provider_locals
43
43
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveOrders
2
- VERSION = '6.14.6'.freeze
2
+ VERSION = '6.15.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_orders
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.14.6
4
+ version: 6.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-23 00:00:00.000000000 Z
11
+ date: 2024-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails