Sha256: f3c8ca1561b006bad7df34d25e9a7fd0bc4a04e54627dc476350609844d36dbb
Contents?: true
Size: 1.33 KB
Versions: 2
Compression:
Stored size: 1.33 KB
Contents
module RockRMS class Client module Refund PATH = 'FinancialTransactionRefunds'.freeze def create_refund( batch_id:, date:, reason_id:, transaction_id:, transaction_code: nil ) old_transaction = list_transactions( '$expand' => 'TransactionDetails', '$filter' => "Id eq #{transaction_id}" ).first params = { 'OriginalTransactionId' => transaction_id, 'RefundReasonValueId' => reason_id, 'FinancialTransaction' => { 'AuthorizedPersonAliasId' => old_transaction[:person_id], 'BatchId' => batch_id, 'FinancialPaymentDetailId' => old_transaction[:payment_detail_id], 'TransactionCode' => transaction_code, 'TransactionDateTime' => date, 'TransactionDetails' => translate_negative(old_transaction[:details]), 'TransactionTypeValueId' => old_transaction[:transaction_type_id] } } post(refund_path, params) end private def translate_negative(details) details.map do |dt| { 'Amount' => -dt[:amount], 'AccountId' => dt[:fund_id] } end end def refund_path(id = nil) id ? "#{PATH}/#{id}" : PATH end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rock_rms-4.2.3 | lib/rock_rms/resources/refund.rb |
rock_rms-4.2.2 | lib/rock_rms/resources/refund.rb |