add dinga payment and new payment type in report

This commit is contained in:
phyusin
2018-04-09 09:40:08 +06:30
parent 785fbe20ed
commit 2e19d34ced
19 changed files with 543 additions and 122 deletions

View File

@@ -41,6 +41,8 @@ class SalePayment < ApplicationRecord
payment_status = external_terminal_card_payment(:mpu)
when "unionpay"
payment_status = external_terminal_card_payment(:unionpay)
when "alipay"
payment_status = external_terminal_card_payment(:alipay)
when "vochure"
payment_status = vochure_payment
when "giftcard"
@@ -53,8 +55,8 @@ class SalePayment < ApplicationRecord
payment_status = paymal_payment
when "JunctionPay"
payment_status = junction_pay_payment
when "alipay"
payment_status = external_terminal_card_payment(:alipay)
when "dinga"
payment_status = dinga_payment
else
puts "it was something else"
end
@@ -402,6 +404,35 @@ class SalePayment < ApplicationRecord
return payment_status
end
def dinga_payment
payment_status = false
#Next time - validate if the vochure number is valid - within
customer_data = Customer.find_by_customer_id(self.sale.customer_id)
membership_setting = MembershipSetting.find_by_membership_type("paypar_url")
membership_data = SalePayment.create_payment(membership_setting.gateway_url,membership_setting.auth_token,customer_data.membership_id,self.received_amount,self.sale.sale_id)
#record an payment in sale-audit
remark = "#{membership_data} Dinga Payment- for Customer #{self.sale.customer_id} Sale Id [#{self.sale.sale_id}]| pay amount -> #{self.received_amount} "
sale_audit = SaleAudit.record_paymal(self.sale.sale_id, remark, 1)
if membership_data["status"]==true
self.payment_method = "dinga"
self.payment_amount = self.received_amount
self.payment_reference = self.voucher_no
self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f
self.payment_status = "pending"
payment_method = self.save!
SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid')
sale_update_payment_status(self.received_amount.to_f)
else
sale_update_payment_status(0)
end
return payment_status
end
def sale_update_payment_status(paid_amount,check_foc = false)
#update amount_outstanding
self.sale.amount_received = self.sale.amount_received.to_f + paid_amount.to_f