print, register: add --value=then, valuing at each posting's date
Currently this will give an error with other kinds of report.
This commit is contained in:
		
							parent
							
								
									50acfc9119
								
							
						
					
					
						commit
						aa96b41efe
					
				| @ -322,6 +322,7 @@ postingApplyValuation priceoracle styles periodlast mreportlast today ismultiper | |||||||
|   case v of |   case v of | ||||||
|     AtCost    Nothing            -> postingToCost styles p |     AtCost    Nothing            -> postingToCost styles p | ||||||
|     AtCost    mc                 -> postingValueAtDate priceoracle styles mc periodlast $ postingToCost styles p |     AtCost    mc                 -> postingValueAtDate priceoracle styles mc periodlast $ postingToCost styles p | ||||||
|  |     AtThen    mc                 -> postingValueAtDate priceoracle styles mc (postingDate p) p | ||||||
|     AtEnd     mc                 -> postingValueAtDate priceoracle styles mc periodlast p |     AtEnd     mc                 -> postingValueAtDate priceoracle styles mc periodlast p | ||||||
|     AtNow     mc                 -> postingValueAtDate priceoracle styles mc today p |     AtNow     mc                 -> postingValueAtDate priceoracle styles mc today p | ||||||
|     AtDefault mc | ismultiperiod -> postingValueAtDate priceoracle styles mc periodlast p |     AtDefault mc | ismultiperiod -> postingValueAtDate priceoracle styles mc periodlast p | ||||||
|  | |||||||
| @ -79,12 +79,13 @@ instance NFData PriceGraph | |||||||
| type PriceOracle = (Day, CommoditySymbol, Maybe CommoditySymbol) -> Maybe (CommoditySymbol, Quantity) | type PriceOracle = (Day, CommoditySymbol, Maybe CommoditySymbol) -> Maybe (CommoditySymbol, Quantity) | ||||||
| 
 | 
 | ||||||
| -- | What kind of value conversion should be done on amounts ? | -- | What kind of value conversion should be done on amounts ? | ||||||
| -- UI: --value=cost|end|now|DATE[,COMM] | -- CLI: --value=cost|then|end|now|DATE[,COMM] | ||||||
| data ValuationType = | data ValuationType = | ||||||
|     AtCost     (Maybe CommoditySymbol)  -- ^ convert to cost commodity using transaction prices, then optionally to given commodity using market prices at posting date |     AtCost     (Maybe CommoditySymbol)  -- ^ convert to cost commodity using transaction prices, then optionally to given commodity using market prices at posting date | ||||||
|   | AtEnd      (Maybe CommoditySymbol)  -- ^ convert to default valuation commodity or given commodity, using market prices at period end(s) |   | AtThen     (Maybe CommoditySymbol)  -- ^ convert to default or given valuation commodity, using market prices at each posting's date | ||||||
|   | AtNow      (Maybe CommoditySymbol)  -- ^ convert to default valuation commodity or given commodity, using current market prices |   | AtEnd      (Maybe CommoditySymbol)  -- ^ convert to default or given valuation commodity, using market prices at period end(s) | ||||||
|   | AtDate Day (Maybe CommoditySymbol)  -- ^ convert to default valuation commodity or given commodity, using market prices on some date |   | AtNow      (Maybe CommoditySymbol)  -- ^ convert to default or given valuation commodity, using current market prices | ||||||
|  |   | AtDate Day (Maybe CommoditySymbol)  -- ^ convert to default or given valuation commodity, using market prices on some date | ||||||
|   | AtDefault  (Maybe CommoditySymbol)  -- ^ works like AtNow in single period reports, like AtEnd in multiperiod reports |   | AtDefault  (Maybe CommoditySymbol)  -- ^ works like AtNow in single period reports, like AtEnd in multiperiod reports | ||||||
|   deriving (Show,Data,Eq) -- Typeable |   deriving (Show,Data,Eq) -- Typeable | ||||||
| 
 | 
 | ||||||
| @ -124,6 +125,9 @@ mixedAmountApplyValuation priceoracle styles periodlast mreportlast today ismult | |||||||
| -- - the provided "today" date - (--value=now, or -V/X with no report | -- - the provided "today" date - (--value=now, or -V/X with no report | ||||||
| --   end date). | --   end date). | ||||||
| --  | --  | ||||||
|  | -- Note --value=then is not supported by this function, and will cause an error; | ||||||
|  | -- use postingApplyValuation for that. | ||||||
|  | --  | ||||||
| -- This is all a bit complicated. See the reference doc at | -- This is all a bit complicated. See the reference doc at | ||||||
| -- https://hledger.org/hledger.html#effect-of-value-on-reports | -- https://hledger.org/hledger.html#effect-of-value-on-reports | ||||||
| -- (hledger_options.m4.md "Effect of --value on reports"), and #1083. | -- (hledger_options.m4.md "Effect of --value on reports"), and #1083. | ||||||
| @ -133,6 +137,8 @@ amountApplyValuation priceoracle styles periodlast mreportlast today ismultiperi | |||||||
|   case v of |   case v of | ||||||
|     AtCost    Nothing            -> amountToCost styles a |     AtCost    Nothing            -> amountToCost styles a | ||||||
|     AtCost    mc                 -> amountValueAtDate priceoracle styles mc periodlast $ amountToCost styles a |     AtCost    mc                 -> amountValueAtDate priceoracle styles mc periodlast $ amountToCost styles a | ||||||
|  |     AtThen    _mc                -> error' "Sorry, --value=then is not yet implemented for this kind of report."  -- TODO | ||||||
|  |                                  -- amountValueAtDate priceoracle styles mc periodlast a  -- posting date unknown, handle like AtEnd | ||||||
|     AtEnd     mc                 -> amountValueAtDate priceoracle styles mc periodlast a |     AtEnd     mc                 -> amountValueAtDate priceoracle styles mc periodlast a | ||||||
|     AtNow     mc                 -> amountValueAtDate priceoracle styles mc today a |     AtNow     mc                 -> amountValueAtDate priceoracle styles mc today a | ||||||
|     AtDefault mc | ismultiperiod -> amountValueAtDate priceoracle styles mc periodlast a |     AtDefault mc | ismultiperiod -> amountValueAtDate priceoracle styles mc periodlast a | ||||||
|  | |||||||
| @ -253,6 +253,7 @@ budgetReportAsText ropts@ReportOpts{..} budgetr = | |||||||
|       (showDateSpan $ periodicReportSpan budgetr) |       (showDateSpan $ periodicReportSpan budgetr) | ||||||
|       (case value_ of |       (case value_ of | ||||||
|         Just (AtCost _mc)   -> ", valued at cost" |         Just (AtCost _mc)   -> ", valued at cost" | ||||||
|  |         Just (AtThen _mc)   -> error' "Sorry, --value=then is not yet implemented for this kind of report."  -- TODO | ||||||
|         Just (AtEnd _mc)    -> ", valued at period ends" |         Just (AtEnd _mc)    -> ", valued at period ends" | ||||||
|         Just (AtNow _mc)    -> ", current value" |         Just (AtNow _mc)    -> ", current value" | ||||||
|         -- XXX duplicates the above |         -- XXX duplicates the above | ||||||
|  | |||||||
| @ -358,9 +358,10 @@ valuationTypeFromRawOpts = lastMay . collectopts valuationfromrawopt | |||||||
|       | n == "value" = Just $ valuation v |       | n == "value" = Just $ valuation v | ||||||
|       | otherwise    = Nothing |       | otherwise    = Nothing | ||||||
|     valuation v |     valuation v | ||||||
|       | t `elem` ["cost","c"] = AtCost mc |       | t `elem` ["cost","c"]  = AtCost mc | ||||||
|       | t `elem` ["end" ,"e"] = AtEnd  mc |       | t `elem` ["then" ,"t"] = AtThen  mc | ||||||
|       | t `elem` ["now" ,"n"] = AtNow  mc |       | t `elem` ["end" ,"e"]  = AtEnd  mc | ||||||
|  |       | t `elem` ["now" ,"n"]  = AtNow  mc | ||||||
|       | otherwise = |       | otherwise = | ||||||
|           case parsedateM t of |           case parsedateM t of | ||||||
|             Just d  -> AtDate d mc |             Just d  -> AtDate d mc | ||||||
|  | |||||||
| @ -587,6 +587,7 @@ multiBalanceReportAsText ropts@ReportOpts{..} r = | |||||||
|       (showDateSpan $ periodicReportSpan r) |       (showDateSpan $ periodicReportSpan r) | ||||||
|       (case value_ of |       (case value_ of | ||||||
|         Just (AtCost _mc)   -> ", valued at cost" |         Just (AtCost _mc)   -> ", valued at cost" | ||||||
|  |         Just (AtThen _mc)   -> error' "Sorry, --value=then is not yet implemented for this kind of report."  -- TODO -- ", valued at period ends"  -- handled like AtEnd for now | ||||||
|         Just (AtEnd _mc)    -> ", valued at period ends" |         Just (AtEnd _mc)    -> ", valued at period ends" | ||||||
|         Just (AtNow _mc)    -> ", current value" |         Just (AtNow _mc)    -> ", current value" | ||||||
|         -- XXX duplicates the above |         -- XXX duplicates the above | ||||||
|  | |||||||
| @ -217,6 +217,7 @@ compoundBalanceCommand CompoundBalanceCommandSpec{..} opts@CliOpts{reportopts_=r | |||||||
| 
 | 
 | ||||||
|           valuationdesc = case value_ of |           valuationdesc = case value_ of | ||||||
|             Just (AtCost _mc)   -> ", valued at cost" |             Just (AtCost _mc)   -> ", valued at cost" | ||||||
|  |             Just (AtThen _mc)   -> error' "Sorry, --value=then is not yet implemented for this kind of report."  -- TODO | ||||||
|             Just (AtEnd _mc)    -> ", valued at period ends" |             Just (AtEnd _mc)    -> ", valued at period ends" | ||||||
|             Just (AtNow _mc)    -> ", current value" |             Just (AtNow _mc)    -> ", current value" | ||||||
|             Just (AtDefault _mc) | multiperiod   -> ", valued at period ends" |             Just (AtDefault _mc) | multiperiod   -> ", valued at period ends" | ||||||
|  | |||||||
| @ -8,7 +8,9 @@ m4_dnl  Lines beginning with m4_dnl are comments. | |||||||
| m4_dnl  Words enclosed in underscores are macros, defined in doc/common.m4. | m4_dnl  Words enclosed in underscores are macros, defined in doc/common.m4. | ||||||
| m4_dnl  Macro arguments are enclosed in (). Text literals are enclosed in {{}}. | m4_dnl  Macro arguments are enclosed in (). Text literals are enclosed in {{}}. | ||||||
| m4_dnl  Macros may depend on command line flags, configured in Shake.hs. | m4_dnl  Macros may depend on command line flags, configured in Shake.hs. | ||||||
| m4_dnl  In Emacs markdown-mode S-TAB cycles visibility, TAB toggles one section. | m4_dnl  In Emacs: | ||||||
|  | m4_dnl   markdown-mode S-TAB cycles visibility, TAB toggles one section. | ||||||
|  | m4_dnl   C-x n s on a heading narrows to that section (C-x n w to widen again). | ||||||
| 
 | 
 | ||||||
| m4_dnl Show these first headings only in man pages: | m4_dnl Show these first headings only in man pages: | ||||||
| _man_({{ | _man_({{ | ||||||
| @ -1131,10 +1133,11 @@ It is equivalent to `--value=now,COMM` or `--value=end,COMM`. | |||||||
| 
 | 
 | ||||||
| `-B`, `-V` and `-X` are special cases of the more general `--value` option: | `-B`, `-V` and `-X` are special cases of the more general `--value` option: | ||||||
| 
 | 
 | ||||||
|      --value=TYPE[,COMM]  TYPE is cost, end, now or YYYY-MM-DD. |      --value=TYPE[,COMM]  TYPE is cost, then, end, now or YYYY-MM-DD. | ||||||
|                           COMM is an optional commodity symbol. |                           COMM is an optional commodity symbol. | ||||||
|                           Shows amounts converted to: |                           Shows amounts converted to: | ||||||
|                           - cost commodity using transaction prices (then optionally to COMM using market prices at period end(s)) |                           - cost commodity using transaction prices (then optionally to COMM using market prices at period end(s)) | ||||||
|  |                           - default valuation commodity (or COMM) using market prices at posting dates | ||||||
|                           - default valuation commodity (or COMM) using market prices at period end(s) |                           - default valuation commodity (or COMM) using market prices at period end(s) | ||||||
|                           - default valuation commodity (or COMM) using current market prices |                           - default valuation commodity (or COMM) using current market prices | ||||||
|                           - default valuation commodity (or COMM) using market prices at some date |                           - default valuation commodity (or COMM) using market prices at some date | ||||||
| @ -1144,6 +1147,11 @@ The TYPE part basically selects either "cost", or "market value" plus a valuatio | |||||||
| `--value=cost` | `--value=cost` | ||||||
| : Convert amounts to cost, using the prices recorded in transactions. | : Convert amounts to cost, using the prices recorded in transactions. | ||||||
| 
 | 
 | ||||||
|  | `--value=then` | ||||||
|  | : Convert amounts to their value in a default valuation commodity, using market prices | ||||||
|  |   on each posting's date. This is currently supported only by the  | ||||||
|  |   [print](#print) and [register](#register) commands. | ||||||
|  | 
 | ||||||
| `--value=end` | `--value=end` | ||||||
| : Convert amounts to their value in a default valuation commodity, using market prices | : Convert amounts to their value in a default valuation commodity, using market prices | ||||||
|   on the last day of the report period (or if unspecified, the journal's end date); |   on the last day of the report period (or if unspecified, the journal's end date); | ||||||
| @ -1303,28 +1311,28 @@ Related: | |||||||
| [#329](https://github.com/simonmichael/hledger/issues/329), | [#329](https://github.com/simonmichael/hledger/issues/329), | ||||||
| [#1083](https://github.com/simonmichael/hledger/issues/1083). | [#1083](https://github.com/simonmichael/hledger/issues/1083). | ||||||
| 
 | 
 | ||||||
| | Report type                                     | `-B`, `--value=cost`                          | `-V`, `-X`                                       | `--value=end`                                      | `--value=DATE`, `--value=now`           | | | Report type                                     | `-B`, `--value=cost`                          | `-V`, `-X`                                       | `--value=then`                                                       | `--value=end`                                      | `--value=DATE`, `--value=now`           | | ||||||
| |-------------------------------------------------|-----------------------------------------------|--------------------------------------------------|----------------------------------------------------|-----------------------------------------| | |-------------------------------------------------|-----------------------------------------------|--------------------------------------------------|----------------------------------------------------------------------|----------------------------------------------------|-----------------------------------------| | ||||||
| | **print**                                       |                                               |                                                  |                                                    |                                         | | | **print**                                       |                                               |                                                  |                                                                      |                                                    |                                         | | ||||||
| | posting amounts                                 | cost                                          | value at report end or today                     | value at report or journal end                     | value at DATE/today                     | | | posting amounts                                 | cost                                          | value at report end or today                     | value at posting date                                                | value at report or journal end                     | value at DATE/today                     | | ||||||
| | balance assertions / assignments                | unchanged                                     | unchanged                                        | unchanged                                          | unchanged                               | | | balance assertions / assignments                | unchanged                                     | unchanged                                        | unchanged                                                            | unchanged                                          | unchanged                               | | ||||||
| | <br>                                            |                                               |                                                  |                                                    |                                         | | | <br>                                            |                                               |                                                  |                                                                      |                                                    |                                         | | ||||||
| | **register**                                    |                                               |                                                  |                                                    |                                         | | | **register**                                    |                                               |                                                  |                                                                      |                                                    |                                         | | ||||||
| | starting balance (with -H)                      | cost                                          | value at day before report or journal start      | value at day before report or journal start        | value at DATE/today                     | | | starting balance (with -H)                      | cost                                          | value at day before report or journal start      | sum of contemporaneous values of postings before report start ? TODO | value at day before report or journal start        | value at DATE/today                     | | ||||||
| | posting amounts (no report interval)            | cost                                          | value at report end or today                     | value at report or journal end                     | value at DATE/today                     | | | posting amounts (no report interval)            | cost                                          | value at report end or today                     | value at posting date                                                | value at report or journal end                     | value at DATE/today                     | | ||||||
| | summary posting amounts (with report interval)  | summarised cost                               | value at period ends                             | value at period ends                               | value at DATE/today                     | | | summary posting amounts (with report interval)  | summarised cost                               | value at period ends                             | sum of contemporaneous values of postings in interval                | value at period ends                               | value at DATE/today                     | | ||||||
| | running total/average                           | sum/average of displayed values               | sum/average of displayed values                  | sum/average of displayed values                    | sum/average of displayed values         | | | running total/average                           | sum/average of displayed values               | sum/average of displayed values                  | sum/average of displayed values                                      | sum/average of displayed values                    | sum/average of displayed values         | | ||||||
| | <br>                                            |                                               |                                                  |                                                    |                                         | | | <br>                                            |                                               |                                                  |                                                                      |                                                    |                                         | | ||||||
| | **balance (bs, bse, cf, is..)**                 |                                               |                                                  |                                                    |                                         | | | **balance (bs, bse, cf, is..)**                 |                                               |                                                  |                                                                      |                                                    |                                         | | ||||||
| | balances (no report interval)                   | sums of costs                                 | value at report end or today of sums of postings | value at report or journal end of sums of postings | value at DATE/today of sums of postings | | | balances (no report interval)                   | sums of costs                                 | value at report end or today of sums of postings | not supported                                                        | value at report or journal end of sums of postings | value at DATE/today of sums of postings | | ||||||
| | balances (with report interval)                 | sums of costs                                 | value at period ends of sums of postings         | value at period ends of sums of postings           | value at DATE/today of sums of postings | | | balances (with report interval)                 | sums of costs                                 | value at period ends of sums of postings         | not supported                                                        | value at period ends of sums of postings           | value at DATE/today of sums of postings | | ||||||
| | starting balances (with report interval and -H) | sums of costs of postings before report start | sums of postings before report start             | sums of postings before report start               | sums of postings before report start    | | | starting balances (with report interval and -H) | sums of costs of postings before report start | sums of postings before report start             | not supported                                                        | sums of postings before report start               | sums of postings before report start    | | ||||||
| | budget amounts with --budget                    | like balances                                 | like balances                                    | like balances                                      | like balances                           | | | budget amounts with --budget                    | like balances                                 | like balances                                    | not supported                                                        | like balances                                      | like balances                           | | ||||||
| | grand total (no report interval)                | sum of displayed values                       | sum of displayed values                          | sum of displayed values                            | sum of displayed values                 | | | grand total (no report interval)                | sum of displayed values                       | sum of displayed values                          | not supported                                                        | sum of displayed values                            | sum of displayed values                 | | ||||||
| | row totals/averages (with report interval)      | sums/averages of displayed values             | sums/averages of displayed values                | sums/averages of displayed values                  | sums/averages of displayed values       | | | row totals/averages (with report interval)      | sums/averages of displayed values             | sums/averages of displayed values                | not supported                                                        | sums/averages of displayed values                  | sums/averages of displayed values       | | ||||||
| | column totals                                   | sums of displayed values                      | sums of displayed values                         | sums of displayed values                           | sums of displayed values                | | | column totals                                   | sums of displayed values                      | sums of displayed values                         | not supported                                                        | sums of displayed values                           | sums of displayed values                | | ||||||
| | grand total/average                             | sum/average of column totals                  | sum/average of column totals                     | sum/average of column totals                       | sum/average of column totals            | | | grand total/average                             | sum/average of column totals                  | sum/average of column totals                     | not supported                                                        | sum/average of column totals                       | sum/average of column totals            | | ||||||
| | <br>                                            |                                               |                                                  |                                                    |                                         | | | <br>                                            |                                               |                                                  |                                                                      |                                                    |                                         | | ||||||
| 
 | 
 | ||||||
| **Additional notes** | **Additional notes** | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -148,7 +148,20 @@ $ hledger -f- print --value=cost | |||||||
| 
 | 
 | ||||||
| >=0 | >=0 | ||||||
| 
 | 
 | ||||||
| # 10. print value using prices on last day of report period (2000-02-29) | # 10. print value using market prices on each transaction's (posting's) date | ||||||
|  | $ hledger -f- print --value=then | ||||||
|  | 2000-01-01 | ||||||
|  |     (a)             1 B | ||||||
|  | 
 | ||||||
|  | 2000-02-01 | ||||||
|  |     (a)             2 B | ||||||
|  | 
 | ||||||
|  | 2000-03-01 | ||||||
|  |     (a)             3 B | ||||||
|  | 
 | ||||||
|  | >=0 | ||||||
|  | 
 | ||||||
|  | # 11. print value using prices on last day of report period (2000-02-29) | ||||||
| $ hledger -f- print --value=end date:2000/01-2000/03 | $ hledger -f- print --value=end date:2000/01-2000/03 | ||||||
| 2000-01-01 | 2000-01-01 | ||||||
|     (a)             2 B |     (a)             2 B | ||||||
| @ -158,7 +171,7 @@ $ hledger -f- print --value=end date:2000/01-2000/03 | |||||||
| 
 | 
 | ||||||
| >=0 | >=0 | ||||||
| 
 | 
 | ||||||
| # 11. print value using prices on last day of report period (no period specified) | # 12. print value using prices on last day of report period (no period specified) | ||||||
| # specified - uses last day of journal (2000-03-01) | # specified - uses last day of journal (2000-03-01) | ||||||
| $ hledger -f- print --value=end | $ hledger -f- print --value=end | ||||||
| 2000-01-01 | 2000-01-01 | ||||||
| @ -172,7 +185,7 @@ $ hledger -f- print --value=end | |||||||
| 
 | 
 | ||||||
| >=0 | >=0 | ||||||
| 
 | 
 | ||||||
| # 12. print value using prices on a specified date | # 13. print value using prices on a specified date | ||||||
| $ hledger -f- print --value=2000-01-15 | $ hledger -f- print --value=2000-01-15 | ||||||
| 2000-01-01 | 2000-01-01 | ||||||
|     (a)             5 B |     (a)             5 B | ||||||
| @ -185,7 +198,7 @@ $ hledger -f- print --value=2000-01-15 | |||||||
| 
 | 
 | ||||||
| >=0 | >=0 | ||||||
| 
 | 
 | ||||||
| # 13. print value using prices today | # 14. print value using prices today | ||||||
| # (assuming today's date is >= 2000-04-01) | # (assuming today's date is >= 2000-04-01) | ||||||
| $ hledger -f- print --value=now | $ hledger -f- print --value=now | ||||||
| 2000-01-01 | 2000-01-01 | ||||||
| @ -201,31 +214,37 @@ $ hledger -f- print --value=now | |||||||
| 
 | 
 | ||||||
| # register | # register | ||||||
| 
 | 
 | ||||||
| # 14. register report valued at cost. | # 15. register report valued at cost. | ||||||
| $ hledger -f- reg --value=cost | $ hledger -f- reg --value=cost | ||||||
| 2000-01-01                      (a)                            6 B           6 B | 2000-01-01                      (a)                            6 B           6 B | ||||||
| 2000-02-01                      (a)                            7 B          13 B | 2000-02-01                      (a)                            7 B          13 B | ||||||
| 2000-03-01                      (a)                            8 B          21 B | 2000-03-01                      (a)                            8 B          21 B | ||||||
|   |   | ||||||
| # 15. register report valued at period end | # 16. register report valued at posting dates | ||||||
|  | $ hledger -f- reg --value=then | ||||||
|  | 2000-01-01                      (a)                            1 B           1 B | ||||||
|  | 2000-02-01                      (a)                            2 B           3 B | ||||||
|  | 2000-03-01                      (a)                            3 B           6 B | ||||||
|  | 
 | ||||||
|  | # 17. register report valued at period end | ||||||
| $ hledger -f- reg --value=end | $ hledger -f- reg --value=end | ||||||
| 2000-01-01                      (a)                            3 B           3 B | 2000-01-01                      (a)                            3 B           3 B | ||||||
| 2000-02-01                      (a)                            3 B           6 B | 2000-02-01                      (a)                            3 B           6 B | ||||||
| 2000-03-01                      (a)                            3 B           9 B | 2000-03-01                      (a)                            3 B           9 B | ||||||
| 
 | 
 | ||||||
| # 16. register report valued at specified date | # 18. register report valued at specified date | ||||||
| $ hledger -f- reg --value=2000-01-15 | $ hledger -f- reg --value=2000-01-15 | ||||||
| 2000-01-01                      (a)                            5 B           5 B | 2000-01-01                      (a)                            5 B           5 B | ||||||
| 2000-02-01                      (a)                            5 B          10 B | 2000-02-01                      (a)                            5 B          10 B | ||||||
| 2000-03-01                      (a)                            5 B          15 B | 2000-03-01                      (a)                            5 B          15 B | ||||||
| 
 | 
 | ||||||
| # 17. register report valued today | # 19. register report valued today | ||||||
| $ hledger -f- reg --value=now | $ hledger -f- reg --value=now | ||||||
| 2000-01-01                      (a)                            4 B           4 B | 2000-01-01                      (a)                            4 B           4 B | ||||||
| 2000-02-01                      (a)                            4 B           8 B | 2000-02-01                      (a)                            4 B           8 B | ||||||
| 2000-03-01                      (a)                            4 B          12 B | 2000-03-01                      (a)                            4 B          12 B | ||||||
| 
 | 
 | ||||||
| # 18. single-period register report valued at default date (same as --value=now) | # 20. single-period register report valued at default date (same as --value=now) | ||||||
| $ hledger -f- reg -V | $ hledger -f- reg -V | ||||||
| 2000-01-01                      (a)                            4 B           4 B | 2000-01-01                      (a)                            4 B           4 B | ||||||
| 2000-02-01                      (a)                            4 B           8 B | 2000-02-01                      (a)                            4 B           8 B | ||||||
| @ -233,19 +252,19 @@ $ hledger -f- reg -V | |||||||
| 
 | 
 | ||||||
| # register with -H (starting balance) | # register with -H (starting balance) | ||||||
| 
 | 
 | ||||||
| # 19. register with starting balance, valued at cost. | # 21. register with starting balance, valued at cost. | ||||||
| $ hledger -f- reg --value=cost -b 200002 -H | $ hledger -f- reg --value=cost -b 200002 -H | ||||||
| 2000-02-01                      (a)                            7 B          13 B | 2000-02-01                      (a)                            7 B          13 B | ||||||
| 2000-03-01                      (a)                            8 B          21 B | 2000-03-01                      (a)                            8 B          21 B | ||||||
|   |   | ||||||
| # 20. register with starting balance, valued at period end. | # 22. register with starting balance, valued at period end. | ||||||
| # That is unspecified so the last posting date is used, ie 2000/3/1, so the price is 3 B. | # That is unspecified so the last posting date is used, ie 2000/3/1, so the price is 3 B. | ||||||
| # Starting balance is 5 B as above. | # Starting balance is 5 B as above. | ||||||
| $ hledger -f- reg --value=end -b 200002 -H | $ hledger -f- reg --value=end -b 200002 -H | ||||||
| 2000-02-01                      (a)                            3 B           8 B | 2000-02-01                      (a)                            3 B           8 B | ||||||
| 2000-03-01                      (a)                            3 B          11 B | 2000-03-01                      (a)                            3 B          11 B | ||||||
| 
 | 
 | ||||||
| # 21. register with starting balance, valued at specified date (when the price is 5 B). | # 23. register with starting balance, valued at specified date (when the price is 5 B). | ||||||
| # Starting balance is 5 B as above. | # Starting balance is 5 B as above. | ||||||
| $ hledger -f- reg --value=2000-01-15 -b 200002 -H | $ hledger -f- reg --value=2000-01-15 -b 200002 -H | ||||||
| 2000-02-01                      (a)                            5 B          10 B | 2000-02-01                      (a)                            5 B          10 B | ||||||
| @ -253,7 +272,7 @@ $ hledger -f- reg --value=2000-01-15 -b 200002 -H | |||||||
| 
 | 
 | ||||||
| # register, periodic | # register, periodic | ||||||
| 
 | 
 | ||||||
| # 22. periodic register report valued at cost. | # 24. periodic register report valued at cost. | ||||||
| # The total for january is 6 B (1 A valued at 1/1, price 1 B, and 1 A | # The total for january is 6 B (1 A valued at 1/1, price 1 B, and 1 A | ||||||
| # valued at 1/20, price 5 B). | # valued at 1/20, price 5 B). | ||||||
| # Need an extra transaction for this test: | # Need an extra transaction for this test: | ||||||
| @ -298,25 +317,25 @@ P 2000/04/01 A  4 B | |||||||
| 2000/03/01 | 2000/03/01 | ||||||
|   (a)      1 A @ 8 B |   (a)      1 A @ 8 B | ||||||
| 
 | 
 | ||||||
| # 23. periodic register report valued at period end | # 25. periodic register report valued at period end | ||||||
| $ hledger -f- reg --value=end -M | $ hledger -f- reg --value=end -M | ||||||
| 2000/01                 a                                      5 B           5 B | 2000/01                 a                                      5 B           5 B | ||||||
| 2000/02                 a                                      2 B           7 B | 2000/02                 a                                      2 B           7 B | ||||||
| 2000/03                 a                                      3 B          10 B | 2000/03                 a                                      3 B          10 B | ||||||
| 
 | 
 | ||||||
| # 24. periodic register report valued at specified date | # 26. periodic register report valued at specified date | ||||||
| $ hledger -f- reg --value=2000-01-15 -M | $ hledger -f- reg --value=2000-01-15 -M | ||||||
| 2000/01                 a                                      5 B           5 B | 2000/01                 a                                      5 B           5 B | ||||||
| 2000/02                 a                                      5 B          10 B | 2000/02                 a                                      5 B          10 B | ||||||
| 2000/03                 a                                      5 B          15 B | 2000/03                 a                                      5 B          15 B | ||||||
| 
 | 
 | ||||||
| # 25. periodic register report valued today | # 27. periodic register report valued today | ||||||
| $ hledger -f- reg --value=now -M | $ hledger -f- reg --value=now -M | ||||||
| 2000/01                 a                                      4 B           4 B | 2000/01                 a                                      4 B           4 B | ||||||
| 2000/02                 a                                      4 B           8 B | 2000/02                 a                                      4 B           8 B | ||||||
| 2000/03                 a                                      4 B          12 B | 2000/03                 a                                      4 B          12 B | ||||||
| 
 | 
 | ||||||
| # 26. periodic register report valued at default date (same as --value=end) | # 28. periodic register report valued at default date (same as --value=end) | ||||||
| $ hledger -f- reg -V -M | $ hledger -f- reg -V -M | ||||||
| 2000/01                 a                                      5 B           5 B | 2000/01                 a                                      5 B           5 B | ||||||
| 2000/02                 a                                      2 B           7 B | 2000/02                 a                                      2 B           7 B | ||||||
| @ -324,29 +343,29 @@ $ hledger -f- reg -V -M | |||||||
| 
 | 
 | ||||||
| # balance | # balance | ||||||
| 
 | 
 | ||||||
| # 27. single column balance report valued at cost | # 29. single column balance report valued at cost | ||||||
| $ hledger -f- bal -N --value=cost | $ hledger -f- bal -N --value=cost | ||||||
|                 21 B  a |                 21 B  a | ||||||
|   |   | ||||||
| # 28. single column balance report valued at period end | # 30. single column balance report valued at period end | ||||||
| $ hledger -f- bal -N --value=end | $ hledger -f- bal -N --value=end | ||||||
|                  9 B  a |                  9 B  a | ||||||
| 
 | 
 | ||||||
| # 29. single column balance report valued at specified date | # 31. single column balance report valued at specified date | ||||||
| $ hledger -f- bal -N --value=2000-01-15 | $ hledger -f- bal -N --value=2000-01-15 | ||||||
|                 15 B  a |                 15 B  a | ||||||
| 
 | 
 | ||||||
| # 30. single column balance report valued today | # 32. single column balance report valued today | ||||||
| $ hledger -f- bal -N --value=now | $ hledger -f- bal -N --value=now | ||||||
|                 12 B  a |                 12 B  a | ||||||
| 
 | 
 | ||||||
| # 31. single column balance report valued at default date (same as --value=now) | # 33. single column balance report valued at default date (same as --value=now) | ||||||
| $ hledger -f- bal -N -V | $ hledger -f- bal -N -V | ||||||
|                 12 B  a |                 12 B  a | ||||||
| 
 | 
 | ||||||
| # balance, periodic | # balance, periodic | ||||||
| 
 | 
 | ||||||
| # 32. multicolumn balance report valued at cost | # 34. multicolumn balance report valued at cost | ||||||
| $ hledger -f- bal -MTA --value=cost | $ hledger -f- bal -MTA --value=cost | ||||||
| Balance changes in 2000q1, valued at cost: | Balance changes in 2000q1, valued at cost: | ||||||
| 
 | 
 | ||||||
| @ -356,7 +375,7 @@ Balance changes in 2000q1, valued at cost: | |||||||
| ---++--------------------------------- | ---++--------------------------------- | ||||||
|    || 6 B  7 B  8 B     21 B      7 B  |    || 6 B  7 B  8 B     21 B      7 B  | ||||||
|   |   | ||||||
| # 33. multicolumn balance report valued at period end | # 35. multicolumn balance report valued at period end | ||||||
| $ hledger -f- bal -M --value=end | $ hledger -f- bal -M --value=end | ||||||
| Balance changes in 2000q1, valued at period ends: | Balance changes in 2000q1, valued at period ends: | ||||||
| 
 | 
 | ||||||
| @ -366,7 +385,7 @@ Balance changes in 2000q1, valued at period ends: | |||||||
| ---++--------------- | ---++--------------- | ||||||
|    || 5 B  2 B  3 B  |    || 5 B  2 B  3 B  | ||||||
| 
 | 
 | ||||||
| # 34. multicolumn balance report valued at period end with -T or -A | # 36. multicolumn balance report valued at period end with -T or -A | ||||||
| $ hledger -f- bal -MTA --value=end | $ hledger -f- bal -MTA --value=end | ||||||
| Balance changes in 2000q1, valued at period ends: | Balance changes in 2000q1, valued at period ends: | ||||||
| 
 | 
 | ||||||
| @ -376,7 +395,7 @@ Balance changes in 2000q1, valued at period ends: | |||||||
| ---++--------------------------------- | ---++--------------------------------- | ||||||
|    || 5 B  2 B  3 B     10 B      3 B  |    || 5 B  2 B  3 B     10 B      3 B  | ||||||
| 
 | 
 | ||||||
| # 35. multicolumn balance report valued at other date | # 37. multicolumn balance report valued at other date | ||||||
| $ hledger -f- bal -MTA --value=2000-01-15 | $ hledger -f- bal -MTA --value=2000-01-15 | ||||||
| Balance changes in 2000q1, valued at 2000-01-15: | Balance changes in 2000q1, valued at 2000-01-15: | ||||||
| 
 | 
 | ||||||
| @ -386,7 +405,7 @@ Balance changes in 2000q1, valued at 2000-01-15: | |||||||
| ---++--------------------------------- | ---++--------------------------------- | ||||||
|    || 5 B  5 B  5 B     15 B      5 B  |    || 5 B  5 B  5 B     15 B      5 B  | ||||||
| 
 | 
 | ||||||
| # 36. multicolumn balance report valued today (with today >= 2000-04-01) | # 38. multicolumn balance report valued today (with today >= 2000-04-01) | ||||||
| $ hledger -f- bal -M --value=now | $ hledger -f- bal -M --value=now | ||||||
| Balance changes in 2000q1, current value: | Balance changes in 2000q1, current value: | ||||||
| 
 | 
 | ||||||
| @ -396,7 +415,7 @@ Balance changes in 2000q1, current value: | |||||||
| ---++--------------- | ---++--------------- | ||||||
|    || 4 B  4 B  4 B  |    || 4 B  4 B  4 B  | ||||||
| 
 | 
 | ||||||
| # 37. multicolumn balance report valued at default date (same as --value=end) | # 39. multicolumn balance report valued at default date (same as --value=end) | ||||||
| $ hledger -f- bal -M -V | $ hledger -f- bal -M -V | ||||||
| Balance changes in 2000q1, valued at period ends: | Balance changes in 2000q1, valued at period ends: | ||||||
| 
 | 
 | ||||||
| @ -408,7 +427,7 @@ Balance changes in 2000q1, valued at period ends: | |||||||
| 
 | 
 | ||||||
| # balance, periodic, with -H (starting balance and accumulating across periods) | # balance, periodic, with -H (starting balance and accumulating across periods) | ||||||
| 
 | 
 | ||||||
| # 38. multicolumn balance report with -H, valued at cost. | # 40. multicolumn balance report with -H, valued at cost. | ||||||
| # The starting balance on 2000/01/01 is 6 B (cost of the first 2 A). | # The starting balance on 2000/01/01 is 6 B (cost of the first 2 A). | ||||||
| # February adds 1 A costing 7 B, making 13 B. | # February adds 1 A costing 7 B, making 13 B. | ||||||
| # March adds 1 A costing 8 B, making 21 B. | # March adds 1 A costing 8 B, making 21 B. | ||||||
| @ -421,7 +440,7 @@ Ending balances (historical) in 2000-02-01-2000-03-31, valued at cost: | |||||||
| ---++------------------------ | ---++------------------------ | ||||||
|    ||       13 B        21 B  |    ||       13 B        21 B  | ||||||
|   |   | ||||||
| # 39. multicolumn balance report with -H valued at period end. | # 41. multicolumn balance report with -H valued at period end. | ||||||
| # The starting balance is 1 A. | # The starting balance is 1 A. | ||||||
| # February adds 1 A making 2 A, which is valued at 2000/02/29 as 4 B. | # February adds 1 A making 2 A, which is valued at 2000/02/29 as 4 B. | ||||||
| # March adds 1 A making 3 A, which is valued at 2000/03/31 as 9 B. | # March adds 1 A making 3 A, which is valued at 2000/03/31 as 9 B. | ||||||
| @ -434,7 +453,7 @@ Ending balances (historical) in 2000-02-01-2000-03-31, valued at period ends: | |||||||
| ---++--------------------------------- | ---++--------------------------------- | ||||||
|    ||        4 B         9 B      6 B  |    ||        4 B         9 B      6 B  | ||||||
| 
 | 
 | ||||||
| # 40. multicolumn balance report with -H valued at other date. | # 42. multicolumn balance report with -H valued at other date. | ||||||
| # The starting balance is 5 B (1 A valued at 2000/1/15). | # The starting balance is 5 B (1 A valued at 2000/1/15). | ||||||
| $ hledger -f- bal -M -H -b 200002 --value=2000-01-15 | $ hledger -f- bal -M -H -b 200002 --value=2000-01-15 | ||||||
| Ending balances (historical) in 2000-02-01-2000-03-31, valued at 2000-01-15: | Ending balances (historical) in 2000-02-01-2000-03-31, valued at 2000-01-15: | ||||||
| @ -445,7 +464,7 @@ Ending balances (historical) in 2000-02-01-2000-03-31, valued at 2000-01-15: | |||||||
| ---++------------------------ | ---++------------------------ | ||||||
|    ||       10 B        15 B  |    ||       10 B        15 B  | ||||||
| 
 | 
 | ||||||
| # 41. multicolumn balance report with -H, valuing each period's carried-over balances at cost. | # 43. multicolumn balance report with -H, valuing each period's carried-over balances at cost. | ||||||
| < | < | ||||||
| P 2000/01/01 A  1 B | P 2000/01/01 A  1 B | ||||||
| P 2000/01/15 A  5 B | P 2000/01/15 A  5 B | ||||||
| @ -465,7 +484,7 @@ Ending balances (historical) in 2000q1, valued at cost: | |||||||
| ---++------------------------------------ | ---++------------------------------------ | ||||||
|    ||        6 B         6 B         6 B  |    ||        6 B         6 B         6 B  | ||||||
| 
 | 
 | ||||||
| # 42. multicolumn balance report with -H, valuing each period's carried-over balances at period end. | # 44. multicolumn balance report with -H, valuing each period's carried-over balances at period end. | ||||||
| # Unrelated, also -H always disables -T. | # Unrelated, also -H always disables -T. | ||||||
| $ hledger -f- bal -META -H -p200001-200004 --value=e | $ hledger -f- bal -META -H -p200001-200004 --value=e | ||||||
| Ending balances (historical) in 2000q1, valued at period ends: | Ending balances (historical) in 2000q1, valued at period ends: | ||||||
| @ -476,7 +495,7 @@ Ending balances (historical) in 2000q1, valued at period ends: | |||||||
| ---++--------------------------------------------- | ---++--------------------------------------------- | ||||||
|    ||        5 B         2 B         3 B      3 B  |    ||        5 B         2 B         3 B      3 B  | ||||||
| 
 | 
 | ||||||
| # 43. multicolumn balance report with -H, valuing each period's carried-over balances at other date. | # 45. multicolumn balance report with -H, valuing each period's carried-over balances at other date. | ||||||
| $ hledger -f- bal -ME -H -p200001-200004 --value=2000-01-15 | $ hledger -f- bal -ME -H -p200001-200004 --value=2000-01-15 | ||||||
| Ending balances (historical) in 2000q1, valued at 2000-01-15: | Ending balances (historical) in 2000q1, valued at 2000-01-15: | ||||||
| 
 | 
 | ||||||
| @ -508,7 +527,7 @@ P 2000/04/01 A  4 B | |||||||
| 2000/03/01 | 2000/03/01 | ||||||
|   (a)      1 A @ 8 B |   (a)      1 A @ 8 B | ||||||
| 
 | 
 | ||||||
| # 44. budget report, unvalued (for reference). | # 46. budget report, unvalued (for reference). | ||||||
| $ hledger -f- bal -M --budget | $ hledger -f- bal -M --budget | ||||||
| Budget performance in 2000q1: | Budget performance in 2000q1: | ||||||
| 
 | 
 | ||||||
| @ -518,7 +537,7 @@ Budget performance in 2000q1: | |||||||
| ---++------------------------------------------------------------ | ---++------------------------------------------------------------ | ||||||
|    || 1 A [  50% of 2 A]  1 A [  50% of 2 A]  1 A [  50% of 2 A]  |    || 1 A [  50% of 2 A]  1 A [  50% of 2 A]  1 A [  50% of 2 A]  | ||||||
| 
 | 
 | ||||||
| # 45. budget report, valued at cost.  | # 47. budget report, valued at cost.  | ||||||
| $ hledger -f- bal -MTA --budget --value=c | $ hledger -f- bal -MTA --budget --value=c | ||||||
| Budget performance in 2000q1, valued at cost: | Budget performance in 2000q1, valued at cost: | ||||||
| 
 | 
 | ||||||
| @ -528,7 +547,7 @@ Budget performance in 2000q1, valued at cost: | |||||||
| ---++----------------------------------------------------------------------------------------------------- | ---++----------------------------------------------------------------------------------------------------- | ||||||
|    || 6 B [ 300% of 2 B]  7 B [ 350% of 2 B]  8 B [ 400% of 2 B]  21 B [ 350% of 6 B]  7 B [ 350% of 2 B]  |    || 6 B [ 300% of 2 B]  7 B [ 350% of 2 B]  8 B [ 400% of 2 B]  21 B [ 350% of 6 B]  7 B [ 350% of 2 B]  | ||||||
| 
 | 
 | ||||||
| # 46. budget report, valued at period ends. | # 48. budget report, valued at period ends. | ||||||
| $ hledger -f- bal -MTA --budget --value=e | $ hledger -f- bal -MTA --budget --value=e | ||||||
| Budget performance in 2000q1, valued at period ends: | Budget performance in 2000q1, valued at period ends: | ||||||
| 
 | 
 | ||||||
| @ -538,7 +557,7 @@ Budget performance in 2000q1, valued at period ends: | |||||||
| ---++---------------------------------------------------------------------------------------------------------- | ---++---------------------------------------------------------------------------------------------------------- | ||||||
|    || 5 B [  50% of 10 B]  2 B [  50% of  4 B]  3 B [  50% of  6 B]  10 B [  50% of 20 B]  3 B [  50% of  7 B]  |    || 5 B [  50% of 10 B]  2 B [  50% of  4 B]  3 B [  50% of  6 B]  10 B [  50% of 20 B]  3 B [  50% of  7 B]  | ||||||
| 
 | 
 | ||||||
| # 47. budget report, valued at other date. | # 49. budget report, valued at other date. | ||||||
| $ hledger -f- bal -MTA --budget --value=2000-01-15 | $ hledger -f- bal -MTA --budget --value=2000-01-15 | ||||||
| Budget performance in 2000q1, valued at 2000-01-15: | Budget performance in 2000q1, valued at 2000-01-15: | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user