effective_memberships 0.9.16 → 0.10.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: 90078c67d46aca1f293b49ffacac17288bb24592a4007079e6843847845a4e48
4
- data.tar.gz: 0063d4f68e0c2ff073c06eb62812006d13f050b50eecbc10163aa80f0a862a04
3
+ metadata.gz: 978c99bc1bc8f0106fac7867dc8a07acea70bd94456d248e20cbb2e57c633b76
4
+ data.tar.gz: af1183a241f5b564c7b3ca4aa1ded0768dfde262d3b75da1933ddd177e430ede
5
5
  SHA512:
6
- metadata.gz: 01b87e4c9a1aa5664e5bb0fb14ca95a3fac57ea8f2ca0542e379e7e11a1d0450c7aef6fcd4b8d29ab3312e6db33e4a3729b60301b54870e0d7abe20f144df93b
7
- data.tar.gz: e71ea11d0e5d126f4e37474726a234440f6e2105131a57fd1a6427c9c2ab897884f3502df0f2150a89318748b494d156a1e11d3fd81334aab8d9c19d9c2ef533
6
+ metadata.gz: caa13055dda3360d3d1426710a39923cc79fcf99cf0af710acead650e3f56089d068e4d30fde0072ba2708cc144515a948a4a265624f0726e6afee4e1457861d
7
+ data.tar.gz: 5f8241aba4c6d6ca7757346ae74520993d48d4d04af8c5bdf486337ec2e939da8f2d7641fe746319d8c284190c07594b0be1b675240e996beee98815bb124c74
@@ -99,6 +99,10 @@ module EffectiveMembershipsOwner
99
99
  fees.select { |fee| fee.fee_payment_fee? && !fee.purchased? }
100
100
  end
101
101
 
102
+ def outstanding_renewal_fees
103
+ fees.select { |fee| fee.fee_type == 'Renewal' && !fee.purchased? }
104
+ end
105
+
102
106
  def outstanding_fee_payments
103
107
  fee_payments = EffectiveMemberships.FeePayment.all
104
108
 
@@ -156,6 +156,7 @@ module EffectiveMembershipsRegistrar
156
156
  raise('expected to and from to be different') if from == to
157
157
 
158
158
  date ||= Time.zone.now
159
+ period = period(date: date)
159
160
 
160
161
  # Existing Membership
161
162
  membership = owner.membership
@@ -171,11 +172,18 @@ module EffectiveMembershipsRegistrar
171
172
  membership.build_membership_status(status: status) if status.present?
172
173
 
173
174
  unless skip_fees
174
- fee = owner.build_prorated_fee(date: date)
175
- raise('already has purchased prorated fee') if fee.purchased?
175
+ existing = owner.membership_period_fee(category: from, period: period)
176
176
 
177
- fee = owner.build_discount_fee(date: date, from: from)
178
- raise('already has purchased discount fee') if fee.purchased?
177
+ if existing
178
+ fee = owner.build_prorated_fee(date: date)
179
+ raise('already has purchased prorated fee') if fee.purchased?
180
+
181
+ fee = owner.build_discount_fee(date: date, from: from)
182
+ raise('already has purchased discount fee') if fee.purchased?
183
+ else
184
+ fee = owner.build_renewal_fee(category: to, period: period)
185
+ raise('already has purchased renewal fee') if fee.purchased?
186
+ end
179
187
  end
180
188
 
181
189
  save!(owner, date: date)
@@ -31,8 +31,11 @@
31
31
  %li A #{month} prorated fee
32
32
 
33
33
  - if applicant.reclassification?
34
- %li A #{month} prorated fee to the new category
35
- %li A #{month} discount fee from their old category
34
+ - if applicant.owner.outstanding_renewal_fees.present?
35
+ %li A renewal fee in their new category
36
+ - else
37
+ %li A #{month} prorated fee to the new category
38
+ %li A #{month} discount fee from their old category
36
39
 
37
40
  - if applicant.reinstatement?
38
41
  %li A #{month} prorated fee to their reinstatement category
@@ -1,3 +1,3 @@
1
1
  module EffectiveMemberships
2
- VERSION = '0.9.16'
2
+ VERSION = '0.10.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_memberships
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.16
4
+ version: 0.10.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: 2023-01-20 00:00:00.000000000 Z
11
+ date: 2023-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails