summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ledger-reconcile.el98
1 files changed, 23 insertions, 75 deletions
diff --git a/lisp/ledger-reconcile.el b/lisp/ledger-reconcile.el
index f9a5c21b..100c7de6 100644
--- a/lisp/ledger-reconcile.el
+++ b/lisp/ledger-reconcile.el
@@ -40,7 +40,7 @@
:group 'ledger)
(defcustom ledger-recon-buffer-name "*Reconcile*"
- "Name to use for reconciliation buffer."
+ "Name to use for reconciliation window."
:group 'ledger-reconcile)
(defcustom ledger-narrow-on-reconcile t
@@ -49,30 +49,29 @@
:group 'ledger-reconcile)
(defcustom ledger-buffer-tracks-reconcile-buffer t
- "If t, then when the cursor is moved to a new transaction in the reconcile buffer.
+ "If t, then when the cursor is moved to a new xact in the recon window.
Then that transaction will be shown in its source buffer."
:type 'boolean
:group 'ledger-reconcile)
(defcustom ledger-reconcile-force-window-bottom nil
- "If t, make the reconcile window appear along the bottom of the register window and resize."
+ "If t make the reconcile window appear along the bottom of the register window and resize."
:type 'boolean
:group 'ledger-reconcile)
(defcustom ledger-reconcile-toggle-to-pending t
- "If t, then toggle between uncleared and pending.
+ "If true then toggle between uncleared and pending.
reconcile-finish will mark all pending posting cleared."
:type 'boolean
:group 'ledger-reconcile)
(defcustom ledger-reconcile-default-date-format ledger-default-date-format
- "Date format for the reconcile buffer.
-Default is ledger-default-date-format."
+ "Default date format for the reconcile buffer."
:type 'string
:group 'ledger-reconcile)
(defcustom ledger-reconcile-target-prompt-string "Target amount for reconciliation "
- "Prompt for recon target."
+ "Default prompt for recon target prompt."
:type 'string
:group 'ledger-reconcile)
@@ -80,36 +79,24 @@ Default is ledger-default-date-format."
"Default header string for the reconcile buffer.
If non-nil, the name of the account being reconciled will be substituted
- into the '%s'. If nil, no header will be displayed."
- :type 'string
- :group 'ledger-reconcile)
+ into the '%s'. If nil, no header will be displayed."
+ :type 'string
+ :group 'ledger-reconcile)
(defcustom ledger-reconcile-buffer-line-format "%(date)s %-4(code)s %-50(payee)s %-30(account)s %15(amount)s\n"
"Format string for the ledger reconcile posting format.
Available fields are date, status, code, payee, account,
amount. The format for each field is %WIDTH(FIELD), WIDTH can be
preced by a minus sign which mean to left justify and pad the
-field. WIDTH is the minimum number of characters to display;
-if string is longer, it is not truncated unless
-ledger-reconcile-buffer-payee-max-chars or
-ledger-reconcile-buffer-account-max-chars is defined."
- :type 'string
- :group 'ledger-reconcile)
-
-(defcustom ledger-reconcile-buffer-payee-max-chars -1
- "If positive, truncate payee name right side to max number of characters."
- :type 'integer
- :group 'ledger-reconcile)
-
-(defcustom ledger-reconcile-buffer-account-max-chars -1
- "If positive, truncate account name left side to max number of characters."
- :type 'integer
- :group 'ledger-reconcile)
+field."
+ :type 'string
+ :group 'ledger-reconcile)
(defcustom ledger-reconcile-sort-key "(0)"
- "Key for sorting reconcile buffer.
+ "Default key for sorting reconcile buffer.
-Possible values are '(date)', '(amount)', '(payee)' or '(0)' for no sorting, i.e. using ledger file order."
+Possible values are '(date)', '(amount)', '(payee)'. For no sorting, i.e. using
+ledger file order, use '(0)'."
:type 'string
:group 'ledger-reconcile)
@@ -118,42 +105,6 @@ Possible values are '(date)', '(amount)', '(payee)' or '(0)' for no sorting, i.e
:type 'boolean
:group 'ledger-reconcile)
-;; s-functions below are copied from Magnars' s.el
-;; prefix ledger-reconcile- is added to not conflict with s.el
-(defun ledger-reconcile-s-pad-left (len padding s)
- "If S is shorter than LEN, pad it with PADDING on the left."
- (let ((extra (max 0 (- len (length s)))))
- (concat (make-string extra (string-to-char padding))
- s)))
-(defun ledger-reconcile-s-pad-right (len padding s)
- "If S is shorter than LEN, pad it with PADDING on the right."
- (let ((extra (max 0 (- len (length s)))))
- (concat s
- (make-string extra (string-to-char padding)))))
-(defun ledger-reconcile-s-left (len s)
- "Return up to the LEN first chars of S."
- (if (> (length s) len)
- (substring s 0 len)
- s))
-(defun ledger-reconcile-s-right (len s)
- "Return up to the LEN last chars of S."
- (let ((l (length s)))
- (if (> l len)
- (substring s (- l len) l)
- s)))
-
-(defun ledger-reconcile-truncate-right (str len)
- "Truncate STR right side with max LEN characters, and pad with '…' if truncated."
- (if (and (>= len 0) (> (length str) len))
- (ledger-reconcile-s-pad-right len "…" (ledger-reconcile-s-left (- len 1) str))
- str))
-
-(defun ledger-reconcile-truncate-left (str len)
- "Truncate STR left side with max LEN characters, and pad with '…' if truncated."
- (if (and (>= len 0) (> (length str) len))
- (ledger-reconcile-s-pad-left len "…" (ledger-reconcile-s-right (- len 1) str))
- str))
-
(defun ledger-reconcile-get-cleared-or-pending-balance (buffer account)
"Use BUFFER to Calculate the cleared or pending balance of the ACCOUNT."
@@ -408,16 +359,12 @@ POSTING is used in `ledger-clear-whole-transactions' is nil."
(ledger-reconcile-format-posting beg
where
fmt
- (format-time-string date-format (nth 2 xact)) ; date
- (if (nth 3 xact) (nth 3 xact) "") ; code
- (nth 3 posting) ; status
- (ledger-reconcile-truncate-right
- (nth 4 xact) ; payee
- ledger-reconcile-buffer-payee-max-chars)
- (ledger-reconcile-truncate-left
- (nth 1 posting) ; account
- ledger-reconcile-buffer-account-max-chars)
- (nth 2 posting)))))) ; amount
+ (format-time-string date-format (nth 2 xact)) ; date
+ (if (nth 3 xact) (nth 3 xact) "") ; code
+ (nth 3 posting) ; status
+ (nth 4 xact) ; payee
+ (nth 1 posting) ; account
+ (nth 2 posting)))))) ; amount
(defun ledger-do-reconcile (&optional sort)
"SORT the uncleared transactions in the account and display them in the *Reconcile* buffer.
@@ -440,7 +387,8 @@ Return a count of the uncleared transactions."
(fmt (ledger-reconcile-compile-format-string ledger-reconcile-buffer-line-format)))
(if (and ledger-success (> (length xacts) 0))
(progn
- (insert (format ledger-reconcile-buffer-header account))
+ (if ledger-reconcile-buffer-header
+ (insert (format ledger-reconcile-buffer-header account)))
(dolist (xact xacts)
(ledger-reconcile-format-xact xact fmt))
(goto-char (point-max))