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
64
65
66
67
68
69
70
71
|
# File 'app/workers/generate_delivery_menu_worker.rb', line 23
def reservations_to_csv(reservations)
CSV.generate(headers: true) do |csv|
csv << %w[tableno menuid menuname Quantity Price bookingid customername Phone ordTime
ordDate ordStatus Section]
reservations.each do |r|
package_data = r.package['package_data'].presence || []
package_data.each do |data|
package = data['type'].constantize.fetch(data['id'])
amount = HhMoney.new(data['price_cents'], data['price_currency']).amount.to_f
csv << [
r.table,
package.fetch_package_attr.,
package.name,
1,
amount,
r.id,
r.name,
r.phone,
r.start_time_format,
r.date.strftime('%m/%d/%Y'),
r.service_type_humanize,
'Package'
]
end
r..includes(package_menu_section: :translations,
menus: { package_menu: :translations }).find_each do |section|
section..find_each do |m|
m.quantity.to_i.times do
csv << [
r.table,
m..,
m..name,
1,
m..price.amount.to_f,
r.id,
r.name,
r.phone,
r.start_time_format,
r.date.strftime('%m/%d/%Y'),
r.service_type_humanize,
section..name
]
end
end
end
end
end
end
|