effective_memberships 0.13.1 → 0.13.2

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: d060a4560ac81c9ca5ff85d01017de52a187f9c488999cc8d070e487ce06e919
4
- data.tar.gz: 61ff798a1d3dcb6bb1bc6b524fb1572d009f36faa4ef75dbe8df99c47d607fab
3
+ metadata.gz: 3eddddc73bf54e32d870cd26982092d29cedf29083845a6ec93ddad09f9a8c46
4
+ data.tar.gz: 69e21c598c39b6d28a5031bd07308c2ededa79448975da5d4db4d9a3be50325e
5
5
  SHA512:
6
- metadata.gz: e5d47c15f035b8fc63ed6ddcb99d18b3247093a01843b931c16f32822c278a637d3251c73091171c55e6f4bf43e11b0b012549f51b3ed4be9a6fb8fa6a37c851
7
- data.tar.gz: 3a8cec75a97f6acb2188189c259cca502e6ae34c436246dcd3c4ea4cf11448b0fd44dea340656f016afa6a4525aeee9e75f0535b6e75583faeb4dc389d5e25c2
6
+ metadata.gz: 69b84ed6117f73c0b463f4236defe71bec83a59c0f06a6a2954373e6ae88070132d022dcb9f9fd39e87bd14f993b236a32e2f3ddc1b63aa8969bbb1826400ae0
7
+ data.tar.gz: 509f767917c6d3553127423e26f26784ca92f6a73b115482b5d1d25ad393fa578f73d5396446c5be8335d8a3f18dcefa53e15634edb40c80bed5c8b91658d718
@@ -360,7 +360,6 @@ module EffectiveMembershipsApplicant
360
360
  validates :declare_reinstatement, acceptance: true
361
361
  end
362
362
 
363
-
364
363
  # Admin Approve
365
364
  validate(if: -> { approved_membership_date.present? }) do
366
365
  if approved_membership_date.to_date > Time.zone.now.to_date
@@ -501,9 +500,9 @@ module EffectiveMembershipsApplicant
501
500
  end
502
501
 
503
502
  # Draft -> Submitted requirements
504
- def submit!
505
- raise('already submitted') if was_submitted?
506
- raise('expected a purchased order') unless submit_order&.purchased?
503
+ def submit!(force: false)
504
+ raise('already submitted') if was_submitted? && !force
505
+ raise('expected a purchased order') if !submit_order&.purchased? && !force
507
506
 
508
507
  wizard_steps[:checkout] ||= Time.zone.now
509
508
  wizard_steps[:submitted] = Time.zone.now
@@ -863,9 +862,21 @@ module EffectiveMembershipsApplicant
863
862
  number: approved_membership_number.presence # Set by the Admin Process form, or nil
864
863
  )
865
864
  elsif reclassification?
866
- EffectiveMemberships.Registrar.reclassify!(owner, to: to_category, status: to_status)
865
+ EffectiveMemberships.Registrar.reclassify!(
866
+ owner,
867
+ to: to_category,
868
+ status: to_status,
869
+ date: approved_membership_date.presence, # Set by the Admin Process form, or nil
870
+ number: approved_membership_number.presence # Set by the Admin Process form, or nil
871
+ )
867
872
  elsif reinstatement?
868
- EffectiveMemberships.Registrar.reinstate!(owner, to: to_category)
873
+ # No status
874
+ EffectiveMemberships.Registrar.reinstate!(
875
+ owner,
876
+ to: to_category,
877
+ date: approved_membership_date.presence, # Set by the Admin Process form, or nil
878
+ number: approved_membership_number.presence # Set by the Admin Process form, or nil
879
+ )
869
880
  else
870
881
  raise('unsupported approval applicant_type')
871
882
  end
@@ -163,7 +163,7 @@ module EffectiveMembershipsRegistrar
163
163
  owner.build_prorated_fee(date: date)
164
164
  end
165
165
 
166
- def reclassify!(owner, to:, status: nil, date: nil, skip_fees: false)
166
+ def reclassify!(owner, to:, status: nil, date: nil, number: nil, skip_fees: false)
167
167
  raise('expecting a memberships owner') unless owner.class.respond_to?(:effective_memberships_owner?)
168
168
  raise('owner must have an existing membership. use register! instead') if owner.membership.blank?
169
169
 
@@ -183,6 +183,14 @@ module EffectiveMembershipsRegistrar
183
183
  # Last Changed Date
184
184
  membership.registration_on = date
185
185
 
186
+ # Assign Number (this could be nil)
187
+ number = next_membership_number(owner, to: to) if number.nil?
188
+
189
+ if number.present?
190
+ membership.number = number
191
+ membership.number_as_integer = (Integer(number) rescue nil)
192
+ end
193
+
186
194
  # Assign Category
187
195
  membership.build_membership_category(category: to)
188
196
  membership.membership_category(category: from).mark_for_destruction
@@ -213,7 +221,7 @@ module EffectiveMembershipsRegistrar
213
221
  end
214
222
  end
215
223
 
216
- def reinstate!(owner, to: nil, date: nil, skip_fees: false)
224
+ def reinstate!(owner, to: nil, date: nil, number: nil, skip_fees: false)
217
225
  raise('expecting a memberships owner') unless owner.class.respond_to?(:effective_memberships_owner?)
218
226
 
219
227
  history = owner.reinstatement_membership_history || owner.membership_histories.last
@@ -236,10 +244,15 @@ module EffectiveMembershipsRegistrar
236
244
  membership.joined_on = date
237
245
  membership.registration_on = date
238
246
 
247
+ # Assign Old Number (this could be nil)
248
+ number = history.number if history.number.present?
249
+
239
250
  # Assign Number (this could be nil)
240
- if history.number.present?
241
- membership.number = history.number
242
- membership.number_as_integer = (Integer(history.number) rescue nil)
251
+ number = next_membership_number(owner, to: to) if number.nil?
252
+
253
+ if number.present?
254
+ membership.number = number
255
+ membership.number_as_integer = (Integer(number) rescue nil)
243
256
  end
244
257
 
245
258
  # Assign Category
@@ -64,12 +64,12 @@ module Effective
64
64
 
65
65
  def reclassify!
66
66
  update!(current_action: :reclassify)
67
- EffectiveMemberships.Registrar.reclassify!(owner, to: category, skip_fees: skip_fees?)
67
+ EffectiveMemberships.Registrar.reclassify!(owner, to: category, number: number, skip_fees: skip_fees?)
68
68
  end
69
69
 
70
70
  def reinstate!
71
71
  update!(current_action: :reinstate)
72
- EffectiveMemberships.Registrar.reinstate!(owner, skip_fees: skip_fees?)
72
+ EffectiveMemberships.Registrar.reinstate!(owner, number: number, skip_fees: skip_fees?)
73
73
  end
74
74
 
75
75
  def status_assign!
@@ -8,7 +8,7 @@
8
8
 
9
9
  %p
10
10
  - if applicant.owner.membership&.number_was.present?
11
- The member will keep their existing membership number: #{applicant.owner.membership.number}.
11
+ The member will keep their existing membership number: #{applicant.owner.membership.number_was}.
12
12
  - elsif applicant.reinstatement? && reinstatement&.number.present?
13
13
  The member will keep their previous membership number: #{reinstatement.number}.
14
14
  - else
@@ -18,12 +18,15 @@
18
18
  = f.check_box :current_action, label: 'Yes, reclassify this member to another category'
19
19
 
20
20
  = f.show_if :current_action, true do
21
- %p The member will keep their existing membership number: #{membership.number}.
22
-
23
21
  - categories = f.object.owner.registrar_action_categories(:reclassify) - membership.categories
24
-
25
22
  = f.select :category_id, categories, label: 'Reclassify to', required: true
26
23
 
24
+ %p
25
+ - if membership.number.present?
26
+ The member will keep their existing membership number: #{membership.number}.
27
+ - else
28
+ = f.text_field :membership_number, hint: "leave blank to assign the next number as per the category"
29
+
27
30
  = f.check_box :skip_fees, label: 'Yes, skip creating fees and just set the category'
28
31
 
29
32
  = f.hide_if :skip_fees, true do
@@ -27,6 +27,12 @@
27
27
  = f.check_box :current_action, label: 'Yes, reinstate this member to their previous category, status and number'
28
28
 
29
29
  = f.show_if :current_action, true do
30
+ %p
31
+ - if reinstatement.number.present?
32
+ The member will keep their existing membership number: #{reinstatement.number}.
33
+ - else
34
+ = f.text_field :membership_number, hint: "leave blank to assign the next number as per the category"
35
+
30
36
  = f.check_box :skip_fees, label: 'Yes, skip creating fees and just set the category'
31
37
 
32
38
  = f.hide_if :skip_fees, true do
@@ -1,3 +1,3 @@
1
1
  module EffectiveMemberships
2
- VERSION = '0.13.1'
2
+ VERSION = '0.13.2'
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.13.1
4
+ version: 0.13.2
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-03-23 00:00:00.000000000 Z
11
+ date: 2023-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails