create paymal payment for cashier app
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ class SalePayment < ApplicationRecord
|
||||
remark = "Payment failed - Grand Total [#{invoice.grand_total}] | Due [#{amount_due}] | Paid [#{invoice.amount_received}]"
|
||||
sale_audit = SaleAudit.record_payment(invoice.id, remark,action_by.name)
|
||||
# return false, "Payment failed"
|
||||
return false, self.save,membership_data
|
||||
return false, self.save, membership_data
|
||||
end
|
||||
else
|
||||
sale_update_payment_status(0)
|
||||
|
||||
@@ -35,6 +35,10 @@ class SaleTax < ApplicationRecord
|
||||
.group("sale_taxes.tax_name")
|
||||
end
|
||||
|
||||
def display_name
|
||||
"#{self.tax_name} (#{'Incl. ' if self.tax_type == 'inclusive'}#{self.tax_rate}%"
|
||||
end
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
if self.sale_tax_id.nil?
|
||||
|
||||
60
app/views/api/payments/create_paymal_payment.json.jbuilder
Normal file
60
app/views/api/payments/create_paymal_payment.json.jbuilder
Normal file
@@ -0,0 +1,60 @@
|
||||
#show invoice number and stuff
|
||||
json.status @status
|
||||
json.message @message
|
||||
|
||||
json.data do
|
||||
if @status
|
||||
json.sale_id @sale.sale_id
|
||||
json.sale_status @sale.sale_status
|
||||
|
||||
json.booking @sale.booking.booking_id
|
||||
|
||||
json.shop do
|
||||
json.name current_shop.name
|
||||
json.address current_shop.address
|
||||
json.phone_no current_shop.phone_no
|
||||
end
|
||||
|
||||
order = @sale.orders.first
|
||||
|
||||
json.order do
|
||||
json.order_no order.order_id
|
||||
json.order_by order.waiters
|
||||
json.order_date order.date
|
||||
end
|
||||
|
||||
json.cashier_name @sale.cashier_name
|
||||
json.receipt_no @sale.receipt_no
|
||||
json.receipt_date @sale.receipt_date
|
||||
json.sub_total @sale.total_amount
|
||||
json.discount_type @sale.discount_type
|
||||
json.total_discount @sale.total_discount
|
||||
|
||||
json.sale_taxes @sale.sale_taxes do |sale_tax|
|
||||
json.display_name sale_tax.display_name
|
||||
json.tax_amount sale_tax.tax_payable_amount
|
||||
end
|
||||
|
||||
json.grand_total @sale.grand_total
|
||||
|
||||
json.sale_items @sale.sale_items do |sale_item|
|
||||
json.sale_item_id sale_item.sale_item_id
|
||||
json.sale_id sale_item.sale_id
|
||||
json.product_code sale_item.product_code
|
||||
json.item_instance_code sale_item.item_instance_code
|
||||
json.product_name sale_item.product_name
|
||||
json.product_alt_name sale_item.product_alt_name
|
||||
json.account_id sale_item.account_id
|
||||
json.status sale_item.status
|
||||
json.remark sale_item.remark
|
||||
json.qty sale_item.qty
|
||||
json.unit_price sale_item.unit_price
|
||||
json.taxable_price sale_item.taxable_price
|
||||
json.price sale_item.price
|
||||
json.is_taxable sale_item.is_taxable
|
||||
end
|
||||
|
||||
json.customer_account params[:account_no]
|
||||
json.card_balance @card_balance_amount
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user