lib/sepa_king/transaction/credit_transfer_transaction.rb
# encoding: utf-8
module SEPA
class CreditTransferTransaction < Transaction
attr_accessor :service_level,
:creditor_address,
:category_purpose
validates_inclusion_of :service_level, :in => %w(SEPA URGP), :allow_nil => true
validates_length_of :category_purpose, within: 1..4, allow_nil: true
validate { |t| t.validate_requested_date_after(Date.today) }
def initialize(attributes = {})
super
self.service_level ||= 'SEPA' if self.currency == 'EUR'
end
def schema_compatible?(schema_name)
case schema_name
when PAIN_001_001_03
!self.service_level || (self.service_level == 'SEPA' && self.currency == 'EUR')
when PAIN_001_002_03
self.bic.present? && self.service_level == 'SEPA' && self.currency == 'EUR'
when PAIN_001_003_03
self.currency == 'EUR'
when PAIN_001_001_03_CH_02
self.currency == 'CHF'
end
end
end
end