effective_events 2.32.1 → 2.33.0

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: 81ec9bb4f71c619dc8ffc2632f2fa53898ba7c7f78978130fef63aba5cd5ba76
4
- data.tar.gz: 3a3b4b10cacc93bc04d4c9ca6081e6ce3a7d1991af032f13bf02aa22d7bc5927
3
+ metadata.gz: 1b0ae587daebc365cd145d2efb8296557760cbcb7bf690ca6027ebba50c84249
4
+ data.tar.gz: e24cc7c0844d9ed29b528d26b2261095fe2b58583c46b92db4af77ae76b6ffb0
5
5
  SHA512:
6
- metadata.gz: b53a568ab95d67da9773ab9a32f7b126fda3992b18d2d992d194a432f9e0821cce2f06b6aeab2f899da10a7e126e22d7bb63f385250db2c9168c05c02bbf40be
7
- data.tar.gz: 283afdc9a85aefeaea037c610526cb6822d1e0ac8dc58da4489d931742566da9d74bb6a360750fa5bd146aae1518bf2d690dd1f0cd4f470083545df3863ee4c7
6
+ metadata.gz: 05a1da730a4b6cf47f3796cab27377627be6629d6d134abecd2c413ff3bce85a5379a093dd1822b0d962ee174317d0d473f34dd69743db296b4a68b177017615
7
+ data.tar.gz: 17cbe3baf5030f61ce4402bf3ce6cf5b04d1ec9738002f468d7447a3feae5aa881f550011f52035d6c5a3e40ff8d1496671a658cafde64e2b65111799990da06
@@ -11,7 +11,7 @@ module Admin
11
11
  end
12
12
 
13
13
  datatable do
14
- order :registered_at, :asc
14
+ order :registered_at, :desc
15
15
 
16
16
  col :updated_at, visible: false
17
17
  col :created_at, visible: false
@@ -174,6 +174,14 @@ module Effective
174
174
  errors.add(:category, 'is not included in the list') unless EffectiveEvents.categories.include?(category)
175
175
  end
176
176
 
177
+ validate(if: -> { persisted? && delayed_payment_changed? && delayed_payment_was && !delayed_payment? }) do
178
+ errors.add(:delayed_payment, "cannot be disabled because there are existing delayed orders") if delayed_orders.present?
179
+ end
180
+
181
+ after_commit(if: -> { persisted? && delayed? && delayed_payment_date_previously_changed? }) do
182
+ update_delayed_orders_delayed_payment_date!
183
+ end
184
+
177
185
  def to_s
178
186
  title.presence || model_name.human
179
187
  end
@@ -326,6 +334,24 @@ module Effective
326
334
  delayed_payment_date > Time.zone.now.to_date
327
335
  end
328
336
 
337
+ def update_delayed_orders_delayed_payment_date!
338
+ raise('expected delayed payment date to be present') unless delayed_payment_date.present?
339
+
340
+ transaction do
341
+ delayed_orders.find_each { |order| order.update!(delayed_payment_date: delayed_payment_date) }
342
+ end
343
+ end
344
+
345
+ # When an event payment date is changed, all pending orders should also be updated
346
+ def delayed_orders
347
+ order_ids = (
348
+ Effective::OrderItem.where(purchasable_id: event_registrants, purchasable_type: 'Effective::EventRegistrant').pluck(:order_id) +
349
+ Effective::OrderItem.where(purchasable_id: event_addons, purchasable_type: 'Effective::EventAddon').pluck(:order_id)
350
+ ).uniq
351
+
352
+ Effective::Order.where.not(status: [:purchased, :declined, :voided]).delayed.where(id: order_ids) # deferred delayed orders
353
+ end
354
+
329
355
  def qb_item_names
330
356
  (event_tickets + event_products).map(&:qb_item_name).uniq - ['', nil]
331
357
  end
@@ -49,9 +49,9 @@ module Effective
49
49
  registered_at :datetime # When the order is deferred or purchased
50
50
 
51
51
  # Question Responses
52
- question1 :text
53
- question2 :text
54
- question3 :text
52
+ response1 :text
53
+ response2 :text
54
+ response3 :text
55
55
 
56
56
  archived :boolean
57
57
 
@@ -292,6 +292,10 @@ module Effective
292
292
 
293
293
  # Admin update event registrant action
294
294
  def save_and_update_orders!
295
+ if event_ticket_id_changed?
296
+ assign_attributes(response1: nil, response2: nil, response3: nil)
297
+ end
298
+
295
299
  save!
296
300
 
297
301
  orders.reject(&:purchased?).each { |order| order.update_purchasable_attributes! }
@@ -46,7 +46,7 @@
46
46
  = f.hidden_field :delayed_payment_date, value: ''
47
47
 
48
48
  = f.show_if(:delayed_payment, true) do
49
- = f.date_field :delayed_payment_date, label: "Delayed Payment Charge Date", hint: "The date that the credit card will be charged. Expects a date in the future, after the registration end date. Changing this date will not affect previously generated event registration delayed payment orders."
49
+ = f.date_field :delayed_payment_date, label: "Delayed Payment Charge Date", hint: "The date that the credit card will be charged. Expects a date in the future, after the registration end date.<br>Changing this will update the charge date for all existing delayed payment orders."
50
50
 
51
51
  = f.submit do
52
52
  = f.save 'Save'
@@ -64,6 +64,9 @@ class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
64
64
  t.timestamps
65
65
  end
66
66
 
67
+ add_index :event_tickets, :event_id, if_not_exists: true
68
+ add_index :event_tickets, :title, if_not_exists: true
69
+
67
70
  create_table :event_registrants do |t|
68
71
  t.integer :event_id
69
72
  t.integer :event_ticket_id
@@ -110,6 +113,12 @@ class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
110
113
  t.timestamps
111
114
  end
112
115
 
116
+ add_index :event_registrants, [:user_type, :user_id, :owner_type, :owner_id], if_not_exists: true
117
+ add_index :event_registrants, :event_registration_id, if_not_exists: true
118
+ add_index :event_registrants, :event_ticket_id, if_not_exists: true
119
+ add_index :event_registrants, :archived, if_not_exists: true
120
+ add_index :event_registrants, :registered_at, if_not_exists: true
121
+
113
122
  create_table :event_products do |t|
114
123
  t.integer :event_id
115
124
 
@@ -127,6 +136,9 @@ class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
127
136
  t.timestamps
128
137
  end
129
138
 
139
+ add_index :event_products, :event_id, if_not_exists: true
140
+ add_index :event_products, :position, if_not_exists: true
141
+
130
142
  create_table :event_addons do |t|
131
143
  t.integer :event_id
132
144
  t.integer :event_product_id
@@ -152,6 +164,9 @@ class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
152
164
  t.timestamps
153
165
  end
154
166
 
167
+ add_index :event_addons, :event_registration_id, if_not_exists: true
168
+ add_index :event_addons, :event_product_id, if_not_exists: true
169
+
155
170
  create_table :event_registrations do |t|
156
171
  t.string :token
157
172
 
@@ -178,6 +193,10 @@ class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
178
193
  t.datetime :created_at
179
194
  end
180
195
 
196
+ add_index :event_registrations, [:owner_id, :owner_type]
197
+ add_index :event_registrations, :status
198
+ add_index :event_registrations, :token
199
+
181
200
  create_table :event_ticket_selections do |t|
182
201
  t.integer :event_registration_id
183
202
  t.string :event_registration_type
@@ -189,9 +208,7 @@ class CreateEffectiveEvents < ActiveRecord::Migration[6.0]
189
208
  t.datetime :created_at
190
209
  end
191
210
 
192
- add_index :event_registrations, [:owner_id, :owner_type]
193
- add_index :event_registrations, :status
194
- add_index :event_registrations, :token
211
+ add_index :event_ticket_selections, :event_registration_id, if_not_exists: true
195
212
 
196
213
  create_table :event_notifications do |t|
197
214
  t.references :event
@@ -1,3 +1,3 @@
1
1
  module EffectiveEvents
2
- VERSION = '2.32.1'.freeze
2
+ VERSION = '2.33.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_events
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.32.1
4
+ version: 2.33.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: 2025-04-24 00:00:00.000000000 Z
11
+ date: 2025-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails