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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9fc822ca647b6847cc80bc5d4f24f68312c67c3cf772e8422801f29d36b8c871
|
|
4
|
+
data.tar.gz: ac27932993e5c366efcfe5d1f15491c7b0248a886f0d804af69545a28a6a83cd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6030cee41764d55a73430c81849bc91b12dcf12c04097795c3646297e75c53b3206ca186a704a6603eddcb6a57e4226d437e25227bf6a005fe514ea784891d26
|
|
7
|
+
data.tar.gz: d48e1f3ec06affa85260babeea658b9a9cb95ddffffe01175fa9dd24837df25c2a087fd5e4dbc3849ce2592178db9d71793719c21e783ca425820b226f142862
|
data/Gemfile.lock
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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
|
|
29
|
-
failure(:record_not_found,
|
|
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?
|
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.
|
|
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-
|
|
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:
|
|
3220
|
+
version: 1.3.1
|
|
3221
3221
|
requirements:
|
|
3222
3222
|
- none
|
|
3223
3223
|
rubygems_version: 3.4.1
|