effective_resources 2.19.5 → 2.19.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: 18f56dd6a7835648efe65d8809611c96512caf3107d0287f28cc80b39155c1d6
4
- data.tar.gz: 8b5185842adebc07719fc95b0a7b1669e1f0b5bd78ebdfed8051936cbdd55d6c
3
+ metadata.gz: 571ebcdbbca75cd1b0937bc814229321b1682f336f729517689b9ae594aa9758
4
+ data.tar.gz: 1b606b2566f0f1eb5ef9a2d5764df5ce1606aa25f8c8f6144a84f14978624479
5
5
  SHA512:
6
- metadata.gz: 26af3e4f38cff93884b7d92aeb522db7350f2e25443ba24cdfa969f5f3b8b2992869bd58298f584ce229919b1066daaba22c8d478e18e0699ebd3771ac4b4b7d
7
- data.tar.gz: d4583562b636737f806cbf349720d216e3fe02085fad7fa8961d5459c3a5a2af83a6ba03a3e32bc367ccfc6cfcef44558cc582a22d0e872a4dcdf4831b712034
6
+ metadata.gz: 634a2b8f2ca6a4d8a311b347365a16bd60bc9a2f2d2c99400cef5e96c61acfe4907befa97f74b0857d1deed9cdc73c6e2b639368870ff7d1816ec27460961807
7
+ data.tar.gz: c40344256152ca4a273dce2c580d3d0703d08fd79e4e0283d4112bc02a63bbb584e717ad8e5785ad23b43ee862b3374b84f9c0542c3160cfe0c2f8fa7b6a0d91
@@ -127,9 +127,6 @@ module ActsAsPurchasableWizard
127
127
  fees = find_or_build_submit_fees()
128
128
  raise('already has purchased submit fees') if Array(fees).any?(&:purchased?)
129
129
 
130
- coupon_fees = find_or_build_coupon_fees(fees)
131
- raise('already has purchased coupon fees') if Array(coupon_fees).any?(&:purchased?)
132
-
133
130
  order = find_or_build_submit_order()
134
131
  raise('expected an Effective::Order') unless order.kind_of?(Effective::Order)
135
132
  raise('already has purchased submit order') if order.purchased?
@@ -138,19 +135,20 @@ module ActsAsPurchasableWizard
138
135
  true
139
136
  end
140
137
 
141
- def find_or_build_coupon_fees(purchasables)
142
- existing = purchasables.select { |purchasable| purchasable.try(:coupon_fee?) }
143
- return existing if existing.present?
138
+ # Called by effective_memberships and effective_events
139
+ def with_outstanding_coupon_fees(purchasables)
140
+ return purchasables unless owner.respond_to?(:outstanding_coupon_fees) # effective_memberships_owner
141
+ raise('expected has_many fees') unless respond_to?(:fees)
144
142
 
145
- price = purchasables.map { |purchasable| purchasable.price || 0 }.sum
146
- return [] unless price > 0
143
+ price = purchasables.reject { |p| p.try(:coupon_fee?) }.map { |p| p.price || 0 }.sum
147
144
 
148
- apply_outstanding_coupon_fees()
149
- end
145
+ if price > 0
146
+ Array(owner.outstanding_coupon_fees).each { |fee| fees << fee unless fees.include?(fee) }
147
+ else
148
+ Array(owner.outstanding_coupon_fees).each { |fee| fees.delete(fee) if fees.include?(fee) }
149
+ end
150
150
 
151
- def apply_outstanding_coupon_fees
152
- # Nothing to do.
153
- # effective_events, effective_memberships override this method and opt-in to this behaviour
151
+ (purchasables + fees).uniq
154
152
  end
155
153
 
156
154
  # Owner clicks on the Billing step. Next step is Checkout
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '2.19.5'.freeze
2
+ VERSION = '2.19.6'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.19.5
4
+ version: 2.19.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect