class Sap::Payment
Public Class Methods
new(source)
click to toggle source
对象初始化方法(初始化来源) @note 对象初始化方法(初始化来源) @param source [string]
# File lib/resource/sap/payment.rb, line 9 def initialize(source) @source = source end
Public Instance Methods
convert_to_sap_payment(params)
click to toggle source
# File lib/resource/sap/payment.rb, line 64 def convert_to_sap_payment(params) sap_payment = yhash # 汇率 sap_payment.exchangeRate = 1 # 顾客信息 sap_payment.customer = yhash sap_payment.customer.id = params[:customer_id] #暂时还无法改,需要把客户信息也同步到sap # 联系人信息 # sap_payment.contactPerson = yhash # sap_payment.contactPerson.id = '' # 参考编号 sap_payment.referenceNumber = nil # 订单的时间 sap_payment.postingTime = params[:order].try(:created_at) # 付款评价 sap_payment.remark = nil # 货币单位 sap_payment.currency = yhash # sap_payment.currency.code = params[:order][:currency][:code] sap_payment.currency.code = convert_price_unit(params[:order]) # sap_payment.currency.isoCode = params[:order][:currency][:isoCode] # 收付款行 sap_payment.paymentLines = [ { transactionDocument: { id: params[:invoice][:id], type: 'Invoice' # 必须是Invoice, CreditMemo, Prepayment }, appliedAmount: { amount: params[:invoice][:grossTotal][:amount] # 订单总金额 } } ] # 付款方式行 sap_payment.paymentMethodLines = [] cash_payment_method_line = yhash cash_payment_method_line.paymentMethod = yhash cash_payment_method_line.paymentMethod.id = 1 cash_payment_method_line.paymentMethod.name = '现金' cash_payment_method_line.paymentMethod.type = 'CASH' cash_payment_method_line.amount = yhash cash_payment_method_line.amount.amount = params[:order][:pay_cash_total_price] sap_payment.paymentMethodLines << cash_payment_method_line # 需要在sap平台上添加积分付款方式,不然这里是按照paymentMethod的id来取付款方式的 if !params[:order][:point_pay_total_price].zero? point_payment_method_line = yhash point_payment_method_line.paymentMethod = yhash point_payment_method_line.paymentMethod.id = 2 point_payment_method_line.paymentMethod.name = '积分' point_payment_method_line.paymentMethod.type = 'OTHERS' point_payment_method_line.amount = yhash point_payment_method_line.amount.amount = params[:order][:point_pay_total_price] sap_payment.paymentMethodLines << point_payment_method_line end sap_payment end
find(id)
click to toggle source
通过接口获得单个数据 @note 通过接口获得单个数据 @param id [Integer] 数据id
# File lib/resource/sap/payment.rb, line 24 def find(id) get(query(id)) end
list()
click to toggle source
通过接口获得一堆数据 @note 通过接口获得一堆数据 @param source [string] 来源 @param request_name
[string] 请求资源名
# File lib/resource/sap/payment.rb, line 17 def list get(query) end
query(params = {}, id = {})
click to toggle source
# File lib/resource/sap/payment.rb, line 40 def query(params = {}, id = {}) # Rails.logger.info params[:user_id] request_names = if params.class == Fixnum "#{request_name}/#{params}?expand=*&" elsif id.class == Fixnum "#{request_name}/#{id}?expand=*&" else "#{request_name}?expand=*&" end post_params = { source: @source, request_name: request_names } # Rails.logger.info "params是#{params}" # Rails.logger.info "id是#{id}" if params.class != Fixnum && params.present? post_params.merge!(payment: convert_to_sap_payment(params)) # Rails.logger.info "post_params#{post_params}" end post_params.merge(id: id) if id.class == Fixnum # Rails.logger.info "当前参数#{post_params}" post_params end
request_name()
click to toggle source
获取请求路径的请求名 @note 获取请求路径的请求名
# File lib/resource/sap/payment.rb, line 36 def request_name 'Payments' end
upload(payment_order)
click to toggle source
将收付款单数据从云店家上传到sap @param payment_order [Order] 订单
# File lib/resource/sap/payment.rb, line 30 def upload(payment_order) payment_id = post(query(payment_order)) end