disable no rebate if credit note

This commit is contained in:
Yan
2017-12-12 10:35:26 +06:30
parent d80c7840cc
commit f11145cbd1

View File

@@ -323,7 +323,7 @@ class SalePayment < ApplicationRecord
self.sale.sale_status = "completed" self.sale.sale_status = "completed"
if MembershipSetting.find_by_rebate(1) && is_foc == 0 if MembershipSetting.find_by_rebate(1) && is_foc == 0 && is_credit == 0
response = rebat(sObj) response = rebat(sObj)
#record an payment in sale-audit #record an payment in sale-audit
@@ -410,6 +410,7 @@ class SalePayment < ApplicationRecord
# overall_dis = SaleItem.get_overall_discount(sObj.id) # overall_dis = SaleItem.get_overall_discount(sObj.id)
overall_dis = sObj.total_discount overall_dis = sObj.total_discount
if credit != 1
membership = MembershipSetting.find_by_membership_type("paypar_url") membership = MembershipSetting.find_by_membership_type("paypar_url")
memberaction = MembershipAction.find_by_membership_type("get_member_campaign") memberaction = MembershipAction.find_by_membership_type("get_member_campaign")
merchant_uid = memberaction.merchant_account_id.to_s merchant_uid = memberaction.merchant_account_id.to_s
@@ -438,87 +439,89 @@ class SalePayment < ApplicationRecord
rescue SocketError rescue SocketError
response = { "status": false, "message": "Can't connect server"} response = { "status": false, "message": "Can't connect server"}
end end
redeem_amount = payparcost + overall_dis
total_percentage = 0 redeem_amount = payparcost + overall_dis
type_arr = [] total_percentage = 0
Rails.logger.debug "Get Member Campaign"
Rails.logger.debug response.to_json
# Check for present response fields
if response["membership_campaign_data"].present?
response["membership_campaign_data"].each do |a|
data = {:type => a["rules_type"], :percentage => a["change_unit"].to_i * a["base_unit"].to_i}
total_percentage = total_percentage + a["change_unit"].to_i * a["base_unit"].to_i
type_arr.push(data)
end
end
rebate_arr =[] type_arr = []
campaign_method.each do |a| Rails.logger.debug "Get Member Campaign"
data = {:type => a[:type], :amount => a[:amount]} Rails.logger.debug response.to_json
type_arr.each do |si| # Check for present response fields
if si[:type] == a[:type] if response["membership_campaign_data"].present?
if credit == 1 response["membership_campaign_data"].each do |a|
data[:amount] = 0 data = {:type => a["rules_type"], :percentage => a["change_unit"].to_i * a["base_unit"].to_i}
else total_percentage = total_percentage + a["change_unit"].to_i * a["base_unit"].to_i
amount = (redeem_amount / total_percentage)*si[:percentage]
actual = a[:amount] - amount type_arr.push(data)
data[:amount] = actual
end
end end
end end
rebate_arr.push(data)
end
total_amount = rebate_prices - payparcost - overall_dis rebate_arr =[]
campaign_method.each do |a|
if credit == 1 data = {:type => a[:type], :amount => a[:amount]}
total_amount = 0 type_arr.each do |si|
end if si[:type] == a[:type]
if total_amount >= 0 if credit == 1
receipt_no = sObj.receipt_no data[:amount] = 0
membership = MembershipSetting.find_by_membership_type("paypar_url") else
memberaction = MembershipAction.find_by_membership_type("rebate") amount = (redeem_amount / total_percentage)*si[:percentage]
merchant_uid = memberaction.merchant_account_id.to_s actual = a[:amount] - amount
campaign_type_id = memberaction.additional_parameter["campaign_type_id"] data[:amount] = actual
auth_token = memberaction.auth_token.to_s end
url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
end
# Control for Paypar Cloud end
begin rebate_arr.push(data)
response = HTTParty.post(url, end
:body => {
generic_customer_id:generic_customer_id , total_amount = rebate_prices - payparcost - overall_dis
total_sale_transaction_amount: sObj.grand_total,
merchant_uid:merchant_uid, if credit == 1
total_amount: total_amount, total_amount = 0
campaign_type_id: campaign_type_id, end
receipt_no: receipt_no,
campaign_method: rebate_arr.to_json, if total_amount >= 0
auth_token:auth_token receipt_no = sObj.receipt_no
}.to_json, membership = MembershipSetting.find_by_membership_type("paypar_url")
:headers => { memberaction = MembershipAction.find_by_membership_type("rebate")
'Content-Type' => 'application/json', merchant_uid = memberaction.merchant_account_id.to_s
'Accept' => 'application/json; version=2' campaign_type_id = memberaction.additional_parameter["campaign_type_id"]
}, :timeout => 10) auth_token = memberaction.auth_token.to_s
rescue Net::OpenTimeout url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
response = { "status": false , "message": "Connect To" }
rescue OpenURI::HTTPError # Control for Paypar Cloud
response = { "status": false, "message": "Can't connect server"} begin
response = HTTParty.post(url,
rescue SocketError :body => {
response = { "status": false, "message": "Can't connect server"} generic_customer_id:generic_customer_id ,
total_sale_transaction_amount: sObj.grand_total,
merchant_uid:merchant_uid,
total_amount: total_amount,
campaign_type_id: campaign_type_id,
receipt_no: receipt_no,
campaign_method: rebate_arr.to_json,
auth_token:auth_token
}.to_json,
:headers => {
'Content-Type' => 'application/json',
'Accept' => 'application/json; version=2'
}, :timeout => 10)
rescue Net::OpenTimeout
response = { "status": false , "message": "Connect To" }
rescue OpenURI::HTTPError
response = { "status": false, "message": "Can't connect server"}
rescue SocketError
response = { "status": false, "message": "Can't connect server"}
end
Rails.logger.debug "Rebage Response"
Rails.logger.debug response.to_json
return response
end end
Rails.logger.debug "Rebage Response"
Rails.logger.debug response.to_json
return response
end end
else else
response = { "status": "no_member", "message": "Not membership"} response = { "status": "no_member", "message": "Not membership"}
end end
end end