6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# File 'app/services/spree_cm_commissioner/ticket_transfers/fee_calculator.rb', line 6
def call(from_guest:, price:, currency:)
price = price.to_d
rule = resolve_rule(from_guest: from_guest, currency: currency)
return success(rule: nil, price: price, platform_fee: 0.to_d, seller_net: price, total: price) if rule.nil?
platform_fee = price.zero? ? 0.to_d : compute_fee(rule, price)
seller_net = [price - platform_fee, 0.to_d].max
total = price
success(rule: rule, price: price, platform_fee: platform_fee, seller_net: seller_net, total: total)
end
|