class Ibandit::GermanDetailsConverter::Rule000503
Constants
- EXCEPTION_BANK_CODES
- PSEUDO_ACCOUNT_NUMBER_MAPPING
Public Instance Methods
Source
# File lib/ibandit/german_details_converter.rb, line 239 def converted_details updated_account_number = if PSEUDO_ACCOUNT_NUMBER_MAPPING.key?(combined_bank_details) converted_pseudo_account_number else padded_account_number_for_validity end if EXCEPTION_BANK_CODES.include?(@bank_code) && updated_account_number.to_i.between?(998000000, 999499999) msg = "Account does not support payment transactions" raise UnsupportedAccountDetails, msg end { bank_code: @bank_code, account_number: updated_account_number } end
Private Instance Methods
Source
# File lib/ibandit/german_details_converter.rb, line 258 def combined_bank_details "#{@bank_code}_#{@account_number.rjust(10, '0')}" end
Source
# File lib/ibandit/german_details_converter.rb, line 262 def converted_pseudo_account_number PSEUDO_ACCOUNT_NUMBER_MAPPING[combined_bank_details] end
Source
# File lib/ibandit/german_details_converter.rb, line 266 def padded_account_number_for_validity unpadded_account_number = @account_number.gsub(/\A0+/, "") case GermanDetailsConverter.rules[@bank_code][:check_digit_rule] when "13" if unpadded_account_number.size.between?(6, 7) unpadded_account_number + "00" else @account_number end when "76" case unpadded_account_number.size when 7..8 if Check76.new(@account_number).valid? then @account_number else unpadded_account_number + "00" end when 5..6 then unpadded_account_number + "00" else @account_number end else @account_number end end