create paymal payment for cashier app

This commit is contained in:
Thein Lin Kyaw
2022-05-11 11:52:37 +06:30
parent 0231c7e60f
commit 7598a96e60
4 changed files with 87 additions and 20 deletions

View File

@@ -22,47 +22,50 @@ class Api::PaymentsController < Api::ApiController
#create paymal payment for cashier app
def create_paymal_payment
if params[:sale_id] && params[:account_no]
sale = Sale.find_by_sale_id(params[:sale_id])
if !sale.nil?
if sale.sale_status == "new"
@sale = Sale.find_by_sale_id(params[:sale_id])
if !@sale.nil?
if @sale.sale_status == "new"
if !params[:account_no].empty?
@status, @message = send_account_paymal(sale.grand_total, params[:account_no], sale.receipt_no)
@status, @message = send_account_paymal(@sale.grand_total, params[:account_no], @sale.receipt_no)
if @status
sale_payment = SalePayment.new
status, @sale, @membership_data = sale_payment.process_payment(sale, current_login_employee, sale.grand_total, "paymal",params[:account_no])
status, @sale_payment, @membership_data = sale_payment.process_payment(@sale, current_login_employee, @sale.grand_total, "paymal",params[:account_no])
if status == true && @membership_data["status"] == true
sale_payment = SalePayment.new
status = sale_payment.process_payment(sale, current_login_employee, 0, "cash")
status = sale_payment.process_payment(@sale, current_login_employee, 0, "cash")
#card_balance amount for Paymal payment
card_balance_amount, transaction_ref = SaleAudit.getCardBalanceAmount(params[:sale_id])
render json: JSON.generate({:status => true, :balance_amount => card_balance_amount,:receipt_no => sale.receipt_no, :message => "Payment successful."})
@status = true
@card_balance_amount = card_balance_amount
@transaction_ref = transaction_ref
@message = "Payment successful."
else
@status = false
if @membership_data
if @membership_data["card_balance_amount"] != "null"
render json: JSON.generate({:status => false, :balance_amount => @membership_data["card_balance_amount"], :error_message => @membership_data["message"]})
else
render json: JSON.generate({:status => false, :error_message => @membership_data["message"]})
end
@card_balance_amount = @membership_data["card_balance_amount"]
@message = @membership_data["message"]
else
render json: JSON.generate({:status => false, :error_message => "Payment failed!"})
@message = "Payment failed!"
end
end
else
render json: JSON.generate({:status => false, :error_message => @message})
end
else
render json: JSON.generate({:status => false, :error_message => "Card No is required!"})
@status = false
@message = "Card No is required!"
end
else
render json: JSON.generate({:status => false, :error_message => "Already paid for '#{params[:sale_id]}'!"})
@status = false
@message = "Already paid for '#{params[:sale_id]}'!"
end
else
render json: JSON.generate({:status => false, :error_message => "There is no sale for '#{params[:sale_id]}'!"})
@status = false
@message = "There is no sale for '#{params[:sale_id]}'!"
end
else
render json: JSON.generate({:status => false, :error_message => "Parameters missing! #{params[:sale_id]} #{params[:account_no]}"})
@status = false
@message = "Parameters missing! #{params[:sale_id]} #{params[:account_no]}"
end
end