Class: Papapi::Merchant::Commission

Inherits:
Object
  • Object
show all
Defined in:
lib/papapi/merchant_commision.rb

Instance Method Summary collapse

Constructor Details

#initialize(session) ⇒ Commission

Returns a new instance of Commission.



8
9
10
11
# File 'lib/papapi/merchant_commision.rb', line 8

def initialize(session)
  @session = session
  raise "Merchant session is required" if !@session.is_merchant?
end

Instance Method Details

#by_orders(order_ids, affiliate_id = nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/papapi/merchant_commision.rb', line 13

def by_orders(order_ids,affiliate_id = nil)
  requests = order_ids.map do |order_id|
    r = GridRequest.new("Pap_Merchants_Transaction_TransactionsGrid", "getRows", @session)
    r.set_param("isInitRequest","Y")
    r.set_param("filterType","transaction_filter")
    r.add_filter("orderid","E",order_id)
    r.add_filter("userid","E",affiliate_id) if affiliate_id
    r.add_column("id")
    r.add_column("userid")
    r.add_column("commission")
    r.add_column("orderid")
    r
  end

  commissions = Hash[order_ids.map {|i| [i.to_s, 0.0]}]
  responses = MultiRequest.new(requests).send
  responses.each do |resp|
    resp.each do |row|
      commissions[row['orderid']] += row['commission'].to_f
    end
  end
  commissions
end

#create(affiliate_id, campaign_id, commission, commtypeid, payoutstatus = '', fields = {}) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/papapi/merchant_commision.rb', line 37

def create(affiliate_id, campaign_id, commission, commtypeid, payoutstatus = '', fields = {})
  r = FormRequest.new('Pap_Merchants_Transaction_TransactionsForm', 'add', @session)
  f = {
      :userid => affiliate_id,
      :campaignid => campaign_id,
      :commtypeid => commtypeid,
      :commission => commission,
      :payoutstatus => payoutstatus,
      :multiTier => "N"
  }.merge(fields)
  r.set_fields(f)
  r.send
end

#create_raw(affiliate_id, campaign_id, commtypeid, multitier, fields = {}) ⇒ Object

commtypeid Can be found in Merchant panel: Campaigns -> Campaign manager -> edit campaign (pencil icon) -> Commission settings



52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/papapi/merchant_commision.rb', line 52

def create_raw(affiliate_id, campaign_id, commtypeid, multitier, fields = {})
  r = FormRequest.new('Pap_Merchants_Transaction_TransactionsForm', 'add', @session)
  f = {
    :userid => affiliate_id,
    :campaignid => campaign_id,
    :commtypeid => commtypeid,
    :multiTier => multitier,
    :transid => nil,
    :Id => nil
  }.merge(fields)
  r.set_fields(f)
  r.send
end

#remove(commission_ids) ⇒ Object



66
67
68
69
70
71
# File 'lib/papapi/merchant_commision.rb', line 66

def remove(commission_ids)
  #{"C":"Pap_Merchants_Transaction_TransactionsForm", "M":"deleteRows", "ids":["00a47a09"]
  r = Request.new('Pap_Merchants_Transaction_TransactionsForm', 'deleteRows', @session)
  r.set_param('ids', commission_ids)
  r.send
end