Module: MercuryBanking::CLI::Reconciliation::ReconciliationStatusCommand
- Defined in:
- lib/mercury_banking/cli/reconciliation.rb
Overview
Module for reconciliation_status command
Class Method Summary collapse
Class Method Details
.included(base) ⇒ Object
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 |
# File 'lib/mercury_banking/cli/reconciliation.rb', line 203 def self.included(base) base.class_eval do desc 'reconciliation_status ACCOUNT_ID_OR_NUMBER', 'Show reconciliation status for an account' method_option :start, type: :string, default: '2020-01-01', desc: 'Start date for transactions (YYYY-MM-DD)' method_option :end, type: :string, desc: 'End date for transactions (YYYY-MM-DD)' method_option :format, type: :string, default: 'table', enum: %w[table json], desc: 'Output format (table or json)' def reconciliation_status(account_identifier) with_api_client do |client| # Resolve account identifier to account ID account_id = resolve_account_id(client, account_identifier) account = client.get_account(account_id) # Get transactions for the account start_date = [:start] end_date = [:end] transactions = client.get_transactions(account_id, start_date) # Filter transactions by date transactions = filter_transactions_by_date(transactions, start_date, end_date) # Get reconciliation status reconciliation = MercuryBanking::Reconciliation.new status = reconciliation.get_reconciliation_status(account_id, transactions) summary = reconciliation.get_reconciliation_summary(account_id, transactions) if [:json] || [:format] == 'json' puts JSON.pretty_generate({ 'account_id' => account_id, 'account_name' => account['name'], 'summary' => summary, 'transactions' => status }) else display_reconciliation_table(account, status, summary, start_date, end_date) end end end end end |