effective_memberships 0.1.19 → 0.1.23

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: 2a68526d13ceb57edb42353e0e69a53681019c88aaeec05327e497b1d8fccec6
4
- data.tar.gz: 17cdff6a9e737bb379e833d90f5ca94b071d30688c2520ec2de1505be88e9d06
3
+ metadata.gz: 928383b46dabf57a0ee3e4ebed61050c15ddd4d2da01fcc50cec8ead2ded706b
4
+ data.tar.gz: 2e7b2f5b6e5e75991239f093783ab8a83c6f2b522fa8f5a482c067d04cb122ba
5
5
  SHA512:
6
- metadata.gz: bd7107f8179634d2c3ff55ed70dcd04ca06aae9b6a01bda8addbf48a0b038b7e64c3dafc03f41abc89ef354e047df9b9b689a1b2429ec6181c1608fe5ef12275
7
- data.tar.gz: a5a541ce25fb0930a2cd773b8ba70d23acbc140834549481a663d2800df1f7caf34a42a4363f4af2061e7a7aeba512d06b02dcbd480d6486ca20f914a7918522
6
+ metadata.gz: 8cd3faa8139e44db7aa485de820bed35f09b9d8cf8b2d56010cd87bf47515f143b9289362978cc305d63a50d8a24b4b8b9dadaabd240fffcc50abb970e8ac7d4
7
+ data.tar.gz: ba43e01d4180108144333d61d17f22a4297374db0842c6e33bf7044d381b192883d6813532b5717dca8df778293b065e1a0ba7d07a2c867f2c60b03912520e1e
@@ -16,6 +16,7 @@ module Effective
16
16
  end
17
17
  end
18
18
 
19
+
19
20
  after_save do
20
21
  flash.now[:success] = ''
21
22
  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'
294
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!
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,96 +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 find_or_build_submit_fees
448
- return submit_fees if submit_fees.present?
449
-
450
- fees.build(
451
- owner: owner,
452
- fee_type: 'Applicant',
453
- category: category,
454
- price: category.applicant_fee
455
- )
456
-
457
- submit_fees
458
- end
459
-
460
- def find_or_build_submit_order
461
- order = submit_order || orders.build(user: owner)
462
- fees = submit_fees()
463
-
464
- # Adds fees, but does not overwrite any existing price.
465
- fees.each do |fee|
466
- order.add(fee) unless order.purchasables.include?(fee)
467
- end
468
-
469
- order.purchasables.each do |purchasable|
470
- order.remove(purchasable) unless fees.include?(purchasable)
471
- end
472
-
473
- # From Billing Step
474
- order.billing_address = owner.billing_address if owner.billing_address.present?
475
-
476
- order.save
477
-
478
- order
479
- end
480
-
481
- # Should be indempotent.
482
- def build_submit_fees_and_order
483
- return false if was_submitted?
484
-
485
- fees = find_or_build_submit_fees()
486
- raise('already has purchased submit fees') if fees.any? { |fee| fee.purchased? }
487
-
488
- order = find_or_build_submit_order()
489
- raise('already has purchased submit order') if order.purchased?
490
-
491
- true
492
- end
493
-
494
- # Owner clicks on the Billing step. Next step is Checkout
495
- def billing!
496
- ready!
497
- end
498
-
499
- # Ready to check out
500
- def ready!
501
- build_submit_fees_and_order
502
- save!
503
- end
504
-
505
- # Called automatically via after_purchase hook above
506
- def submit_purchased!
507
- return false if was_submitted?
508
-
509
- wizard_steps[:checkout] = Time.zone.now
510
- submit!
511
- end
512
-
513
- # Draft -> Submitted requirements
514
- def submit!
515
- raise('already submitted') if was_submitted?
516
- raise('expected a purchased order') unless submit_order&.purchased?
517
-
518
- after_commit do
519
- applicant_references.each { |reference| reference.notify! if reference.submitted? }
520
- end
521
-
522
- wizard_steps[:checkout] ||= Time.zone.now
523
- wizard_steps[:submitted] = Time.zone.now
524
- submitted!
525
- end
526
-
527
- # 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.
528
470
 
529
471
  def applicant_references_required?
530
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
@@ -107,8 +107,6 @@ module Effective
107
107
  EffectiveMemberships.custom_fee_types.include?(fee_type)
108
108
  end
109
109
 
110
- private
111
-
112
110
  def default_period
113
111
  EffectiveMemberships.Registrar.current_period
114
112
  end
@@ -131,7 +129,7 @@ module Effective
131
129
  end
132
130
 
133
131
  def default_qb_item_name
134
- category&.qb_item_name.presence || "#{fee_type} Fee"
132
+ category&.qb_item_name.presence || "#{fee_type}"
135
133
  end
136
134
 
137
135
  def default_tax_exempt
@@ -6,6 +6,9 @@
6
6
  .row
7
7
  .col-lg-3= f.price_field :applicant_fee
8
8
 
9
+ .row
10
+ .col-lg-3= f.text_field :qb_item_name, label: "Quickbooks Item Name"
11
+
9
12
  %p Charged to join, based on the month of approval:
10
13
 
11
14
  .row
@@ -1,3 +1,3 @@
1
1
  module EffectiveMemberships
2
- VERSION = '0.1.19'
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.19
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