class MoneyS3::Utils::BankStatements
Constants
- TRANSACTION_TYPES
Public Class Methods
new(configuration)
click to toggle source
# File lib/money_s3/utils/bank_statements.rb, line 6 def initialize(configuration) @my_bank_account_id = configuration.fetch :my_bank_account_id @credit_transactions_rule = configuration.fetch :credit_transactions_rule @debit_transactions_rule = configuration.fetch :debit_transactions_rule @credit_transactions_vat_rule = configuration.fetch :credit_transactions_vat_rule @debit_transactions_vat_rule = configuration.fetch :debit_transactions_vat_rule @credit_transactions_series = configuration.fetch :credit_transactions_series @debit_transactions_series = configuration.fetch :debit_transactions_series end
Public Instance Methods
to_xml(raw)
click to toggle source
# File lib/money_s3/utils/bank_statements.rb, line 19 def to_xml(raw) statements = raw.map do |item| amount = item.fetch :amount data = { id_polozky: item[:transaction_id].to_s, dat_uc_pr: item[:date].to_s, dat_vyst: item[:date].to_s, dat_plat: item[:date].to_s, dat_pln: item[:date].to_s, vypis: item[:statement_id].to_s, ucet: { zkrat: item.fetch(:my_bank_account_id, @my_bank_account_id) }, popis: item[:description].to_s, pozn: item[:note].to_s, var_sym: item[:variable_symbol].to_s, spec_sym: item[:specific_symbol].to_s, kon_sym: item[:constant_symbol].to_s, ad_ucet: item[:counterparty_account].to_s, ad_kod: item[:counterparty_bank_code].to_s } if item[:rule] data.merge!({ pr_kont: item[:rule] }) end if item[:vat_rule] data.merge!({ cleneni: item[:vat_rule] }) end if item[:foreign_currency_code] data.merge!({ valuty: { mena: { kod: item[:foreign_currency_code].to_s, celkem: amount.to_s }, souhrn_dph: { zaklad0: amount.to_s } } }) else data.merge!({ celkem: amount.to_s, souhrn_dph: { zaklad0: amount.to_s } }) end transaction_type = item.fetch :type fail "Unknown transaction type: #{transaction_type}" unless TRANSACTION_TYPES.include? transaction_type if transaction_type == :credit defaults = { vydej: '0', pr_kont: @credit_transactions_rule, cleneni: @credit_transactions_vat_rule, d_rada: @credit_transactions_series } data = defaults.merge(data) else defaults = { vydej: '1', pr_kont: @debit_transactions_rule, cleneni: @debit_transactions_vat_rule, d_rada: @debit_transactions_series } data = defaults.merge(data) end data.delete_if { |_, v| v.nil? || v == '' } data end money_data = { seznam_bank_dokl: statements } MoneyS3.build(money_data) end