134 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| * feature: balance report account matching
 | |
| 
 | |
| sample account tree:
 | |
| 
 | |
| assets
 | |
|  cash
 | |
|  checking
 | |
|  saving
 | |
| equity
 | |
| expenses
 | |
|  food
 | |
|  shelter
 | |
| income
 | |
|  salary
 | |
| liabilities
 | |
|  debts
 | |
| 
 | |
| standard balance command shows all top-level accounts:
 | |
| 
 | |
| > ledger bal
 | |
| $ assets      
 | |
| $ equity
 | |
| $ expenses    
 | |
| $ income      
 | |
| $ liabilities 
 | |
| 
 | |
| with an account pattern, show only the ones with matching names:
 | |
| 
 | |
| > ledger bal asset
 | |
| $ assets      
 | |
| 
 | |
| with -s, show all subaccounts of matched accounts:
 | |
| 
 | |
| > ledger -s bal asset
 | |
| $ assets      
 | |
| $  cash       
 | |
| $  checking   
 | |
| $  saving
 | |
| 
 | |
| again:
 | |
| 
 | |
| > ledger bal a
 | |
| $ assets      
 | |
| $  cash       
 | |
| $  saving
 | |
| $ income      
 | |
| $  salary     
 | |
| $ liabilities 
 | |
| 
 | |
| and including subaccounts:
 | |
| 
 | |
| > ledger -s bal a
 | |
| $ assets      
 | |
| $  cash       
 | |
| $  checking   
 | |
| $  saving
 | |
| $ income      
 | |
| $  salary     
 | |
| $ liabilities 
 | |
| $  debts
 | |
| 
 | |
| but also, elide boring accounts whenever possible, so if savings is 0 and
 | |
| income/liabilities have no transactions the above would be displayed as:
 | |
| 
 | |
| > ledger -s bal a
 | |
| $ assets      
 | |
| $  cash       
 | |
| $  checking   
 | |
| $ income:salary
 | |
| $ liabilities:debts
 | |
| 
 | |
| algorithm:
 | |
| 
 | |
| 1 filter account tree by name, keeping any necessary parents
 | |
| 2 add subaccounts if -s
 | |
| 3 display account tree, eliding boring accounts
 | |
| 
 | |
| elide boring accounts
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| optimization: add CookedLedger caching acct txns, boring status etc.
 | |
|  refactor apis
 | |
| 
 | |
| 
 | |
| 
 | |
| speed
 | |
|  profile, refactor, optimize
 | |
| 
 | |
| basic features
 | |
|  -f -
 | |
|  print
 | |
|  -j and -J graph data output
 | |
|  !include
 | |
|  read timelog files
 | |
| 
 | |
| advanced features
 | |
|  handle mixed amounts
 | |
|  3.0-style elision
 | |
|  -p period expressions
 | |
|  -d display expressions
 | |
|  read gnucash files
 | |
|  other args, directives
 | |
| 
 | |
| new features
 | |
|  graph automation
 | |
|  entry and smart data entry
 | |
|  incorporate timeclock features
 | |
|  timelog simple amount entries
 | |
|  better layout
 | |
| 
 | |
| testing
 | |
|  better use of quickcheck/smallcheck
 | |
|   http://blog.codersbase.com/2006/09/01/simple-unit-testing-in-haskell/
 | |
|  ledger compatibility tests
 | |
| 
 | |
| documentation
 | |
|  literate docs
 | |
|  better use of haddock
 | |
| 
 | |
| marketing
 | |
|  set up as a cabal/hackage project following wiki howto ?
 | |
|   http://en.wikibooks.org/wiki/Haskell/Packaging
 | |
|  announce on haskell list, wiki
 |