effective_events 2.33.1 → 2.33.3

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: 421007fd05e3c277084e11940c77285df4515295b9b406056cde323862230e15
4
- data.tar.gz: 07a45f5e08e4fc1fab12917f1d6a0379f027a9c4a1ed2ae12f9bd2ea47c4f705
3
+ metadata.gz: 28f9bea4ad9ae836687a2976d8375defb38dadd9024380d02daae3edfc5d2826
4
+ data.tar.gz: cab0b307582df198e1de51213a473102b5699e433091297e888995278c994978
5
5
  SHA512:
6
- metadata.gz: 7b15bffd4cba843b709255b8d2526126147fa6377bc029431dc97fc3677ac67378cf774432f53927590295f018d161ec5e8f1bffa672ed2948491b0e5f4b2bc7
7
- data.tar.gz: 5390b0e6114a9379f83dd7b5f5062f57fb8b497c95603bb5708fdd225b141028a40bf6e92ab2ae6354e92cf81aa9a1246bbea4e575abfd0dece9587d677eeee1
6
+ metadata.gz: 78059802ffd220f3bb1cacf8e3d7e2160513b213f0d95c740669a206f5bbcab341c9a8d981f9f270dfc11c1c5aacb35ff3260936aa2e99ff0a57755356cb304e
7
+ data.tar.gz: 6080c2d6d2338ca6c94571dbb84901d04524022136f39b9e2431c88fd1025d0da192970f6bad8ca6552083d2d3d568c1085f779341b66c661d6cca2c60be7037
@@ -324,9 +324,72 @@ module Effective
324
324
  def promote!
325
325
  raise('expected a waitlist? event_ticket') unless event_ticket.waitlist?
326
326
 
327
+ if purchased? && event_registration.present?
328
+ promote_purchased_event_registration!
329
+ elsif purchased? && event_registration.blank?
330
+ promote_purchased_order!
331
+ else
332
+ promote_not_purchased!
333
+ end
334
+ end
335
+
336
+ def promote_purchased_event_registration!
337
+ # Remove myself from any existing orders.
338
+ # I must be $0 so we don't need to update any prices.
339
+ orders.each do |order|
340
+ order.order_items.find { |oi| oi.purchasable == self }.destroy!
341
+ end
342
+
343
+ # I'm now promoted and unpurchased
344
+ update!(promoted: true, purchased_order: nil)
345
+
346
+ # Check if the ticket owner has an unpurchased event registration for the event or create a new one
347
+ event_registration = EffectiveEvents.EventRegistration.draft.where(event: event, owner: owner).where.not(id: event_registration_id).first
348
+ event_registration ||= EffectiveEvents.EventRegistration.new(event: event, owner: owner)
349
+
350
+ # Put the event registration on the checkout step
351
+ event_registration.all_steps_before(:checkout).each do |step|
352
+ event_registration.wizard_steps[step] ||= Time.zone.now
353
+ end
354
+
355
+ event_registration.save!
356
+
357
+ # Move this registrant into the new event registration
358
+ update!(event_registration: event_registration)
359
+
360
+ # Build the order for the event registration
361
+ # It can be checked out by admin immediately, or the user can go through it themselves
362
+ event_registration.reload
363
+ event_registration.find_or_build_submit_order
364
+
365
+ event_registration.save!
366
+ end
367
+
368
+ def promote_purchased_order!
369
+ # Remove myself from any existing orders.
370
+ # I must be $0 so we don't need to update any prices.
371
+ orders.each do |order|
372
+ order.order_items.find { |oi| oi.purchasable == self }.destroy!
373
+ end
374
+
375
+ # I'm now promoted and unpurchased
376
+ update!(promoted: true, purchased_order: nil)
377
+
378
+ # Check if the ticket owner has an unpurchased order for the event or create a new one
379
+ order = owner.orders.reject { |order| order.purchased? }.find do |order|
380
+ order.purchasables.any? { |purchasable| purchasable.class.name == "Effective::EventRegistrant" && purchasable.try(:event) == event }
381
+ end
382
+ order ||= Effective::Order.new(user: owner)
383
+
384
+ # Move this registrant into the new order
385
+ order.add(self)
386
+
387
+ order.save!
388
+ end
389
+
390
+ def promote_not_purchased!
327
391
  update!(promoted: true)
328
392
  orders.reject(&:purchased?).each { |order| order.update_purchasable_attributes! }
329
-
330
393
  true
331
394
  end
332
395
 
@@ -335,7 +398,6 @@ module Effective
335
398
 
336
399
  update!(promoted: false)
337
400
  orders.reject(&:purchased?).each { |order| order.update_purchasable_attributes! }
338
-
339
401
  true
340
402
  end
341
403
 
@@ -377,6 +439,16 @@ module Effective
377
439
  send_order_emails!
378
440
  end
379
441
 
442
+ # Manual admin action only. From datatable.
443
+ def send_payment_request!
444
+ raise('already purchased or deferred') if purchased_or_deferred?
445
+
446
+ order = (Array(event_registration_submit_order) + Array(orders)).find { |order| order.in_progress? && !order.purchased_or_deferred? && !order.refund? }
447
+ return false if order.blank?
448
+
449
+ order.send_payment_request_to_buyer!
450
+ end
451
+
380
452
  def send_order_emails!
381
453
  event_registration&.submit_order&.send_order_emails!
382
454
  end
data/config/routes.rb CHANGED
@@ -51,7 +51,7 @@ EffectiveEvents::Engine.routes.draw do
51
51
  post :unarchive, on: :member
52
52
 
53
53
  post :send_confirmation_email, on: :member
54
- post :send_order_emails, on: :member
54
+ post :send_payment_request, on: :member
55
55
  end
56
56
 
57
57
  resources :event_addons, except: [:show] do
@@ -1,3 +1,3 @@
1
1
  module EffectiveEvents
2
- VERSION = '2.33.1'.freeze
2
+ VERSION = '2.33.3'.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.33.1
4
+ version: 2.33.3
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-06-16 00:00:00.000000000 Z
11
+ date: 2025-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails