update customer rebate
This commit is contained in:
@@ -104,13 +104,13 @@ class Customer < ApplicationRecord
|
|||||||
'Accept' => 'application/json'
|
'Accept' => 'application/json'
|
||||||
})
|
})
|
||||||
rescue Net::OpenTimeout
|
rescue Net::OpenTimeout
|
||||||
response = { status: false }
|
response = { status: false, message: "Server Time out" }
|
||||||
|
|
||||||
rescue OpenURI::HTTPError
|
rescue OpenURI::HTTPError
|
||||||
response = { status: false}
|
response = { status: false, message: "Can't connect server"}
|
||||||
|
|
||||||
rescue SocketError
|
rescue SocketError
|
||||||
response = { status: false}
|
response = { status: false, message: "Can't connect server"}
|
||||||
end
|
end
|
||||||
|
|
||||||
if response["status"] == true
|
if response["status"] == true
|
||||||
@@ -120,6 +120,76 @@ class Customer < ApplicationRecord
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.update_rebate
|
||||||
|
|
||||||
|
sales = Sale.where("rebate_status = 'false'")
|
||||||
|
sales.each do |sale|
|
||||||
|
if sale.customer.membership_id
|
||||||
|
response = self.rebat(Sale.find(sale.sale_id))
|
||||||
|
puts response.to_json
|
||||||
|
if response["status"] == true
|
||||||
|
status = sale.update_attributes(rebate_status: "true")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.rebat(sObj)
|
||||||
|
rebate_prices = SaleItem.calculate_rebate_by_account(sObj.sale_items)
|
||||||
|
|
||||||
|
generic_customer_id = sObj.customer.membership_id
|
||||||
|
if generic_customer_id.present?
|
||||||
|
paypar = sObj.sale_payments
|
||||||
|
payparcost = 0
|
||||||
|
credit = 0
|
||||||
|
paypar.each do |pp|
|
||||||
|
if pp.payment_method == "paypar"
|
||||||
|
payparcost = payparcost + pp.payment_amount
|
||||||
|
elsif pp.payment_method == "creditnote"
|
||||||
|
credit = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
# overall_dis = SaleItem.get_overall_discount(sObj.id)
|
||||||
|
overall_dis = sObj.total_discount
|
||||||
|
|
||||||
|
total_amount = rebate_prices - payparcost - overall_dis
|
||||||
|
if credit == 1
|
||||||
|
total_amount = 0
|
||||||
|
end
|
||||||
|
if total_amount >= 0
|
||||||
|
receipt_no = sObj.receipt_no
|
||||||
|
membership = MembershipSetting.find_by_membership_type("paypar_url")
|
||||||
|
memberaction = MembershipAction.find_by_membership_type("rebate")
|
||||||
|
merchant_uid = memberaction.merchant_account_id.to_s
|
||||||
|
campaign_type_id = memberaction.additional_parameter["campaign_type_id"]
|
||||||
|
auth_token = memberaction.auth_token.to_s
|
||||||
|
url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
|
||||||
|
|
||||||
|
# Control for Paypar Cloud
|
||||||
|
begin
|
||||||
|
response = HTTParty.post(url, :body => { 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,auth_token:auth_token}.to_json,
|
||||||
|
:headers => {
|
||||||
|
'Content-Type' => 'application/json',
|
||||||
|
'Accept' => 'application/json'
|
||||||
|
}, :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
|
||||||
|
return response
|
||||||
|
puts response.to_json
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def self.search(search)
|
def self.search(search)
|
||||||
if search
|
if search
|
||||||
# find(:all, :conditions => ['name LIKE ? OR contact_no LIKE ?', "%#{search}%", "%#{search}%"])
|
# find(:all, :conditions => ['name LIKE ? OR contact_no LIKE ?', "%#{search}%", "%#{search}%"])
|
||||||
|
|||||||
@@ -142,20 +142,6 @@ class SalePayment < ApplicationRecord
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.update_rebate
|
|
||||||
|
|
||||||
sales = Sale.where("rebate_status = 'false'")
|
|
||||||
sales.each do |sale|
|
|
||||||
if sale.customer.membership_id
|
|
||||||
response = rebat(Sale.find(sale.sale_id))
|
|
||||||
puts response.to_json
|
|
||||||
if response["status"] == true
|
|
||||||
status = sale.update_attributes(rebate_status: "true")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
def cash_payment
|
def cash_payment
|
||||||
payment_status = false
|
payment_status = false
|
||||||
@@ -276,18 +262,19 @@ class SalePayment < ApplicationRecord
|
|||||||
self.sale.sale_status = "completed"
|
self.sale.sale_status = "completed"
|
||||||
|
|
||||||
response = rebat(sObj)
|
response = rebat(sObj)
|
||||||
puts "hhh"
|
|
||||||
puts response.to_json
|
if response["status"] == true
|
||||||
puts response[:status]
|
|
||||||
if response[:status] == true
|
|
||||||
self.sale.rebate_status = 'true'
|
self.sale.rebate_status = 'true'
|
||||||
puts "truessssssssssss"
|
end
|
||||||
elsif response[:status] == false
|
if response["status"] == false
|
||||||
self.sale.rebate_status = 'false'
|
self.sale.rebate_status = 'false'
|
||||||
puts "falseeeeeeeeeeeeee"
|
end
|
||||||
else
|
|
||||||
self.sale.rebate_status =nil
|
if response[:status] == false
|
||||||
puts "nilllllllllll"
|
self.sale.rebate_status = 'false'
|
||||||
|
end
|
||||||
|
if response[:status] == "no_member"
|
||||||
|
self.sale.rebate_status = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
self.sale.save!
|
self.sale.save!
|
||||||
@@ -370,21 +357,21 @@ puts response[:status]
|
|||||||
'Accept' => 'application/json'
|
'Accept' => 'application/json'
|
||||||
}, :timeout => 10)
|
}, :timeout => 10)
|
||||||
rescue Net::OpenTimeout
|
rescue Net::OpenTimeout
|
||||||
response = { status: false , message:"connection time out" }
|
response = { "status": false , "message": "Connect To" }
|
||||||
|
|
||||||
|
|
||||||
rescue OpenURI::HTTPError
|
rescue OpenURI::HTTPError
|
||||||
response = { status: false, message: "Can't connect server"}
|
response = { "status": false, "message": "Can't connect server"}
|
||||||
|
|
||||||
rescue SocketError
|
rescue SocketError
|
||||||
response = { status: false, message: "Can't connect server"}
|
response = { "status": false, "message": "Can't connect server"}
|
||||||
|
|
||||||
end
|
end
|
||||||
return response
|
return response
|
||||||
puts response.to_json
|
puts response.to_json
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
response = { status: "no_member", message: "Not membership"}
|
response = { "status": "no_member", "message": "Not membership"}
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -289,7 +289,7 @@ class ReceiptBillPdf < Prawn::Document
|
|||||||
text "Rebate Earn", :size => self.item_font_size,:align => :left
|
text "Rebate Earn", :size => self.item_font_size,:align => :left
|
||||||
end
|
end
|
||||||
bounding_box([self.item_description_width,y_position], :width =>self.label_width) do
|
bounding_box([self.item_description_width,y_position], :width =>self.label_width) do
|
||||||
text "#{number_with_precision(res["balance"], :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right
|
text "#{number_with_precision(res["rebate"], :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -302,7 +302,7 @@ class ReceiptBillPdf < Prawn::Document
|
|||||||
text "Rebate Earn Bonus", :size => self.item_font_size,:align => :left
|
text "Rebate Earn Bonus", :size => self.item_font_size,:align => :left
|
||||||
end
|
end
|
||||||
bounding_box([self.item_description_width,y_position], :width =>self.label_width) do
|
bounding_box([self.item_description_width,y_position], :width =>self.label_width) do
|
||||||
text "#{number_with_precision(res["balance"], :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right
|
text "#{number_with_precision(res["rebate"], :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
#end Total rebate if birthday
|
#end Total rebate if birthday
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ env :PATH, ENV['PATH']
|
|||||||
set :output, 'log/whenever.log'
|
set :output, 'log/whenever.log'
|
||||||
|
|
||||||
every 30.minutes do
|
every 30.minutes do
|
||||||
runner "Sale.update_rebate"
|
runner "Customer.update_rebate"
|
||||||
end
|
end
|
||||||
|
|
||||||
every 30.minutes do
|
every 30.minutes do
|
||||||
|
|||||||
Reference in New Issue
Block a user