Module: MercuryBanking::CLI::Reconciliation::DisplayHelpers

Defined in:
lib/mercury_banking/cli/reconciliation.rb

Overview

Helper module for display operations

Instance Method Summary collapse

Instance Method Details

#display_debug_info(account_id, account, reconcile_date, transactions, unreconciled) ⇒ Object

Display debug information



81
82
83
84
85
86
87
88
# File 'lib/mercury_banking/cli/reconciliation.rb', line 81

def display_debug_info(, , reconcile_date, transactions, unreconciled)
  puts "Debug information:"
  puts "- Account ID: #{}"
  puts "- Account Name: #{['name']}"
  puts "- Reconcile Date: #{reconcile_date}"
  puts "- Total Transactions: #{transactions.length}"
  puts "- Unreconciled Transactions: #{unreconciled.length}"
end

#display_reconciliation_info(account, reconcile_date, start_date, unreconciled, options) ⇒ Object

Display reconciliation information



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/mercury_banking/cli/reconciliation.rb', line 91

def display_reconciliation_info(, reconcile_date, start_date, unreconciled, options)
  if options[:json]
    result = {
      'account_id' => ['id'],
      'account_name' => ['name'],
      'reconcile_date' => reconcile_date.to_s,
      'total_transactions' => unreconciled.length,
      'transactions_to_reconcile' => unreconciled.map { |t| t[:transaction_id] },
      'dry_run' => options[:dry_run]
    }
    puts JSON.pretty_generate(result)
  else
    puts "Reconciling transactions for #{['name']} (#{['accountNumber']})"
    puts "Date range: #{start_date} to #{reconcile_date}"
    puts "Found #{unreconciled.length} unreconciled transactions"
    puts
  end
end

#display_reconciliation_table(account, status, summary, start_date, end_date) ⇒ Object

Display reconciliation table



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/mercury_banking/cli/reconciliation.rb', line 51

def display_reconciliation_table(, status, summary, start_date, end_date)
  puts "Reconciliation Status for #{['name']} (#{['accountNumber']})"
  puts "Period: #{start_date} to #{end_date || 'present'}"
  puts
  puts "Summary:"
  puts "- Total Transactions: #{summary[:total_transactions]}"
  puts "- Reconciled: #{summary[:reconciled_count]} ($#{format('%.2f', summary[:reconciled_amount])})"
  puts "- Unreconciled: #{summary[:unreconciled_count]} ($#{format('%.2f', summary[:unreconciled_amount])})"
  puts

  # Display transactions
  rows = status.map do |t|
    date = t[:date] ? Time.parse(t[:date]).strftime("%Y-%m-%d") : "Unknown"
    description = t[:description].length > 30 ? "#{t[:description][0..27]}..." : t[:description]
    amount = format("$%.2f", t[:amount])
    reconciled = t[:reconciled] ? "" : " "
    reconciled_at = t[:reconciled_at] || ""

    [t[:transaction_id], date, description, amount, reconciled, reconciled_at]
  end

  table = ::Terminal::Table.new(
    headings: ['Transaction ID', 'Date', 'Description', 'Amount', 'Reconciled', 'Reconciled At'],
    rows: rows
  )

  puts table
end