Sha256: 4b19bbcaf4e5c5e2cbc4608b8675a23f115521981a25ad5fa832b1d8f1ee9cec
Contents?: true
Size: 1.77 KB
Versions: 4
Compression:
Stored size: 1.77 KB
Contents
module RockRMS class Client module Donation def list_donations(options = {}) res = get(transaction_path, options) RockRMS::Donation.format(res) end def find_donations_by_giving_id(id, raw = false) res = get("FinancialTransactions/GetByGivingId/#{id}?$expand=TransactionDetails") raw ? res : RockRMS::Donation.format(res) end def find_donation(id) res = get(transaction_path(id)) RockRMS::Donation.format(res) end def create_donation( authorized_person_id:, batch_id:, date:, funds:, payment_type:, source_type_id: 10, transaction_code: nil ) options = { 'AuthorizedPersonAliasId' => authorized_person_id, 'BatchId' => batch_id, 'FinancialPaymentDetailId' => payment_type, 'TransactionCode' => transaction_code, 'TransactionDateTime' => date, 'TransactionDetails' => translate_funds(funds), 'TransactionTypeValueId' => 53, # contribution, registration 'SourceTypeValueId' => source_type_id, # website, kiosk, mobile app } post(transaction_path, options) end def update_donation(id, batch_id:) options = { 'BatchId' => batch_id } patch(transaction_path(id), options) end def delete_donation(id) delete(transaction_path(id)) end private def translate_funds(funds) funds.map do |fund| { 'Amount' => fund[:amount], 'AccountId' => fund[:fund_id] } end end def transaction_path(id = nil) id ? "FinancialTransactions/#{id}" : 'FinancialTransactions' end end end end
Version data entries
4 entries across 4 versions & 1 rubygems