resolve conflicts/explain (Add: filter relevant transactions by account)
Previously, we supported "hledger add [DESCRIPTION]". A DESCRIPTION just pre-filled the description field and bypassed that prompt, after which existing transactions with similar descriptions were offered as defaults/reminders. Now, we support "hledger add [ACCOUNTPATTERN]" instead. After the description prompt, existing transactions with similar descriptions *and* which match ACCOUNTPATTERN are offered as defaults. This can be helpful eg with a multi-person ledger, to match only your own transactions.
This commit is contained in:
parent
20b243a3a3
commit
8310eaa6ff
@ -178,13 +178,13 @@ compareLedgerDescriptions s t = compareStrings s' t'
|
|||||||
t' = simplify t
|
t' = simplify t
|
||||||
simplify = filter (not . (`elem` "0123456789"))
|
simplify = filter (not . (`elem` "0123456789"))
|
||||||
|
|
||||||
transactionsSimilarTo :: Ledger -> String -> [(Double,LedgerTransaction)]
|
transactionsSimilarTo :: Ledger -> [String] -> String -> [(Double,Transaction)]
|
||||||
transactionsSimilarTo l s =
|
transactionsSimilarTo l apats s =
|
||||||
sortBy compareRelevanceAndRecency
|
sortBy compareRelevanceAndRecency
|
||||||
$ filter ((> threshold).fst)
|
$ filter ((> threshold).fst)
|
||||||
[(compareLedgerDescriptions s $ tdescription t, t) | t <- ts]
|
[(compareLedgerDescriptions s $ tdescription t, t) | t <- ts]
|
||||||
where
|
where
|
||||||
compareRelevanceAndRecency (n1,t1) (n2,t2) = compare (n2,ltdate t2) (n1,ltdate t1)
|
compareRelevanceAndRecency (n1,t1) (n2,t2) = compare (n2,tdate t2) (n1,tdate t1)
|
||||||
ts = ledger_txns $ rawledger l
|
ts = jtxns $ filterJournalTransactionsByAccount apats $ journal l
|
||||||
threshold = 0
|
threshold = 0
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user