class WireClient::CreditTransfer
Private Instance Methods
build_payment_information(builder)
click to toggle source
# File lib/wire_client/messages/credit_transfer.rb, line 24 def build_payment_information(builder) # Build a PmtInf block for every group of transactions grouped_transactions.each do |group, transactions| # All transactions with the same requested_date are placed into the # same PmtInf block builder.PmtInf do builder.PmtInfId(payment_information_identification(group)) builder.PmtMtd('TRF') builder.BtchBookg(group[:batch_booking]) builder.NbOfTxs(transactions.length) builder.CtrlSum('%.2f' % amount_total(transactions)) builder.PmtTpInf do builder.InstrPrty(group[:service_priority]) builder.SvcLvl do builder.Cd(group[:service_level]) end end builder.ReqdExctnDt(group[:requested_date].iso8601) builder.Dbtr do builder.Nm(account.name) builder.PstlAdr do entity_address(builder, account) end end builder.DbtrAcct do account_id(builder, account) end builder.DbtrAgt do builder.FinInstnId do entity_agent_id(builder, account) builder.PstlAdr do builder.Ctry(account.country) end end end if account.charge_bearer builder.ChrgBr(account.charge_bearer) end transactions.each do |transaction| build_transaction(builder, transaction) end end end end
build_transaction(builder, transaction)
click to toggle source
# File lib/wire_client/messages/credit_transfer.rb, line 71 def build_transaction(builder, transaction) builder.CdtTrfTxInf do builder.PmtId do if transaction.instruction.present? builder.InstrId(transaction.instruction) end builder.EndToEndId(transaction.reference) end builder.Amt do builder.InstdAmt( '%.2f' % transaction.amount, Ccy: transaction.currency ) end builder.CdtrAgt do builder.FinInstnId do entity_agent_id(builder, transaction) builder.Nm(transaction.agent_name) builder.PstlAdr do builder.Ctry(transaction.country) end end end builder.Cdtr do builder.Nm(transaction.name) builder.PstlAdr do entity_address(builder, transaction) end end builder.CdtrAcct do transaction_account_id(builder, transaction) end if transaction.remittance_information builder.RmtInf do builder.Ustrd(transaction.remittance_information) end end end end
transaction_group(transaction)
click to toggle source
Find groups of transactions which share the same values for selected attributes
# File lib/wire_client/messages/credit_transfer.rb, line 15 def transaction_group(transaction) { requested_date: transaction.requested_date, batch_booking: transaction.batch_booking, service_priority: transaction.service_priority, service_level: transaction.service_level } end