payment api
This commit is contained in:
@@ -8,11 +8,82 @@ class Api::PaymentsController < ActionController::API
|
||||
# Status - [True/False] | Invoice | error_message (* when status false)
|
||||
def create
|
||||
@invoice = Sale.find(params[:invoice_id])
|
||||
|
||||
if (@invoice)
|
||||
handle_payment(@invoice)
|
||||
end
|
||||
end
|
||||
|
||||
# Update of payment status from the external party
|
||||
# Invoice No | Payment ID | External params [] (* third party references and status)
|
||||
#
|
||||
def update
|
||||
|
||||
end
|
||||
|
||||
private
|
||||
def handle_payment(sale_payment)
|
||||
|
||||
payment_method = params[:payment_method]
|
||||
sale_payment = SalePayment.new
|
||||
|
||||
#:received_amount, :card_payment_reference, :vochure_no, :giftcard_no,
|
||||
#:customer_id, :external_payment_status
|
||||
switch (payment_method)
|
||||
case "cash"
|
||||
sale_payment.payment_method = "cash"
|
||||
sale_payment.received_amount = params[:amount]
|
||||
@status, @invoice = sale_payment.process_payment(sale_payment, current_login_employee.name)
|
||||
case "creditnote"
|
||||
sale_payment.payment_method = "creditnote"
|
||||
sale_payment.received_amount = params[:amount]
|
||||
sale_payment.customer_id = params[:customer_id]
|
||||
|
||||
@status, @invoice = sale_payment.process_payment(sale_payment, current_login_employee.name)
|
||||
case "visa"
|
||||
sale_payment.payment_method = "visa"
|
||||
sale_payment.received_amount = params[:amount]
|
||||
sale_payment.payment_reference = params[:payment_reference]
|
||||
|
||||
@status, @invoice = sale_payment.process_payment(sale_payment, current_login_employee.name)
|
||||
case "master"
|
||||
sale_payment.payment_method = "master"
|
||||
sale_payment.received_amount = params[:amount]
|
||||
sale_payment.payment_reference = params[:payment_reference]
|
||||
@status, @invoice = sale_payment.process_payment(sale_payment, current_login_employee.name)
|
||||
case "jcb"
|
||||
sale_payment.payment_method = "jcb"
|
||||
sale_payment.received_amount = params[:amount]
|
||||
sale_payment.payment_reference = params[:payment_reference]
|
||||
@status, @invoice = sale_payment.process_payment(sale_payment, current_login_employee.name)
|
||||
case "mpu"
|
||||
sale_payment.payment_method = "mpu"
|
||||
sale_payment.received_amount = params[:amount]
|
||||
sale_payment.payment_reference = params[:payment_reference]
|
||||
@status, @invoice = sale_payment.process_payment(sale_payment, current_login_employee.name)
|
||||
case "unionpay"
|
||||
sale_payment.payment_method = "unionpay"
|
||||
sale_payment.received_amount = params[:amount]
|
||||
sale_payment.payment_reference = params[:payment_reference]
|
||||
@status, @invoice = sale_payment.process_payment(sale_payment, current_login_employee.name)
|
||||
case "vochure"
|
||||
sale_payment.payment_method = "vochure"
|
||||
sale_payment.received_amount = params[:amount]
|
||||
sale_payment.customer_id = params[:customer_id]
|
||||
sale_payment.payment_reference = params[:vochure_no]
|
||||
@status, @invoice = sale_payment.process_payment(sale_payment, current_login_employee.name)
|
||||
case "giftcard"
|
||||
sale_payment.payment_method = "giftcard"
|
||||
sale_payment.received_amount = params[:amount]
|
||||
sale_payment.customer_id = params[:customer_id]
|
||||
sale_payment.payment_reference = params[:giftcard_no]
|
||||
@status, @invoice = sale_payment.process_payment(sale_payment, current_login_employee.name)
|
||||
case "paypar"
|
||||
sale_payment.payment_method = "paypar"
|
||||
sale_payment.received_amount = params[:amount]
|
||||
sale_payment.payment_reference = params[:payment_reference]
|
||||
#TODO: implement paypar implementation
|
||||
@status, @invoice = sale_payment.process_payment(sale_payment, current_login_employee.name)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user