73 lines
2.7 KiB
Ruby
73 lines
2.7 KiB
Ruby
class Origami::VoucherController < BaseOrigamiController
|
|
def index
|
|
@sale_id = params[:sale_id]
|
|
|
|
# limit voucher_amount
|
|
sale_data = Sale.find_by_sale_id(@sale_id)
|
|
total = sale_data.grand_total
|
|
@vouchercount = 0
|
|
others = 0
|
|
sale_data.sale_payments.each do |sale_payment|
|
|
if sale_payment.payment_method == "voucher"
|
|
@vouchercount = @vouchercount + sale_payment.payment_amount
|
|
else
|
|
others = others + sale_payment.payment_amount
|
|
end
|
|
end
|
|
@can_voucher = total - @vouchercount - others
|
|
|
|
end
|
|
|
|
def create
|
|
cash = params[:amount]
|
|
sale_id = params[:sale_id]
|
|
voucher_no = params[:refnumber]
|
|
if(Sale.exists?(sale_id))
|
|
customer_data= Customer.find_by_customer_id(sale_data.customer_id)
|
|
if customer_data
|
|
membership_id = customer_data.membership_id
|
|
membership_setting = MembershipSetting.find_by_membership_type("paypar_url")
|
|
if membership_setting.gateway_url
|
|
member_actions =MembershipAction.find_by_membership_type("get_account_balance") #need to modify here
|
|
if member_actions.gateway_url
|
|
campaign_type_id = member_actions.additional_parameter["campaign_type_id"]
|
|
url = membership_setting.gateway_url.to_s + member_actions.gateway_url.to_s
|
|
merchant_uid= member_actions.merchant_account_id
|
|
auth_token = member_actions.auth_token.to_s
|
|
# membership_data = SalePayment.get_paypar_account(url,membership_setting.auth_token,@membership_id,@campaign_type_id,merchant_uid,auth_token)
|
|
# if membership_data["status"]==true
|
|
# app_token: token,membership_id:membership_id,
|
|
# campaign_type_id:campaign_type_id,merchant_uid:merchant_uid,
|
|
# auth_token:auth_token
|
|
begin
|
|
response = HTTParty.get(url,
|
|
:body => { voucher_no: voucher_no,membership_id:membership_id
|
|
}.to_json,
|
|
:headers => {
|
|
'Content-Type' => 'application/json',
|
|
'Accept' => 'application/json'
|
|
}, :timeout => 10
|
|
)
|
|
rescue Net::OpenTimeout
|
|
response = { status: false }
|
|
|
|
rescue OpenURI::HTTPError
|
|
response = { status: false}
|
|
|
|
rescue SocketError
|
|
response = { status: false}
|
|
end
|
|
# end
|
|
end
|
|
end
|
|
end
|
|
if( response["status"]==true )
|
|
saleObj = Sale.find(sale_id)
|
|
sale_payment = SalePayment.new
|
|
@status, @sale = sale_payment.process_payment(saleObj, @user, cash, "voucher")
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|