effective_resources 2.19.5 → 2.19.6

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: 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