spree_cm_commissioner 2.5.13 → 2.5.14.pre.pre2

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: 3e4173db9eaef31ba44153b210477bd83e359559c6b007f644723d320e9e8f30
4
- data.tar.gz: 38aba375ecb1177922443efbe00c09e923c75f3f2547c3df5cb383378e45a8b8
3
+ metadata.gz: 9fc822ca647b6847cc80bc5d4f24f68312c67c3cf772e8422801f29d36b8c871
4
+ data.tar.gz: ac27932993e5c366efcfe5d1f15491c7b0248a886f0d804af69545a28a6a83cd
5
5
  SHA512:
6
- metadata.gz: 698f5ca602839ec3b8293cd2aecf31a1cc89d6125c16b831a8500ec0aa8c01d705bf15bc215dde6cd50de568c3d505803cf97ad4c4c6a4493f7018f7b535dde1
7
- data.tar.gz: ef9ffdee2d499c102c1f8e2c7166d3ed0d3ccea24f9f6259d74555f4cdc8f7646b9e97ae373710f1412cf256f510e0296259e44fa5d693a19d927b9eecf51396
6
+ metadata.gz: 6030cee41764d55a73430c81849bc91b12dcf12c04097795c3646297e75c53b3206ca186a704a6603eddcb6a57e4226d437e25227bf6a005fe514ea784891d26
7
+ data.tar.gz: d48e1f3ec06affa85260babeea658b9a9cb95ddffffe01175fa9dd24837df25c2a087fd5e4dbc3849ce2592178db9d71793719c21e783ca425820b226f142862
data/Gemfile.lock CHANGED
@@ -34,7 +34,7 @@ GIT
34
34
  PATH
35
35
  remote: .
36
36
  specs:
37
- spree_cm_commissioner (2.5.13)
37
+ spree_cm_commissioner (2.5.14.pre.pre2)
38
38
  activerecord-multi-tenant
39
39
  activerecord_json_validator (~> 2.1, >= 2.1.3)
40
40
  aws-sdk-cloudfront
@@ -8,12 +8,23 @@ module SpreeCmCommissioner
8
8
 
9
9
  confirmed_at ||= Time.current
10
10
  guest_ids = check_ins_attributes.pluck(:guest_id)
11
- indexed_guests = SpreeCmCommissioner::Guest.where(id: guest_ids).index_by(&:id)
11
+
12
+ indexed_guests = SpreeCmCommissioner::Guest
13
+ .includes(:event, line_item: :order)
14
+ .where(id: guest_ids)
15
+ .index_by(&:id)
12
16
 
13
17
  check_ins = ActiveRecord::Base.transaction do
14
18
  check_ins_attributes.map do |attrs|
15
19
  guest = indexed_guests[attrs[:guest_id].to_i]
16
- raise ActiveRecord::RecordNotFound, "Couldn't find Guest with 'id'=#{attrs[:guest_id]}" if guest.blank?
20
+ raise ActiveRecord::RecordNotFound, "Couldn't find Guest to check in" if guest.blank?
21
+
22
+ order = guest.line_item.order
23
+ if order.canceled?
24
+ error = ActiveRecord::RecordInvalid.new(guest)
25
+ error.record.errors.add(:base, 'Cannot check in Guest from cancelled order')
26
+ raise error
27
+ end
17
28
 
18
29
  check_in = check_in!(guest, attrs, check_in_by, confirmed_at)
19
30
  update_guest!(guest, attrs[:guest_attributes]) if attrs[:guest_attributes].present?
@@ -25,8 +36,8 @@ module SpreeCmCommissioner
25
36
  success(check_ins: check_ins)
26
37
  rescue ActiveRecord::RecordInvalid => e
27
38
  failure(:invalid_record, e.record.errors.full_messages.join(', '))
28
- rescue ActiveRecord::RecordNotFound => e
29
- failure(:record_not_found, e.message)
39
+ rescue ActiveRecord::RecordNotFound
40
+ failure(:record_not_found, 'Guest or related record not found')
30
41
  end
31
42
 
32
43
  private
@@ -29,6 +29,8 @@ module SpreeCmCommissioner
29
29
  def fetch_value(guest, column)
30
30
  if guest_field?(column)
31
31
  fetch_guest_value(guest, column)
32
+ elsif dynamic_field?(column)
33
+ fetch_dynamic_field_value(guest, column)
32
34
  else
33
35
  fetch_option_value(guest, column)
34
36
  end
@@ -38,6 +40,39 @@ module SpreeCmCommissioner
38
40
  SpreeCmCommissioner::KycBitwise::ORDERED_BIT_FIELDS.include?(column.to_sym)
39
41
  end
40
42
 
43
+ def dynamic_field?(column)
44
+ return false unless dynamic_fields_exist?
45
+
46
+ dynamic_field_labels.include?(column)
47
+ end
48
+
49
+ def dynamic_field_labels
50
+ return [] unless dynamic_fields_exist?
51
+
52
+ @dynamic_field_labels ||= load_dynamic_field_labels
53
+ end
54
+
55
+ def dynamic_fields_exist?
56
+ return @has_dynamic_fields unless @has_dynamic_fields.nil?
57
+
58
+ @has_dynamic_fields = event.event_products.joins(:product_dynamic_fields).exists?
59
+ end
60
+
61
+ def load_dynamic_field_labels
62
+ event.event_products.joins(product_dynamic_fields: :dynamic_field).distinct.pluck('label')
63
+ end
64
+
65
+ def fetch_dynamic_field_value(guest, column)
66
+ guest_dynamic_field = guest.guest_dynamic_fields.find { |gdf| gdf.dynamic_field&.label == column }
67
+ return '' unless guest_dynamic_field
68
+
69
+ if guest_dynamic_field.dynamic_field_option.present?
70
+ guest_dynamic_field.dynamic_field_option.value
71
+ else
72
+ guest_dynamic_field.value || ''
73
+ end
74
+ end
75
+
41
76
  def fetch_guest_value(guest, column)
42
77
  column_mappings(guest)[column] || ''
43
78
  end
@@ -82,6 +117,7 @@ module SpreeCmCommissioner
82
117
  :occupation,
83
118
  :nationality,
84
119
  :id_card,
120
+ guest_dynamic_fields: %i[dynamic_field dynamic_field_option],
85
121
  line_item: { variant: { option_values: :option_type } }
86
122
  ).complete
87
123
  scope = scope.where('cm_guests.created_at >= ?', formatted_date_time(filters[:from_date])) if filters[:from_date].present?
@@ -1,5 +1,5 @@
1
1
  module SpreeCmCommissioner
2
- VERSION = '2.5.13'.freeze
2
+ VERSION = '2.5.14.pre.pre2'.freeze
3
3
 
4
4
  module_function
5
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_cm_commissioner
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.13
4
+ version: 2.5.14.pre.pre2
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-02-18 00:00:00.000000000 Z
11
+ date: 2026-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -3215,9 +3215,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
3215
3215
  version: '2.7'
3216
3216
  required_rubygems_version: !ruby/object:Gem::Requirement
3217
3217
  requirements:
3218
- - - ">="
3218
+ - - ">"
3219
3219
  - !ruby/object:Gem::Version
3220
- version: '0'
3220
+ version: 1.3.1
3221
3221
  requirements:
3222
3222
  - none
3223
3223
  rubygems_version: 3.4.1