mirror of
https://github.com/simonmichael/hledger.git
synced 2024-09-20 02:37:12 +03:00
quick --depth option, a hledger feature
This commit is contained in:
parent
6fc8cdfe3e
commit
86b510917d
@ -129,7 +129,7 @@ showBalanceReport opts args l = acctsstr ++ (if collapse then "" else totalstr)
|
||||
sub = SubTotal `elem` opts
|
||||
empty = Empty `elem` opts
|
||||
collapse = Collapse `elem` opts
|
||||
maxdepth = 9999
|
||||
maxdepth = fromMaybe 9999 $ depthFromOpts opts
|
||||
totalstr = if isZeroMixedAmount total
|
||||
then ""
|
||||
else printf "--------------------\n%20s\n" $ showMixedAmount total
|
||||
|
1
NOTES
1
NOTES
@ -16,7 +16,6 @@ implementations were its consequences." --Niklaus Wirth
|
||||
*** commodity @ rate, for tracking client hours in main ledger
|
||||
*** actual/effective entry & txn dates, for ...
|
||||
*** --display, for reconciling recent transactions with real balance
|
||||
*** depth control
|
||||
*** more ledger features from README
|
||||
*** new features
|
||||
**** option for strict ledger-compatible output (or, compare xml ?)
|
||||
|
13
Options.hs
13
Options.hs
@ -27,6 +27,7 @@ options = [
|
||||
Option ['b'] ["begin"] (ReqArg Begin "YYYY/MM/DD") "report on entries on or after this date",
|
||||
Option ['e'] ["end"] (ReqArg End "YYYY/MM/DD") "report on entries prior to this date",
|
||||
Option ['C'] ["cleared"] (NoArg Cleared) "report only on cleared entries",
|
||||
Option [] ["depth"] (ReqArg Depth "N") "balance report: maximum account depth to show",
|
||||
Option ['E'] ["empty"] (NoArg Empty) "balance report: show accounts with zero balance",
|
||||
Option ['R'] ["real"] (NoArg Real) "report only on real (non-virtual) transactions",
|
||||
Option ['n'] ["collapse"] (NoArg Collapse) "balance report: no grand total",
|
||||
@ -41,6 +42,7 @@ data Opt =
|
||||
Begin String |
|
||||
End String |
|
||||
Cleared |
|
||||
Depth String |
|
||||
Empty |
|
||||
Real |
|
||||
Collapse |
|
||||
@ -109,6 +111,17 @@ endDateFromOpts opts =
|
||||
getenddate _ = []
|
||||
defaultdate = ""
|
||||
|
||||
-- | Get the value of the depth option, if any.
|
||||
depthFromOpts :: [Opt] -> Maybe Int
|
||||
depthFromOpts opts =
|
||||
case depthopts of
|
||||
(x:_) -> Just $ read x
|
||||
_ -> Nothing
|
||||
where
|
||||
depthopts = concatMap getdepth opts
|
||||
getdepth (Depth s) = [s]
|
||||
getdepth _ = []
|
||||
|
||||
-- | Gather any ledger-style account/description pattern arguments into
|
||||
-- two lists. These are 0 or more account patterns optionally followed by
|
||||
-- -- and 0 or more description patterns.
|
||||
|
12
Tests.hs
12
Tests.hs
@ -227,6 +227,18 @@ balancecommand_tests = TestList [
|
||||
([Collapse], ["cash"]) `gives`
|
||||
(" $-2 assets:cash\n" ++
|
||||
"")
|
||||
,
|
||||
"balance report with --depth 1" ~:
|
||||
([SubTotal,Collapse,Depth "1"], ["assets"]) `gives`
|
||||
(" $-1 assets\n" ++
|
||||
"")
|
||||
,
|
||||
"balance report with --depth 2" ~:
|
||||
([SubTotal,Collapse,Depth "2"], ["assets"]) `gives`
|
||||
(" $-1 assets\n" ++
|
||||
" $-2 cash\n" ++
|
||||
" $1 saving\n" ++
|
||||
"")
|
||||
] where
|
||||
gives (opts,pats) e = do
|
||||
l <- ledgerfromfile pats "sample.ledger"
|
||||
|
Loading…
Reference in New Issue
Block a user