effective_memberships 0.1.22 → 0.1.23

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: 8631bb8b93a7995e011f7adec1de42aeea234db706f39d09e2b82354263e7d79
4
- data.tar.gz: 0bbb9dfcd4376d091ed21e9a0e06f2b48e4124b8292c0209d64b5ccb57966ef4
3
+ metadata.gz: 928383b46dabf57a0ee3e4ebed61050c15ddd4d2da01fcc50cec8ead2ded706b
4
+ data.tar.gz: 2e7b2f5b6e5e75991239f093783ab8a83c6f2b522fa8f5a482c067d04cb122ba
5
5
  SHA512:
6
- metadata.gz: 81a13b9ff646557e043080d8dcda78b47291bcfd605b648ac6f5617c06fc5c575c10b96ccda6da7416f25580a1245fc230fb7e4a6396ab681a81e5302ff1e421
7
- data.tar.gz: cdcb59441b8a561ea6324c30656bac165c67acebb9a593ab7133110a24e38ad32d2b753fe6f539fd87cadd9789df0bb4bcd90b408a735d7817c6b692f9437728
6
+ metadata.gz: 8cd3faa8139e44db7aa485de820bed35f09b9d8cf8b2d56010cd87bf47515f143b9289362978cc305d63a50d8a24b4b8b9dadaabd240fffcc50abb970e8ac7d4
7
+ data.tar.gz: ba43e01d4180108144333d61d17f22a4297374db0842c6e33bf7044d381b192883d6813532b5717dca8df778293b065e1a0ba7d07a2c867f2c60b03912520e1e
@@ -16,9 +16,6 @@ module Effective
16
16
  end
17
17
  end
18
18
 
19
- before_render(only: :show, if: -> { step == :checkout }) do
20
- resource.ready!
21
- end
22
19
 
23
20
  after_save do
24
21
  flash.now[:success] = ''
@@ -16,10 +16,6 @@ module Effective
16
16
  end
17
17
  end
18
18
 
19
- before_render(only: :show, if: -> { step == :checkout }) do
20
- resource.ready!
21
- end
22
-
23
19
  after_save do
24
20
  flash.now[:success] = ''
25
21
  end
@@ -60,6 +60,8 @@ module EffectiveMembershipsApplicant
60
60
  submitted: 'Submitted'
61
61
  )
62
62
 
63
+ acts_as_purchasable_wizard
64
+
63
65
  log_changes(except: :wizard_steps) if respond_to?(:log_changes)
64
66
 
65
67
  has_many_attached :applicant_files
@@ -247,12 +249,6 @@ module EffectiveMembershipsApplicant
247
249
  validates :declare_truth, acceptance: true
248
250
  end
249
251
 
250
- # Billing Step
251
- validate(if: -> { current_step == :billing && owner.present? }) do
252
- self.errors.add(:base, "must have a billing address") unless owner.billing_address.present?
253
- self.errors.add(:base, "must have an email") unless owner.email.present?
254
- end
255
-
256
252
  # Admin Approve
257
253
  validate(if: -> { approved_membership_date.present? }) do
258
254
  if approved_membership_date.to_date > Time.zone.now.to_date
@@ -288,10 +284,47 @@ module EffectiveMembershipsApplicant
288
284
  end
289
285
  end
290
286
 
291
- after_purchase do |_|
292
- raise('expected submit_order to be purchased') unless submit_order&.purchased?
293
- submit_purchased!
287
+ # All Fees and Orders
288
+ def submit_fees
289
+ fees.select { |fee| fee.applicant_submit_fee? }
290
+ end
291
+
292
+ def submit_order
293
+ orders.find { |order| order.purchasables.any?(&:applicant_submit_fee?) }
294
+ end
295
+
296
+ def submit_fee_qb_item_name
297
+ 'Applicant'
298
+ end
299
+
300
+ def find_or_build_submit_fees
301
+ return submit_fees if submit_fees.present?
302
+
303
+ fees.build(
304
+ owner: owner,
305
+ fee_type: 'Applicant',
306
+ category: category,
307
+ price: category.applicant_fee,
308
+ qb_item_name: submit_fee_qb_item_name()
309
+ )
310
+
311
+ submit_fees
312
+ end
313
+
314
+ # Draft -> Submitted requirements
315
+ def submit!
316
+ raise('already submitted') if was_submitted?
317
+ raise('expected a purchased order') unless submit_order&.purchased?
318
+
319
+ after_commit do
320
+ applicant_references.each { |reference| reference.notify! if reference.submitted? }
321
+ end
322
+
323
+ wizard_steps[:checkout] ||= Time.zone.now
324
+ wizard_steps[:submitted] = Time.zone.now
325
+ submitted!
294
326
  end
327
+
295
328
  end
296
329
 
297
330
  # Instance Methods
@@ -330,10 +363,6 @@ module EffectiveMembershipsApplicant
330
363
  approved? || declined?
331
364
  end
332
365
 
333
- def can_visit_step?(step)
334
- can_revisit_completed_steps(step)
335
- end
336
-
337
366
  def summary
338
367
  case status_was
339
368
  when 'draft'
@@ -435,101 +464,9 @@ module EffectiveMembershipsApplicant
435
464
  category&.min_applicant_files.to_i
436
465
  end
437
466
 
438
- # All Fees and Orders
439
- def submit_fees
440
- fees.select { |fee| fee.applicant_submit_fee? }
441
- end
442
-
443
- def submit_order
444
- orders.find { |order| order.purchasables.any?(&:applicant_submit_fee?) }
445
- end
446
-
447
- def submit_fee_qb_item_name
448
- 'Applicant'
449
- end
450
-
451
- def find_or_build_submit_fees
452
- return submit_fees if submit_fees.present?
453
-
454
- fees.build(
455
- owner: owner,
456
- fee_type: 'Applicant',
457
- category: category,
458
- price: category.applicant_fee,
459
- qb_item_name: submit_fee_qb_item_name()
460
- )
461
-
462
- submit_fees
463
- end
464
-
465
- def find_or_build_submit_order
466
- order = submit_order || orders.build(user: owner)
467
- fees = submit_fees()
468
-
469
- # Adds fees, but does not overwrite any existing price.
470
- fees.each do |fee|
471
- order.add(fee) unless order.purchasables.include?(fee)
472
- end
473
-
474
- order.purchasables.each do |purchasable|
475
- order.remove(purchasable) unless fees.include?(purchasable)
476
- end
477
-
478
- # From Billing Step
479
- order.billing_address = owner.billing_address if owner.billing_address.present?
480
-
481
- order.save
482
-
483
- order
484
- end
485
-
486
- # Should be indempotent.
487
- def build_submit_fees_and_order
488
- return false if was_submitted?
489
-
490
- fees = find_or_build_submit_fees()
491
- raise('already has purchased submit fees') if fees.any? { |fee| fee.purchased? }
492
-
493
- order = find_or_build_submit_order()
494
- raise('already has purchased submit order') if order.purchased?
495
-
496
- true
497
- end
498
-
499
- # Owner clicks on the Billing step. Next step is Checkout
500
- def billing!
501
- ready!
502
- end
503
-
504
- # Ready to check out
505
- def ready!
506
- build_submit_fees_and_order
507
- save!
508
- end
509
-
510
- # Called automatically via after_purchase hook above
511
- def submit_purchased!
512
- return false if was_submitted?
513
-
514
- wizard_steps[:checkout] = Time.zone.now
515
- submit!
516
- end
517
-
518
- # Draft -> Submitted requirements
519
- def submit!
520
- raise('already submitted') if was_submitted?
521
- raise('expected a purchased order') unless submit_order&.purchased?
522
-
523
- after_commit do
524
- applicant_references.each { |reference| reference.notify! if reference.submitted? }
525
- end
526
-
527
- wizard_steps[:checkout] ||= Time.zone.now
528
- wizard_steps[:submitted] = Time.zone.now
529
- submitted!
530
- end
531
-
532
- # Submitted -> Completed requirements
467
+ # The submit! method used to be here
468
+ # But it needs to be inside the included do block
469
+ # So see above. Sorry.
533
470
 
534
471
  def applicant_references_required?
535
472
  min_applicant_references > 0
@@ -44,6 +44,8 @@ module EffectiveMembershipsFeePayment
44
44
  submitted: 'Submitted'
45
45
  )
46
46
 
47
+ acts_as_purchasable_wizard
48
+
47
49
  log_changes(except: :wizard_steps) if respond_to?(:log_changes)
48
50
 
49
51
  # Declarations Step
@@ -110,12 +112,6 @@ module EffectiveMembershipsFeePayment
110
112
  validates :declare_truth, acceptance: true
111
113
  end
112
114
 
113
- # Billing Step
114
- validate(if: -> { current_step == :billing && owner.present? }) do
115
- self.errors.add(:base, "must have a billing address") unless owner.billing_address.present?
116
- self.errors.add(:base, "must have an email") unless owner.email.present?
117
- end
118
-
119
115
  # Clear required steps memoization
120
116
  after_save { @_required_steps = nil }
121
117
 
@@ -135,13 +131,30 @@ module EffectiveMembershipsFeePayment
135
131
  end
136
132
  end
137
133
 
138
- after_purchase do |_order|
139
- raise('expected submit_order to be purchased') unless submit_order&.purchased?
134
+ # All Fees and Orders
135
+ # Overriding acts_as_purchasable_wizard
136
+ def outstanding_fees
137
+ owner&.outstanding_fee_payment_fees
138
+ end
139
+
140
+ def submit_fees
141
+ fees
142
+ end
143
+
144
+ def submit_order
145
+ orders.first
146
+ end
147
+
148
+ # We take over the owner's outstanding fees.
149
+ def find_or_build_submit_fees
150
+ Array(outstanding_fees).each { |fee| fees << fee unless fees.include?(fee) }
151
+ submit_fees
152
+ end
140
153
 
141
- submit_purchased!
142
- after_submit_purchased!
154
+ def after_submit_purchased!
143
155
  EffectiveMemberships.Registrar.fee_payment_purchased!(owner)
144
156
  end
157
+
145
158
  end
146
159
 
147
160
  def to_s
@@ -157,14 +170,6 @@ module EffectiveMembershipsFeePayment
157
170
  submitted?
158
171
  end
159
172
 
160
- def can_visit_step?(step)
161
- can_revisit_completed_steps(step)
162
- end
163
-
164
- def outstanding_fees
165
- owner&.outstanding_fee_payment_fees
166
- end
167
-
168
173
  def select!
169
174
  reset!
170
175
  end
@@ -200,83 +205,4 @@ module EffectiveMembershipsFeePayment
200
205
  owner.representatives.any?(&:marked_for_destruction?)
201
206
  end
202
207
 
203
- # All Fees and Orders
204
- def submit_fees
205
- fees
206
- end
207
-
208
- def submit_order
209
- orders.first
210
- end
211
-
212
- # We take over the owner's outstanding fees.
213
- def find_or_build_submit_fees
214
- Array(outstanding_fees).each { |fee| fees << fee unless fees.include?(fee) }
215
- submit_fees
216
- end
217
-
218
- def find_or_build_submit_order
219
- order = submit_order || orders.build(user: owner)
220
- fees = submit_fees()
221
-
222
- fees.each do |fee|
223
- order.add(fee) unless order.purchasables.include?(fee)
224
- end
225
-
226
- order.purchasables.each do |purchasable|
227
- order.remove(purchasable) unless fees.include?(purchasable)
228
- end
229
-
230
- order.billing_address = owner.billing_address if owner.billing_address.present?
231
-
232
- order.save
233
-
234
- order
235
- end
236
-
237
- # Should be indempotent.
238
- def build_submit_fees_and_order
239
- return false if was_submitted?
240
-
241
- fees = find_or_build_submit_fees()
242
- raise('already has purchased submit fees') if fees.any? { |fee| fee.purchased? }
243
-
244
- order = find_or_build_submit_order()
245
- raise('already has purchased submit order') if order.purchased?
246
-
247
- true
248
- end
249
-
250
- # Owner clicks on the Billing Submit. Next step is Checkout
251
- def billing!
252
- ready!
253
- end
254
-
255
- def ready!
256
- build_submit_fees_and_order
257
- save!
258
- end
259
-
260
- # Called automatically via after_purchase hook above
261
- def submit_purchased!
262
- return false if was_submitted?
263
-
264
- wizard_steps[:checkout] = Time.zone.now
265
- submit!
266
- end
267
-
268
- # A hook to extend
269
- def after_submit_purchased!
270
- end
271
-
272
- # Draft -> Submitted
273
- def submit!
274
- raise('already submitted') if was_submitted?
275
- raise('expected a purchased order') unless submit_order&.purchased?
276
-
277
- wizard_steps[:checkout] ||= Time.zone.now
278
- wizard_steps[:submitted] = Time.zone.now
279
- submitted!
280
- end
281
-
282
208
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveMemberships
2
- VERSION = '0.1.22'
2
+ VERSION = '0.1.23'
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.1.22
4
+ version: 0.1.23
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: 2022-01-11 00:00:00.000000000 Z
11
+ date: 2022-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails