Make balance-at-point able to convert commodity.

The function `ledger-display-balance-at-point' called with the prefix
argument will now ask for the target commodity.
This commit is contained in:
Matus Goljer 2015-10-01 20:41:13 +02:00
parent 612656b1d8
commit a8fa013417

View file

@ -125,14 +125,19 @@
": ")) ": "))
nil 'ledger-minibuffer-history default)) nil 'ledger-minibuffer-history default))
(defun ledger-display-balance-at-point () (defun ledger-display-balance-at-point (&optional arg)
"Display the cleared-or-pending balance. "Display the cleared-or-pending balance.
And calculate the target-delta of the account being reconciled." And calculate the target-delta of the account being reconciled.
(interactive)
With prefix argument \\[universal-argument] ask for the target commodity and convert
the balance into that."
(interactive "P")
(let* ((account (ledger-read-account-with-prompt "Account balance to show")) (let* ((account (ledger-read-account-with-prompt "Account balance to show"))
(target-commodity (when arg (ledger-read-commodity-with-prompt "Target commodity: ")))
(buffer (current-buffer)) (buffer (current-buffer))
(balance (with-temp-buffer (balance (with-temp-buffer
(ledger-exec-ledger buffer (current-buffer) "cleared" account) (apply 'ledger-exec-ledger buffer (current-buffer) "cleared" account
(when target-commodity (list "-X" target-commodity)))
(if (> (buffer-size) 0) (if (> (buffer-size) 0)
(buffer-substring-no-properties (point-min) (1- (point-max))) (buffer-substring-no-properties (point-min) (1- (point-max)))
(concat account " is empty."))))) (concat account " is empty.")))))