close: hide equity amounts by default, for simpler entries (#1165)
-x/--explicit shows them, as with print.
This commit is contained in:
		
							parent
							
								
									2645b76ff0
								
							
						
					
					
						commit
						7500002ee5
					
				| @ -27,6 +27,7 @@ closemode = hledgerCommandMode | ||||
|   ,flagNone ["opening"] (setboolopt "opening") "show just opening transaction" | ||||
|   ,flagReq  ["close-to"] (\s opts -> Right $ setopt "close-to" s opts) "ACCT" ("account to transfer closing balances to (default: "++defclosingacct++")") | ||||
|   ,flagReq  ["open-from"] (\s opts -> Right $ setopt "open-from" s opts) "ACCT" ("account to transfer opening balances from (default: "++defopeningacct++")") | ||||
|   ,flagNone ["explicit","x"] (setboolopt "explicit") "show all amounts explicitly" | ||||
|   ,flagNone ["interleaved"] (setboolopt "interleaved") "keep equity and non-equity postings adjacent" | ||||
|   ,flagNone ["show-costs"] (setboolopt "show-costs") "keep balances with different costs separate" | ||||
|   ] | ||||
| @ -61,6 +62,9 @@ close CliOpts{rawopts_=rawopts, reportopts_=ropts} j = do | ||||
|     openingdate = fromMaybe today $ queryEndDate False q | ||||
|     closingdate = addDays (-1) openingdate | ||||
| 
 | ||||
|     -- should we show the amount(s) on the equity posting(s) ? | ||||
|     explicit = boolopt "explicit" rawopts | ||||
| 
 | ||||
|     -- should we preserve cost information ? | ||||
|     normalise = case boolopt "show-costs" rawopts of | ||||
|                   True  -> normaliseMixedAmount | ||||
| @ -105,7 +109,7 @@ close CliOpts{rawopts_=rawopts, reportopts_=ropts} j = do | ||||
|        | ||||
|       -- or a final multicommodity posting transferring all balances to equity | ||||
|       -- (print will show this as multiple single-commodity postings) | ||||
|       ++ [posting{paccount=closingacct, pamount=mapMixedAmount precise totalamt} | not interleaved] | ||||
|       ++ [posting{paccount=closingacct, pamount=if explicit then mapMixedAmount precise totalamt else missingmixedamt} | not interleaved] | ||||
| 
 | ||||
|     -- the opening transaction | ||||
|     openingtxn = nulltransaction{tdate=openingdate, tdescription="opening balances", tpostings=openingps} | ||||
| @ -129,7 +133,7 @@ close CliOpts{rawopts_=rawopts, reportopts_=ropts} j = do | ||||
|                            , let commoditysum = (sum bs)] | ||||
|         , (b, mcommoditysum) <- bs' | ||||
|         ] | ||||
|       ++ [posting{paccount=openingacct, pamount=mapMixedAmount precise $ negate totalamt} | not interleaved] | ||||
|       ++ [posting{paccount=openingacct, pamount=if explicit then mapMixedAmount precise (negate totalamt) else missingmixedamt} | not interleaved] | ||||
| 
 | ||||
|   -- print them | ||||
|   when closing $ putStr $ showTransaction closingtxn | ||||
|  | ||||
| @ -16,18 +16,24 @@ by default. You can choose different account names with the | ||||
| `--close-to` and `--open-from` options. If you specify only one of | ||||
| these, it is used for both. | ||||
| 
 | ||||
| The "equity" postings are shown at the end of the transaction | ||||
| by default (and are combined when possible). | ||||
| With `--interleaved`, they are shown next to each posting they | ||||
| balance, which is better for troubleshooting (and may generate more postings). | ||||
| By default, a single balancing equity posting is added at the end of | ||||
| these journal entries, with the amount left implicit.  | ||||
| 
 | ||||
| When the balances being closed have cost information (because | ||||
| transaction prices were recorded), `--show-costs` will preserve it. | ||||
| Balances with different costs are closed/reopened separately, | ||||
| and balance -B reports will be unchanged after the transition. | ||||
| Note this can generate many postings,  | ||||
| if you have a lot of foreign currency or investment transactions. | ||||
| By default, transaction prices are ignored. | ||||
| With `--x/--explicit`, the balancing amount is shown, and if | ||||
| multiple commodities are involved, multiple single-commodity equity | ||||
| postings are shown (like the print command). | ||||
| 
 | ||||
| With `--interleaved`, the equity postings are shown next to each | ||||
| posting they balance, which can be better for troubleshooting (and can | ||||
| generate more postings). | ||||
| 
 | ||||
| By default, transaction prices in the journal are ignored when | ||||
| generating the closing/opening transactions. | ||||
| With `--show-costs`, this cost information is preserved, | ||||
| so that `balance -B` reports will be unchanged after the transition. | ||||
| Separate postings are generated for each cost in each commodity. | ||||
| Note this can generate very large journal entries, if you have many | ||||
| foreign currency or investment transactions. | ||||
| 
 | ||||
| ### close usage | ||||
| 
 | ||||
|  | ||||
| @ -23,13 +23,13 @@ $ hledger close -f- -p 2016 assets liabilities | ||||
|     assets:bank                        $-80 = $0 | ||||
|     assets:cash                        $-10 = $0 | ||||
|     liabilities                        $-25 = $0 | ||||
|     equity:closing balances            $115 | ||||
|     equity:closing balances | ||||
| 
 | ||||
| 2017-01-01 opening balances | ||||
|     assets:bank                         $80 = $80 | ||||
|     assets:cash                         $10 = $10 | ||||
|     liabilities                         $25 = $25 | ||||
|     equity:opening balances           $-115 | ||||
|     equity:opening balances | ||||
| 
 | ||||
| >=0 | ||||
| 
 | ||||
| @ -41,11 +41,11 @@ $ hledger close -f- -p 2016 assets liabilities | ||||
| $ hledger close -f- -b2017/6/1 -e2018 | ||||
| 2017-12-31 closing balances | ||||
|     a                                    -1 = 0 | ||||
|     equity:closing balances               1 | ||||
|     equity:closing balances | ||||
| 
 | ||||
| 2018-01-01 opening balances | ||||
|     a                                     1 = 1 | ||||
|     equity:opening balances              -1 | ||||
|     equity:opening balances | ||||
| 
 | ||||
| >=0 | ||||
| 
 | ||||
| @ -73,11 +73,11 @@ $ hledger close -f- -p 2016 assets liabilities --opening | ||||
|     assets:bank                         $80 = $80 | ||||
|     assets:cash                         $10 = $10 | ||||
|     liabilities                         $25 = $25 | ||||
|     equity:opening balances           $-115 | ||||
|     equity:opening balances | ||||
| 
 | ||||
| >=0 | ||||
| 
 | ||||
| # 4. Print just the closing transaction | ||||
| # 4. Print just the closing transaction.  | ||||
| < | ||||
| 2016/1/1 open | ||||
|     assets:bank         $100 | ||||
| @ -101,11 +101,12 @@ $ hledger close -f- -p 2016 assets liabilities --closing | ||||
|     assets:bank                        $-80 = $0 | ||||
|     assets:cash                        $-10 = $0 | ||||
|     liabilities                        $-25 = $0 | ||||
|     equity:closing balances            $115 | ||||
|     equity:closing balances | ||||
| 
 | ||||
| >=0 | ||||
| 
 | ||||
| # 5. Supplying --opening --closing is the same as just "close" | ||||
| # Also -x makes it show the equity amounts. | ||||
| < | ||||
| 2016/1/1 open | ||||
|     assets:bank         $100 | ||||
| @ -124,7 +125,7 @@ $ hledger close -f- -p 2016 assets liabilities --closing | ||||
|     liabilities         $25 | ||||
|     assets:cash | ||||
| 
 | ||||
| $ hledger close -f- -p 2016 assets liabilities --opening --closing | ||||
| $ hledger close -f- -p 2016 assets liabilities --opening --closing -x | ||||
| 2016-12-31 closing balances | ||||
|     assets:bank                        $-80 = $0 | ||||
|     assets:cash                        $-10 = $0 | ||||
| @ -146,7 +147,7 @@ $ hledger close -f- -p 2016 assets liabilities --opening --closing | ||||
|     assets                          1A @ 1C | ||||
|     equity | ||||
| 
 | ||||
| $ hledger -f- close assets -p 2019 | ||||
| $ hledger -f- close assets -p 2019 -x | ||||
| 2019-12-31 closing balances | ||||
|     assets                              -2A = 0A | ||||
|     equity:closing balances              2A | ||||
| @ -160,7 +161,7 @@ $ hledger -f- close assets -p 2019 | ||||
| # 7. With --show-costs, the transaction prices are preserved. | ||||
| # Only the last posting in each commodity gets a balance assertion (#1035). | ||||
| # Balance assertion amounts do not have a price. | ||||
| $ hledger -f- close assets -p 2019 --show-costs | ||||
| $ hledger -f- close assets -p 2019 --show-costs -x | ||||
| 2019-12-31 closing balances | ||||
|     assets                         -1A @ 1B | ||||
|     assets                         -1A @ 1C = 0A | ||||
| @ -184,7 +185,7 @@ $ hledger -f- close assets -p 2019 --show-costs | ||||
| 2019/01/02 | ||||
|     (assets)                        1A @ 2B | ||||
| 
 | ||||
| $ hledger -f- close assets -p 2019 | ||||
| $ hledger -f- close assets -p 2019 -x | ||||
| 2019-12-31 closing balances | ||||
|     assets                              -2A = 0A | ||||
|     equity:closing balances              2A | ||||
| @ -203,7 +204,7 @@ $ hledger -f- close assets -p 2019 | ||||
| 2019/01/02 | ||||
|     (assets)                        1A @ 2B | ||||
| 
 | ||||
| $ hledger -f- close assets -p 2019 --show-costs | ||||
| $ hledger -f- close assets -p 2019 --show-costs -x | ||||
| 2019-12-31 closing balances | ||||
|     assets                         -1A @ 1B | ||||
|     assets                         -1A @ 2B = 0A | ||||
| @ -242,7 +243,7 @@ $ hledger -f- close assets -p 2019 --show-costs | ||||
|     assets:bank                                2,836.00 EUR | ||||
|     liabilities:employer | ||||
| 
 | ||||
| $ hledger -f- close -p 2016 assets liabilities --show-costs | ||||
| $ hledger -f- close -p 2016 assets liabilities --show-costs -x | ||||
| 2016-12-31 closing balances | ||||
|     assets:bank                       -5,733.00 EUR = 0.00 EUR | ||||
|     liabilities:employer                $-10,000.00 | ||||
| @ -270,7 +271,7 @@ $ hledger -f- close -p 2016 assets liabilities --show-costs | ||||
| # 11. With --interleaved, each transfer's postings are adjacent. | ||||
| # (And balances with the same cost are not necessarily combined into | ||||
| # a single posting. Eg the 5734 EUR above is 5733 EUR and 1 EUR below.) | ||||
| $ hledger -f- close -p 2016 assets liabilities --interleaved --show-costs | ||||
| $ hledger -f- close -p 2016 assets liabilities --interleaved --show-costs -x | ||||
| 2016-12-31 closing balances | ||||
|     assets:bank                        -5,733.00 EUR = 0.00 EUR | ||||
|     equity:closing balances             5,733.00 EUR | ||||
| @ -311,7 +312,7 @@ commodity AAA 0.00000000 | ||||
|     assets:usd                                   -$0.1280810 | ||||
|     expenses:banking                              $0.1280810 | ||||
| 
 | ||||
| $ hledger -f- close -p 2019 assets --show-costs | ||||
| $ hledger -f- close -p 2019 assets --show-costs -x | ||||
| 2019-12-31 closing balances | ||||
|     assets:aaa                              AAA -510.00000000 = AAA 0.00000000 | ||||
|     assets:usd                                        $-49.50 | ||||
| @ -331,7 +332,7 @@ $ hledger -f- close -p 2019 assets --show-costs | ||||
| >=0 | ||||
| 
 | ||||
| # 13. The same, without costs and with --interleaved. | ||||
| $ hledger -f- close -p 2019 assets --interleaved | ||||
| $ hledger -f- close -p 2019 assets --interleaved -x | ||||
| 2019-12-31 closing balances | ||||
|     assets:aaa                 AAA -510.00000000 = AAA 0.00000000 | ||||
|     equity:closing balances     AAA 510.00000000 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user