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