Class: SPS::DirectDebitTransaction
- Inherits:
-
Transaction
- Object
- Transaction
- SPS::DirectDebitTransaction
- Defined in:
- lib/sps_king/transaction/direct_debit_transaction.rb
Constant Summary collapse
- SERVICE_LEVELS =
%w(CHDD CHTA)
- LOCAL_INSTRUMENTS_FOR_SERVICE_LEVELS =
{ 'CHDD' => %w(DDCOR1 DDB2B), 'CHTA' => %w(LSV+ BDD) }
Constants inherited from Transaction
Transaction::DEFAULT_REQUESTED_DATE
Instance Attribute Summary collapse
-
#creditor_account ⇒ Object
Returns the value of attribute creditor_account.
-
#debtor_address ⇒ Object
Returns the value of attribute debtor_address.
-
#local_instrument ⇒ Object
Returns the value of attribute local_instrument.
-
#service_level ⇒ Object
Returns the value of attribute service_level.
Attributes inherited from Transaction
#amount, #batch_booking, #bic, #creditor_address, #currency, #iban, #instruction, #name, #reference, #remittance_information, #requested_date, #structured_remittance_information
Instance Method Summary collapse
-
#initialize(attributes = {}) ⇒ DirectDebitTransaction
constructor
A new instance of DirectDebitTransaction.
- #schema_compatible?(schema_name) ⇒ Boolean
- #validate_local_instrument ⇒ Object
Methods included from Converter
Constructor Details
#initialize(attributes = {}) ⇒ DirectDebitTransaction
Returns a new instance of DirectDebitTransaction.
31 32 33 34 35 |
# File 'lib/sps_king/transaction/direct_debit_transaction.rb', line 31 def initialize(attributes = {}) super self.service_level ||= 'CHTA' self.local_instrument ||= 'LSV+' end |
Instance Attribute Details
#creditor_account ⇒ Object
Returns the value of attribute creditor_account.
11 12 13 |
# File 'lib/sps_king/transaction/direct_debit_transaction.rb', line 11 def creditor_account @creditor_account end |
#debtor_address ⇒ Object
Returns the value of attribute debtor_address.
11 12 13 |
# File 'lib/sps_king/transaction/direct_debit_transaction.rb', line 11 def debtor_address @debtor_address end |
#local_instrument ⇒ Object
Returns the value of attribute local_instrument.
11 12 13 |
# File 'lib/sps_king/transaction/direct_debit_transaction.rb', line 11 def local_instrument @local_instrument end |
#service_level ⇒ Object
Returns the value of attribute service_level.
11 12 13 |
# File 'lib/sps_king/transaction/direct_debit_transaction.rb', line 11 def service_level @service_level end |
Instance Method Details
#schema_compatible?(schema_name) ⇒ Boolean
37 38 39 40 41 42 43 |
# File 'lib/sps_king/transaction/direct_debit_transaction.rb', line 37 def schema_compatible?(schema_name) case schema_name when PAIN_008_001_02_CH_03 self.structured_remittance_information.present? && self.structured_remittance_information.valid? end end |
#validate_local_instrument ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/sps_king/transaction/direct_debit_transaction.rb', line 45 def validate_local_instrument if SERVICE_LEVELS.include?(self.service_level) allowed_local_instruments = LOCAL_INSTRUMENTS_FOR_SERVICE_LEVELS[self.service_level] if !allowed_local_instruments.include?(self.local_instrument) errors.add( :local_instrument, "is not correct. Must be one of #{allowed_local_instruments.join(', ')}" ) end end end |