Class: Dashboard::V2::VoucherMarketplacesController
Instance Method Summary
collapse
#default_fallback_location, #default_url_options, #kiosque_callback
#append_info_to_payload
#stimulus
#current_owner, #group_owner_type?, #request_path_contain_group?, #single_owner_type?
#events_ajax_previous_link, #show_source
#after_sign_in_path_for, #after_sign_out_path_for, #default_url_options, #identity_cache_memoization, #render_not_found, #routing_error, search_params_key=
#check_boolean_param, #get_banners, #inventory_params, #reservation_params
Instance Method Details
#check_owner_ticket(ticket, current_owner) ⇒ Object
141
142
143
144
145
146
147
148
149
150
|
# File 'app/controllers/dashboard/v2/voucher_marketplaces_controller.rb', line 141
def check_owner_ticket(ticket, current_owner)
return false if ticket.blank?
return false unless ticket.ticket_transaction
if current_owner.is_a?(Owner)
ticket.present? && ticket.ticket_transaction.restaurant_id == current_owner.restaurant.id
else
(current_owner.restaurant_ids.include? ticket.ticket_transaction.restaurant_id) && ticket.present?
end
end
|
#check_voucher ⇒ Object
67
68
69
70
71
72
73
74
75
76
|
# File 'app/controllers/dashboard/v2/voucher_marketplaces_controller.rb', line 67
def check_voucher
current_owner
voucher = Ticket.find_by(ticket_code: params.require(:voucher_marketplace_id))
valid = voucher.present?
if valid
render json: { success: true, data: Dashboard::V2::VoucherSelfCheckinSerializer.new(voucher) }
else
render json: { success: false, message: 'voucher not found' }
end
end
|
#edit_history ⇒ Object
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
# File 'app/controllers/dashboard/v2/voucher_marketplaces_controller.rb', line 124
def edit_history
ActiveRecord::Base.transaction do
ticket = Ticket.find_by(ticket_code: params[:code])
if ticket.present?
ticket.name = params[:name]
ticket.phone = params[:phone]
if ticket.save!
redirect_to :history_dashboard_v2_voucher_marketplaces, notice: 'Data Updated'
else
redirect_to :history_dashboard_v2_voucher_marketplaces, notice: 'Failed to Update'
end
else
redirect_to :history_dashboard_v2_voucher_marketplaces, notice: 'Failed to Update'
end
end
end
|
#get_redeem_history ⇒ Object
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
# File 'app/controllers/dashboard/v2/voucher_marketplaces_controller.rb', line 106
def get_redeem_history
vcode = "VC-#{params[:id]}"
ticket = Ticket.find_by(ticket_code: vcode)
if ticket.present?
user_name = ticket.name
user_phone = ticket.phone
code = ticket.ticket_code
data = {
voucher_name: user_name,
voucher_phone: user_phone,
voucher_code: code,
}
render json: { success: true, data: data }
else
render json: { success: false, message: 'Voucher code not found' }
end
end
|
#get_redeem_list ⇒ Object
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
|
# File 'app/controllers/dashboard/v2/voucher_marketplaces_controller.rb', line 14
def get_redeem_list
vcode = "VC-#{params[:id]}"
ticket = Ticket.find_by(ticket_code: vcode)
if check_owner_ticket(ticket, current_owner)
code = ticket.ticket_code
title = ticket.ticket_name
price = ticket.amount.to_i
voucher_id = ticket.ticket_group_id
user_name = ticket.name
user_phone = ticket.phone
start_date = ticket.valid_start_date
end_date = ticket.valid_end_date
status_redeem = ticket.redeemed_at.present?
date_redeem = ticket.redeemed_at
today = Date.today
valid_date = today >= ticket.valid_start_date && today <= ticket.valid_end_date
active = ticket.active
data = {
voucher_code: code,
voucher_title: title,
voucher_price: price,
voucher_id: voucher_id,
voucher_name: user_name,
voucher_phone: user_phone,
voucher_valid_start_date: start_date,
voucher_valid_end_date: end_date,
voucher_valid_date: valid_date,
voucher_status_redeem: status_redeem,
voucher_date_redeem: date_redeem,
voucher_status_active: active,
}
render json: { success: true, data: data }
else
render json: { success: false, message: 'Voucher code not found' }
end
end
|
#history ⇒ Object
94
95
96
|
# File 'app/controllers/dashboard/v2/voucher_marketplaces_controller.rb', line 94
def history
@history = Ticket.joins(:ticket_transaction).where(ticket_transactions: { restaurant_id: current_owner.restaurant.id }).where.not(redeemed_at: nil)
end
|
#list ⇒ Object
2
3
4
|
# File 'app/controllers/dashboard/v2/voucher_marketplaces_controller.rb', line 2
def list
@data = TicketGroup.joins(:restaurants).where(ticket_group_restaurants: { restaurant_id: current_owner.restaurant.id })
end
|
#redeem ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# File 'app/controllers/dashboard/v2/voucher_marketplaces_controller.rb', line 52
def redeem
service = TicketService::Redeem.new(
code: params[:code],
name: params[:name],
phone: params[:phone],
guest_detail: params[:guest_detail],
)
if service.execute
redirect_to :list_dashboard_v2_voucher_marketplaces, notice: 'Voucher has been redeemed successfully'
else
redirect_to :list_dashboard_v2_voucher_marketplaces, alert: service.errors.full_messages.to_sentence
end
end
|
#redeem_history ⇒ Object
98
99
100
101
102
103
104
|
# File 'app/controllers/dashboard/v2/voucher_marketplaces_controller.rb', line 98
def redeem_history
if params[:partner_app_embed]
render layout: 'partner_app'
else
render layout: 'dashboard_v2_pop_up'
end
end
|
#redeem_list ⇒ Object
6
7
8
9
10
11
12
|
# File 'app/controllers/dashboard/v2/voucher_marketplaces_controller.rb', line 6
def redeem_list
if params[:partner_app_embed]
render layout: 'partner_app'
else
render layout: 'dashboard_v2_pop_up'
end
end
|
#self_redeem ⇒ Object
78
79
80
81
82
83
84
85
86
87
88
|
# File 'app/controllers/dashboard/v2/voucher_marketplaces_controller.rb', line 78
def self_redeem
current_owner ticket_code = params.require(:voucher_marketplace_id)
service = TicketService::Redeem.new(code: ticket_code)
if service.execute
render json: { success: true, message: 'Voucher has been redeemed successfully' }
else
render json: { success: false, message: service.errors.full_messages.to_sentence }
end
end
|
90
91
92
|
# File 'app/controllers/dashboard/v2/voucher_marketplaces_controller.rb', line 90
def self_redeem_form
current_owner end
|