effective_orders 5.1.5 → 5.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 70fd6793f180e1b0106c700cef6aacc0363cf7b2e3c76389e53db1301e6bac4e
4
- data.tar.gz: 9fca2375abb56fd3052d2c098324f0dd6eb3d675772700f8ee792a12e54b39a6
3
+ metadata.gz: '063584ca12ed4cb46363a9c7c99f729889bf536eb0a1afb6021e04f07349532b'
4
+ data.tar.gz: 313908b8ff6797d96c7139a3598b6790a3fda9fb358e69a240e0ccb5afcd8569
5
5
  SHA512:
6
- metadata.gz: 5c33291651b6c2e6789040feca6573827a2f61f64b1b6553692ebfc4b45382949f0814b5257bfa7fc3d65d461b8a36bf01051565acf06474638a9f9771268d4b
7
- data.tar.gz: 51155ef9663bc5912b70c7c9be2232a55aa4d7565eeaf19eca83eea7f216b1d809d998259f347a2fc643755215792c323e3b7e8eb4ffd6c5b2f733899f407604
6
+ metadata.gz: 71a032b3e32b4387801d3630e58df4ee9b91f890a0d87e42c1c4eacb5cb49875e7494316089c01d9d9bdf8a10e246d09caa8d4d2bb400897221661957fc63034
7
+ data.tar.gz: 7149e03e2c5f5f830a53f235eafd6c712213d5dd6eb4958554d752e7f8e51d124188cebe432284a8ddde462e2fd5ff7ec21999a00465220fbc9d4cb5f5a84a08
@@ -11,7 +11,7 @@ module Effective
11
11
  Effective::Cart.where(user: @order.user).destroy_all
12
12
 
13
13
  if flash[:success].blank?
14
- if email && EffectiveOrders.mailer[:send_order_receipt_to_buyer]
14
+ if email && @order.send_order_receipt_to_buyer?
15
15
  flash[:success] = "Payment successful! A receipt has been sent to #{@order.emails_send_to}"
16
16
  else
17
17
  flash[:success] = "Payment successful! An email receipt has not been sent."
@@ -69,6 +69,7 @@ module Effective
69
69
  before_validation { assign_billing_name }
70
70
  before_validation { assign_email }
71
71
  before_validation { assign_last_address }
72
+ before_validation { assign_user_address }
72
73
 
73
74
  before_validation(if: -> { confirmed_checkout }) do
74
75
  self.state = EffectiveOrders::CONFIRMED if pending?
@@ -156,30 +157,34 @@ module Effective
156
157
  def initialize(atts = nil, &block)
157
158
  super(state: EffectiveOrders::PENDING) # Initialize with state: PENDING
158
159
 
159
- return unless atts.present?
160
+ return self unless atts.present?
160
161
 
161
162
  if atts.kind_of?(Hash)
162
- items = Array(atts.delete(:item)) + Array(atts.delete(:items))
163
+ items = Array(atts[:item]) + Array(atts[:items])
163
164
 
164
- self.user = atts.delete(:user) || (items.first.user if items.first.respond_to?(:user))
165
+ self.user = atts[:user] || (items.first.user if items.first.respond_to?(:user))
165
166
 
166
- if (address = atts.delete(:billing_address)).present?
167
+ if (address = atts[:billing_address]).present?
167
168
  self.billing_address = address
168
169
  self.billing_address.full_name ||= user.to_s.presence
169
170
  end
170
171
 
171
- if (address = atts.delete(:shipping_address)).present?
172
+ if (address = atts[:shipping_address]).present?
172
173
  self.shipping_address = address
173
174
  self.shipping_address.full_name ||= user.to_s.presence
174
175
  end
175
176
 
176
- atts.each { |key, value| self.send("#{key}=", value) }
177
+ atts.except(:item, :items, :user, :billing_address, :shipping_address).each do |key, value|
178
+ self.send("#{key}=", value)
179
+ end
177
180
 
178
181
  add(items) if items.present?
179
182
  else # Attributes are not a Hash
180
183
  self.user = atts.user if atts.respond_to?(:user)
181
184
  add(atts)
182
185
  end
186
+
187
+ self
183
188
  end
184
189
 
185
190
  # Items can be an Effective::Cart, an Effective::order, a single acts_as_purchasable, or multiple acts_as_purchasables
@@ -345,6 +350,14 @@ module Effective
345
350
  order_items.map { |oi| oi.quantity }.sum
346
351
  end
347
352
 
353
+ def send_order_receipt_to_admin?
354
+ EffectiveOrders.mailer[:send_order_receipt_to_admin] && !free?
355
+ end
356
+
357
+ def send_order_receipt_to_buyer?
358
+ EffectiveOrders.mailer[:send_order_receipt_to_buyer] && !free?
359
+ end
360
+
348
361
  def send_payment_request_to_buyer?
349
362
  EffectiveResources.truthy?(send_payment_request_to_buyer) && !free? && !refund?
350
363
  end
@@ -425,11 +438,7 @@ module Effective
425
438
  def defer!(provider: 'none', email: true)
426
439
  return false if purchased?
427
440
 
428
- assign_attributes(
429
- state: EffectiveOrders::DEFERRED,
430
- payment_provider: provider
431
- )
432
-
441
+ assign_attributes(state: EffectiveOrders::DEFERRED, payment_provider: provider)
433
442
  save!
434
443
 
435
444
  send_payment_request_to_buyer! if email
@@ -477,8 +486,8 @@ module Effective
477
486
  end
478
487
 
479
488
  def send_order_receipts!
480
- send_order_receipt_to_admin! if EffectiveOrders.mailer[:send_order_receipt_to_admin]
481
- send_order_receipt_to_buyer! if EffectiveOrders.mailer[:send_order_receipt_to_buyer]
489
+ send_order_receipt_to_admin! if send_order_receipt_to_admin?
490
+ send_order_receipt_to_buyer! if send_order_receipt_to_buyer?
482
491
  send_refund_notification! if refund?
483
492
  end
484
493
 
@@ -562,6 +571,23 @@ module Effective
562
571
  end
563
572
  end
564
573
 
574
+ def assign_user_address
575
+ return unless user.present?
576
+ return unless (EffectiveOrders.billing_address || EffectiveOrders.shipping_address)
577
+ return if EffectiveOrders.billing_address && billing_address.present?
578
+ return if EffectiveOrders.shipping_address && shipping_address.present?
579
+
580
+ if billing_address.blank? && user.respond_to?(:billing_address) && user.billing_address.present?
581
+ self.billing_address = user.billing_address
582
+ self.billing_address.full_name ||= user.to_s.presence
583
+ end
584
+
585
+ if shipping_address.blank? && user.respond_to?(:shipping_address) && user.shipping_address.present?
586
+ self.shipping_address = user.shipping_address
587
+ self.shipping_address.full_name ||= user.to_s.presence
588
+ end
589
+ end
590
+
565
591
  def update_purchasables_purchased_order!
566
592
  order_items.each { |oi| oi.purchasable&.update_column(:purchased_order_id, self.id) }
567
593
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveOrders
2
- VERSION = '5.1.5'.freeze
2
+ VERSION = '5.1.6'.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: 5.1.5
4
+ version: 5.1.6
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: 2021-08-31 00:00:00.000000000 Z
11
+ date: 2021-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails