control for member create and member discount

This commit is contained in:
Yan
2017-07-27 18:53:41 +06:30
parent 0408c6d498
commit bf3e30c70f
7 changed files with 125 additions and 57 deletions

View File

@@ -81,7 +81,7 @@ class Crm::CustomersController < BaseCrmController
nrc = customer_params[:nrc_no]
card_no = customer_params[:card_no]
paypar_account_no = customer_params[:paypar_account_no]
member_group_id = params[:member_group_id]
member_group_id = params[:member_group_id]
if member_group_id.present?
membership = MembershipSetting.find_by_membership_type("paypar_url")
@@ -90,13 +90,23 @@ class Crm::CustomersController < BaseCrmController
auth_token = memberaction.auth_token.to_s
url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
member_params = { name: name,phone: phone,email: email,
dob: dob,address: address,nrc:nrc,card_no:card_no,
member_group_id: member_group_id,
merchant_uid:merchant_uid,auth_token:auth_token}.to_json
# Check for paypar account exists
if paypar_account_no != nil || paypar_account_no != ''
member_params = { name: name,phone: phone,email: email,
dob: dob,address: address,nrc:nrc,card_no:card_no,
paypar_account_no: paypar_account_no,
member_group_id: member_group_id,
merchant_uid:merchant_uid,auth_token:auth_token}.to_json
end
begin
response = HTTParty.post(url,
:body => {name: name,phone: phone,email: email,
dob: dob,address: address,nrc:nrc,card_no:card_no,
paypar_account_no: paypar_account_no,
member_group_id: member_group_id,
merchant_uid:merchant_uid,auth_token:auth_token}.to_json,
:body => member_params,
:headers => {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
@@ -137,6 +147,12 @@ class Crm::CustomersController < BaseCrmController
status = customer.update_attributes(membership_type:member_group_id)
end
# When paypar account no not exist in paypar
if response["message"] == "Account has not exist."
customer.destroy
format.html { redirect_to '/origami/'+params[:sale_id]+'/customers', notice: 'Customer cannot created.' + response["message"]}
end
if params[:sale_id]
format.html { redirect_to '/origami/'+params[:sale_id]+'/customers', notice: 'Customer was successfully created.' + response["message"]}
else
@@ -181,23 +197,32 @@ end
card_no = customer_params[:card_no]
paypar_account_no = customer_params[:paypar_account_no]
id = @crm_customer.membership_id
member_group_id = params[:member_group_id]
member_group_id = params[:member_group_id]
if id.nil? && !member_group_id.nil?
membership = MembershipSetting.find_by_membership_type("paypar_url")
memberaction = MembershipAction.find_by_membership_type("create_membership_customer")
merchant_uid = memberaction.merchant_account_id.to_s
auth_token = memberaction.auth_token.to_s
url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
member_params = { name: name,phone: phone,email: email,
dob: dob,address: address,nrc:nrc,card_no:card_no,
member_group_id: member_group_id,
merchant_uid:merchant_uid,auth_token:auth_token}.to_json
# Check for paypar account exists
if paypar_account_no != nil || paypar_account_no != ''
member_params = { name: name,phone: phone,email: email,
dob: dob,address: address,nrc:nrc,card_no:card_no,
paypar_account_no: paypar_account_no,
member_group_id: member_group_id,
merchant_uid:merchant_uid,auth_token:auth_token}.to_json
end
begin
response = HTTParty.post(url,
:body => { name: name,phone: phone,email: email,
dob: dob,address: address,nrc:nrc,
paypar_account_no: paypar_account_no,
card_no:card_no,member_group_id: member_group_id,
merchant_uid:merchant_uid,auth_token:auth_token}.to_json,
:body => member_params,
:headers => {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
@@ -230,20 +255,30 @@ end
format.html { redirect_to crm_customers_path, notice: response["error"] }
end
else
membership = MembershipSetting.find_by_membership_type("paypar_url")
memberaction = MembershipAction.find_by_membership_type("update_membership_customer")
merchant_uid = memberaction.merchant_account_id.to_s
auth_token = memberaction.auth_token.to_s
url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
member_params = { name: name,phone: phone,email: email,
dob: dob,address: address,nrc:nrc,card_no:card_no,
member_group_id: member_group_id,
merchant_uid:merchant_uid,auth_token:auth_token}.to_json
# Check for paypar account exists
if paypar_account_no != nil || paypar_account_no != ''
member_params = { name: name,phone: phone,email: email,
dob: dob,address: address,nrc:nrc,card_no:card_no,
paypar_account_no: paypar_account_no,
member_group_id: member_group_id,
merchant_uid:merchant_uid,auth_token:auth_token}.to_json
end
begin
response = HTTParty.post(url,
:body => {name: name,phone: phone,email: email,
dob: dob,address: address,nrc:nrc,card_no:card_no,
paypar_account_no: paypar_account_no,
id: id,member_group_id:member_group_id,merchant_uid:merchant_uid,auth_token:auth_token}.to_json,
:body => member_params,
:headers => {
'Content-Type' => 'application/json',
'Accept' => 'application/json'

View File

@@ -8,6 +8,17 @@ class Origami::CustomersController < BaseOrigamiController
def show
end
def get_customer
filter = params[:filter]
if filter.nil?
@crm_customers = Customer.order("customer_id").page(params[:page])
#@products = Product.order("name").page(params[:page]).per(5)
else
@crm_customers = Customer.search(filter)
end
render :json => @crm_customers.to_json
end
def add_customer
@sale_id = params[:sale_id]
@@ -18,9 +29,7 @@ class Origami::CustomersController < BaseOrigamiController
@booking_order = BookingOrder.find_by_order_id(@sale_id)
@booking = Booking.find(@booking_order.booking_id)
@dining_facility = DiningFacility.find(@booking.dining_facility_id)
end
filter = params[:filter]
end
filter = params[:filter]
@@ -53,12 +62,12 @@ class Origami::CustomersController < BaseOrigamiController
customer_id = params[:customer_id]
# Check and find with card no
if(!customer_id.include? "CUS")
customer = Customer.find_by_paypar_account_no(customer_id)
if(customer != nil)
customer_id = customer.customer_id
end
end
# if(!customer_id.include? "CUS")
# customer = Customer.find_by_paypar_account_no(customer_id)
# if(customer != nil)
# customer_id = customer.customer_id
# end
# end
if(id == "SAL")
sale = Sale.find(params[:sale_id])

View File

@@ -155,31 +155,35 @@ class Origami::DiscountsController < BaseOrigamiController
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 => { account_no: nil,
generic_customer_id:generic_customer_id ,
campaign_type_id: campaign_type_id,
receipt_no: receipt_no,
merchant_uid:merchant_uid,
campaign_method:arr.to_json,
total_sale_transaction_amount: sale.grand_total,
auth_token:auth_token}.to_json,
:headers => {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}, :timeout => 10)
rescue HTTParty::Error
response = {:status=> false, :message => "Can't open membership server " }
# Check for items for Paypar Cloud
if arr.length > 0
begin
response = HTTParty.post(url,
:body => { account_no: nil,
generic_customer_id:generic_customer_id ,
campaign_type_id: campaign_type_id,
receipt_no: receipt_no,
merchant_uid:merchant_uid,
campaign_method:arr.to_json,
total_sale_transaction_amount: sale.grand_total,
auth_token:auth_token}.to_json,
:headers => {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}, :timeout => 10)
rescue HTTParty::Error
response = {:status=> false, :message => "Can't open membership server " }
rescue Net::OpenTimeout
response = {:status=> false, :message => "Can't open membership server " }
rescue OpenURI::HTTPError
response = {:status=> false, :message => "Can't open membership server " }
rescue Net::OpenTimeout
response = {:status=> false, :message => "Can't open membership server " }
rescue OpenURI::HTTPError
response = {:status=> false, :message => "Can't open membership server " }
rescue SocketError
response = {:status=> false, :message => "Can't open membership server " }
rescue SocketError
response = {:status=> false, :message => "Can't open membership server " }
end
else
response = {:status=> false, :message => "You have no selected discount item" }
end
table_id = sale.bookings[0].dining_facility_id