effective_memberships 0.9.4 → 0.9.5

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: 611d01eb6651211b44bbc681c6060aa4a74541a08ec9ac59d3b0d1972ceacbfc
4
- data.tar.gz: 78796ebd87001ae6e9448f48892d61b034077637ceea0437084a259746824e57
3
+ metadata.gz: bea643081128f664a7c004dbc49a3e8e06f940781267f85f63c7c6d4e69fe6d1
4
+ data.tar.gz: a769c9c7216ccdc090fc8a3e6107d654e49eeca2b20a171c48769b46d27a0cb0
5
5
  SHA512:
6
- metadata.gz: 60bd9e7864f520588a47b4ef69a9460c5cbadbc7fbd0718086566787a16e785348666e87c16c41a6e95826c6b4cd5b93a5c9c67a239b14a5ed82699681e6c279
7
- data.tar.gz: 5032cf5a31bda06e919a7abc9009c00ae2d3fcaf25c2889453184839b625cdaa8987c88c95ae7c462c0fb501d6303126b1f2a0b8f14778bbb7d945d49574c9ff
6
+ metadata.gz: 4553d6b65132b346f36882658baac0ae47ec8945f2f592c19fac705b2e5414d1f4597e5473d2209cdb6a6c0528768a4aa65fe75b59b9712f14ffccdc6c5203ca
7
+ data.tar.gz: f6c02642c63397a2484fb0d9cd4b3fd471767b9c1b8449528e720ac2f73946a86520094ba39bd0b7056df0544e230a0f1a3bd60ddeb64ba689431664d9c3938b
@@ -21,6 +21,13 @@ module Admin
21
21
 
22
22
  col :fee_type, search: EffectiveMemberships.fee_types
23
23
 
24
+ col :period, search: { collection: EffectiveMemberships.Registrar.periods_collection } do |fee|
25
+ EffectiveMemberships.Registrar.period_end_on(date: fee.period)
26
+ end
27
+
28
+ col :category, search: { collection: EffectiveMemberships.Category.all, polymorphic: false }
29
+ col :title
30
+
24
31
  col :price, as: :price
25
32
  col :qb_item_name, label: 'Quickbooks Item Name'
26
33
  col :tax_exempt, visible: false
@@ -31,9 +38,8 @@ module Admin
31
38
  col :parent, search: :string, visible: false
32
39
  end
33
40
 
34
- col :purchased_order, visible: false
41
+ col :purchased_order
35
42
 
36
- col :category, search: { collection: EffectiveMemberships.Category.all, polymorphic: false }
37
43
  col :checkout_type, search: Effective::Fee::CHECKOUT_TYPES, visible: false
38
44
 
39
45
  unless attributes[:total] == false
@@ -623,6 +623,7 @@ module EffectiveMembershipsApplicant
623
623
  category_ids = user.membership.category_ids
624
624
 
625
625
  categories.select do |cat|
626
+ cat.can_apply_new? ||
626
627
  cat.can_apply_existing? ||
627
628
  (cat.can_apply_restricted? && (category_ids & cat.can_apply_restricted_ids).present?)
628
629
  end
@@ -375,6 +375,11 @@ module EffectiveMembershipsRegistrar
375
375
  retval
376
376
  end
377
377
 
378
+ def periods_collection(from: nil, to: nil)
379
+ from ||= Time.zone.now - 10.years
380
+ periods(from: from, to: to).reverse.map { |period| [period_end_on(date: period), period] }
381
+ end
382
+
378
383
  # This is intended to be run once per day in a rake task
379
384
  # rake effective_memberships:create_fees
380
385
  # Create Renewal and Late fees
@@ -44,9 +44,13 @@ module Effective
44
44
  self.with_status ||= owner.membership.statuses.first if owner.membership.statuses.length == 1
45
45
  end
46
46
 
47
+ before_validation(if: -> { changes['title'].blank? && (changes.keys & ['period', 'category_id', 'fee_type']).present? }) do
48
+ self.title = default_title()
49
+ end
50
+
47
51
  before_validation do
48
52
  self.period ||= EffectiveMemberships.Registrar.current_period
49
- self.title ||= default_title()
53
+ self.title = default_title() if self.title.blank?
50
54
  end
51
55
 
52
56
  before_validation(if: -> { fee_type == 'Renewal' && category.present? && period.present? }) do
@@ -6,45 +6,38 @@
6
6
  - collection = { 'Users' => current_user.class.sorted, 'Organizations' => EffectiveMemberships.Organization.sorted }
7
7
  = f.select :owner, collection, polymorphic: true
8
8
 
9
+ - registrar = EffectiveMemberships.Registrar
9
10
  - fee_types = EffectiveMemberships.fee_types
10
11
  - membership_period_fee_types = fee_types.select { |fee_type| Effective::Fee.new(fee_type: fee_type).membership_period_fee? }
11
12
 
12
- - if f.object.new_record?
13
- = f.select :fee_type, fee_types
14
- - else
15
- = f.static_field :fee_type
16
-
17
- = f.show_if_any(:fee_type, membership_period_fee_types) do
18
- = card do
19
- %p This is a membership period fee. It will advance the membership fees paid through period when purchased.
20
- %p Only one membership period fee -- Prorated or Renewal -- is expected to exist per membership period.
21
-
22
- - registrar = EffectiveMemberships.Registrar
23
- - periods = registrar.periods(from: Time.zone.now - 10.years)
24
- - collection = periods.reverse.map { |period| [registrar.period_end_on(date: period), period] }
13
+ - f.object.period ||= registrar.current_period
14
+ - f.object.checkout_type ||= 'Default'
25
15
 
26
- - f.object.period ||= registrar.current_period
27
- = f.select :period, collection, label: 'Membership period', hint: 'When purchased, set the membership fees paid through period to this period'
16
+ - f.object.category_id ||= f.object.owner&.membership&.categories&.first&.id
17
+ - f.object.category ||= f.object.owner&.membership&.categories&.first
28
18
 
29
- - # Renewal Fees Only
30
- - if f.object.persisted? && f.object.renewal_fee?
31
- - if f.object.category.create_late_fees?
32
- = f.date_field :late_on, hint: 'A late fee will be applied on this date unless purchased'
19
+ = f.select :period, registrar.periods_collection, label: 'Membership period'
20
+ = f.select :fee_type, fee_types
21
+ = f.select :category_id, EffectiveMemberships.Category.all
33
22
 
34
- - if f.object.category.create_not_in_good_standing?
35
- = f.date_field :not_in_good_standing_on, hint: 'The membership will be marked NIGS on this date unless purchased'
23
+ = f.show_if_any(:fee_type, membership_period_fee_types) do
24
+ %p.text-muted
25
+ This is a membership period fee. It will advance the membership fees paid through period when purchased.
26
+ %br
27
+ Only one membership period fee -- Prorated or Renewal -- is expected to exist per membership period.
36
28
 
37
- - f.object.category_id = f.object.owner&.membership&.categories&.first&.id
38
- = f.select :category_id, EffectiveMemberships.Category.all
29
+ - if f.object.category.present?
30
+ = f.show_if(:fee_type, 'Renewal') do
31
+ - if f.object.category.create_late_fees?
32
+ = f.date_field :late_on, hint: 'A late fee will be applied on this date unless purchased. Leave blank to assign the default.'
39
33
 
40
- - if f.object.parent.blank?
41
- - f.object.checkout_type ||= 'Default'
34
+ - if f.object.category.create_not_in_good_standing?
35
+ = f.date_field :not_in_good_standing_on, hint: 'The membership will be marked NIGS on this date unless purchased. Leave blank to assign the default.'
42
36
 
43
- = f.radios :checkout_type, Effective::Fee::CHECKOUT_TYPES, inline: true, label: 'Checkout wizard',
44
- hint: 'When default, Applicant and Reinstatement fees will be charged from the applicant wizard, and all other fee types from the fee payment wizard'
45
- - else
46
- = f.static_field :parent
37
+ = f.radios :checkout_type, Effective::Fee::CHECKOUT_TYPES, inline: true, label: 'Checkout wizard',
38
+ hint: 'When default, Applicant and Reinstatement fees will be charged from the applicant wizard, and all other fee types from the fee payment wizard'
47
39
 
40
+ = f.text_field :title, hint: 'Leave blank to assign the default', required: false
48
41
  = f.price_field :price
49
42
  = f.text_field :qb_item_name, label: 'Quickbooks Item Name'
50
43
  = f.check_box :tax_exempt, label: 'Yes, this fee is tax exempt'
data/config/routes.rb CHANGED
@@ -52,7 +52,7 @@ EffectiveMemberships::Engine.routes.draw do
52
52
 
53
53
  resources :applicant_reviews, only: [:index, :show]
54
54
 
55
- resources :fees
55
+ resources :fees, except: [:show]
56
56
  resources :categories, only: [:index, :edit, :update]
57
57
 
58
58
  resources :applicant_course_areas, except: [:show]
@@ -1,3 +1,3 @@
1
1
  module EffectiveMemberships
2
- VERSION = '0.9.4'
2
+ VERSION = '0.9.5'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_memberships
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect