effective_resources 2.20.2 → 2.20.4

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: 56b1a55c520efbd90c56d4e17d66fbdb328f4732e89e500279dcac8bd1a0490e
4
- data.tar.gz: 9154c49ed7c9dcf18a98f5e6051f8bb516cf53f95cc0d9f4cbf777c8b93b3e25
3
+ metadata.gz: efe50d36259877c5389c59e3dd2bb3db2a77915d60a37325a32b9fcbaa42172d
4
+ data.tar.gz: 155c033973d9c7cec74a3036b6c06d981756b322093ce117c15622828b5723c2
5
5
  SHA512:
6
- metadata.gz: a673a48025bda899630dd5edb0672dd12feff7e8f0b04d5ece1312bbc5bd50c318802ca5eb49980472afd0273586b658c1b1cb4b9b477314f69c6e87d13831c1
7
- data.tar.gz: 8d7046ee355a352ef07c289dfa6deab682cf7233ef998fe85249dff4c602f5e3f570f476da593e5bc4214318a689fdf39c2b5fbc5e9be588d8726812b5562051
6
+ metadata.gz: 95e04d2418a1b790771a7f8c652c756d70be5c9b216ebf292dcb9ca55dfcedd1022a4a358f804d56d633dbd5ccb7da56111d15830f87ffa22b274d3741842c06
7
+ data.tar.gz: bb8aba4fdfe1c609a875ab65c5f62e38c727969813427e1517aa176717bad884abfc8a278ecae23679cf25a4c0cf2f9afcd6dda4b1bc6dd05819eac208088dd3
@@ -47,10 +47,27 @@ module ActsAsPurchasableWizard
47
47
  submit_fees
48
48
  end
49
49
 
50
+ def build_effective_order
51
+ if EffectiveOrders.organization_enabled? && respond_to?(:organization) # New style
52
+ orders.build(organization: organization)
53
+ else
54
+ orders.build(user: owner) # This is polymorphic user, might be an organization. Old style.
55
+ end
56
+ end
57
+
50
58
  def find_or_build_submit_order
51
- order = submit_order || orders.build(user: owner) # This is polymorphic user, might be an organization
52
- order = orders.build(user: owner) if order.declined? # Make a new order, if the previous one was declined
59
+ order = submit_order || build_effective_order()
60
+ order = build_effective_order() if order.declined? # Make a new order, if the previous one was declined
53
61
 
62
+ # Update the order with the current owner
63
+ if EffectiveOrders.organization_enabled? && respond_to?(:organization)
64
+ order.organization = organization
65
+ else
66
+ # A membership could go from individual to organization
67
+ order.user = owner
68
+ end
69
+
70
+ # Consider fees
54
71
  fees = submit_fees().reject { |fee| fee.marked_for_destruction? }
55
72
 
56
73
  # Make sure all Fees are valid
@@ -58,14 +75,12 @@ module ActsAsPurchasableWizard
58
75
  raise("expected a valid fee but #{fee.id} had errors #{fee.errors.inspect}") unless fee.valid?
59
76
  end
60
77
 
61
- # A membership could go from individual to organization
62
- order.user = owner
63
-
64
78
  # Adds fees, but does not overwrite any existing price.
65
79
  fees.each do |fee|
66
80
  order.add(fee) unless order.purchasables.include?(fee)
67
81
  end
68
82
 
83
+ # Remove any order items that no longer have fees for them
69
84
  order.order_items.each do |order_item|
70
85
  fee = fees.find { |fee| fee == order_item.purchasable }
71
86
  order.remove(order_item) unless fee.present?
@@ -145,6 +145,13 @@ module ActsAsWizard
145
145
  :start
146
146
  end
147
147
 
148
+ def all_steps_before(step)
149
+ index = all_steps.index(step)
150
+ raise("unexpected step #{step}") unless index.present?
151
+
152
+ all_steps.first(index)
153
+ end
154
+
148
155
  def previous_step(step)
149
156
  index = required_steps.index(step)
150
157
  required_steps[index-1] unless index == 0 || index.nil?
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '2.20.2'.freeze
2
+ VERSION = '2.20.4'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.20.2
4
+ version: 2.20.4
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-04-22 00:00:00.000000000 Z
11
+ date: 2024-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails