131 lines
4.2 KiB
Ruby
Executable File
131 lines
4.2 KiB
Ruby
Executable File
class Origami::OthersPaymentsController < BaseOrigamiController
|
|
def index
|
|
@membership_rebate_balance = 0
|
|
@sale_id = params[:sale_id]
|
|
@cashier_type = params[:type]
|
|
path = request.fullpath
|
|
if path.include? ("credit_payment")
|
|
@payment_method_setting = PaymentMethodSetting.where("is_active='1'")
|
|
else
|
|
@payment_method_setting = PaymentMethodSetting.all
|
|
end
|
|
|
|
@rebate = MembershipSetting.find_by_rebate(1)
|
|
@sale_data = Sale.find_by_sale_id(@sale_id)
|
|
# @sale_id = params[:sale_id]
|
|
# sale_data = Sale.find_by_sale_id(@sale_id)
|
|
|
|
# if sale_data.customer_id
|
|
# customer_data= Customer.find_by_customer_id(sale_data.customer_id)
|
|
# @membership_id = customer_data.membership_id
|
|
# if !@membership_id.nil?
|
|
# membership_setting = MembershipSetting.find_by_membership_type("paypar_url")
|
|
# membership_data = SalePayment.get_paypar_account(membership_setting.gateway_url,membership_setting.auth_token,@membership_id)
|
|
# if membership_data["status"]==true
|
|
# membership_account_data = membership_data["data"];
|
|
# membership_account_data.each do |acc_data|
|
|
# if acc_data["accountable_type"] == "REBATEACCOUNT"
|
|
# @membership_rebate_balance=acc_data["balance"]
|
|
# else
|
|
# @membership_rebate_balance = 0
|
|
# end
|
|
# end
|
|
# else
|
|
# @membership_rebate_balance = 0
|
|
# end
|
|
# end
|
|
# else
|
|
|
|
# end
|
|
end
|
|
|
|
def new
|
|
@sale_id = params[:sale_id]
|
|
@cashier_type = params[:type]
|
|
payment_methods = PaymentMethodSetting.pluck(:payment_method)
|
|
if @payment_method = payment_methods.find { |m| m.parameterize == params[:method] }
|
|
path = request.fullpath
|
|
# limit master_amount
|
|
if path.include? ("credit_payment")
|
|
sale_data = Sale.get_sale_data_for_other_payment_credit(@sale_id)
|
|
else
|
|
sale_data = Sale.find_by_sale_id(@sale_id)
|
|
end
|
|
total = 0
|
|
@shop = Shop.current_shop
|
|
@paid_amount = 0
|
|
@can_paid = 0
|
|
@rounding_adj = 0
|
|
@member_discount = 0
|
|
@sub_total = 0
|
|
@membership_id = nil
|
|
@receipt_no = nil
|
|
if !sale_data.nil?
|
|
total = sale_data.grand_total
|
|
|
|
others = 0
|
|
|
|
if @shop.is_rounding_adj
|
|
new_total = Sale.get_rounding_adjustment(sale_data.grand_total)
|
|
else
|
|
new_total = sale_data.grand_total
|
|
end
|
|
|
|
@rounding_adj = new_total-sale_data.grand_total
|
|
|
|
if path.include? ("credit_payment")
|
|
sale_payment_data = SalePayment.get_sale_payment_for_credit(sale_data)
|
|
else
|
|
sale_payment_data = sale_data.sale_payments
|
|
end
|
|
|
|
sale_payment_data.each do |sale_payment|
|
|
if sale_payment.payment_method == @payment_method.parameterize
|
|
@paid_amount = @paid_amount + sale_payment.payment_amount
|
|
else
|
|
others = others + sale_payment.payment_amount
|
|
end
|
|
end
|
|
@can_paid = total - @paid_amount - others
|
|
@member_discount = MembershipSetting.find_by_discount(1)
|
|
@sub_total = sale_data.total_amount
|
|
@membership_id = sale_data.customer.membership_id
|
|
#for bank integration
|
|
@receipt_no = sale_data.receipt_no
|
|
end
|
|
bank_integration = Lookup.collection_of('bank_integration')
|
|
@bank_integration = 0
|
|
if !bank_integration[0].nil?
|
|
@bank_integration = bank_integration[0][1]
|
|
end
|
|
else
|
|
if path.include? ("credit_payment")
|
|
redirect_to "sale/#{@sale_id}/#{@cashier_type}/payment/others_payment"
|
|
else
|
|
redirect_to "sale/#{@sale_id}/#{@cashier_type}/credit_payment/others_payment"
|
|
end
|
|
end
|
|
end
|
|
|
|
def create
|
|
cash = params[:amount]
|
|
sale_id = params[:sale_id]
|
|
ref_no = params[:ref_no]
|
|
payment_method = params[:method]
|
|
if PaymentMethodSetting.pluck(:payment_method).map(&:parameterize).include? payment_method
|
|
if saleObj = Sale.find(sale_id)
|
|
shop_details = Shop.current_shop
|
|
|
|
path = request.fullpath
|
|
payment_for = false
|
|
if path.include? ("credit_payment")
|
|
payment_for = true
|
|
end
|
|
sale_payment = SalePayment.new
|
|
@status, @sale = sale_payment.process_payment(saleObj, current_user, cash, payment_method, ref_no, payment_for)
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|