5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'app/workers/workers/reservations/custom_corporate_event_worker.rb', line 5
def perform(corporate_event_id)
corporate_event = Corporates::Event.find(corporate_event_id)
reservations = corporate_event.reservations
reservations.each do |reservation|
package = reservation.package
reservation.build_property.save! if reservation.property.nil?
if package.blank? || package[:package_data].blank?
data_package = {}
custom_package_data = [{
custom_commision_percent: corporate_event.custom_commision_percent,
use_custom_commision: corporate_event.use_custom_commision
}]
else
package_data = package[:package_data].map do |p|
custom_commision_percent = corporate_event.use_custom_commision? ? corporate_event.custom_commision_percent : p[:commision]
{
id: p[:id],
type: p[:type],
price_cents: package[:price_cents],
price_currency: p[:price_currency],
commision: custom_commision_percent,
quantity: p[:quantity],
restaurant_package_id: p[:restaurant_package_id],
pricing_type: p[:pricing_type]
}
end
data_package = if package[:price_cents].blank?
{
package_type: package[:package_type],
package_data: package_data
}
else
{
package_type: package[:package_type],
package_data: package_data,
price_cents: package[:price_cents],
price_currency: package[:price_currency],
revenue: package[:revenue]
}
end
custom_package_data = []
package[:package_data].map do |p|
data = {
id: p[:restaurant_package_id],
type: p[:type],
quantity: p[:quantity],
price_cents: p[:price_cents],
price_currency: p[:price_currency],
custom_commision_percent: corporate_event.custom_commision_percent,
use_custom_commision: corporate_event.use_custom_commision
}
custom_package_data << data
end
end
reservation.property.update!(package: data_package.merge!(custom_package_data: custom_package_data))
end
end
|