Restore the --gain option, for showing gain/loss
This commit is contained in:
parent
f440fcd8b0
commit
4a43c22172
2 changed files with 85 additions and 1 deletions
20
src/report.h
20
src/report.h
|
|
@ -386,7 +386,25 @@ public:
|
|||
OPTION(report_t, flat);
|
||||
OPTION(report_t, forecast_while_);
|
||||
OPTION(report_t, format_); // -F
|
||||
OPTION(report_t, gain); // -G
|
||||
|
||||
OPTION_(report_t, gain, DO() { // -G
|
||||
parent->HANDLER(revalued).on_only();
|
||||
parent->HANDLER(amount_).set_expr("(amount, cost)");
|
||||
// Since we are displaying the amounts of revalued transactions, they
|
||||
// will end up being composite totals, and hence a pair of pairs.
|
||||
parent->HANDLER(display_amount_)
|
||||
.set_expr("is_seq(get_at(amount_expr, 0)) ?"
|
||||
" get_at(get_at(amount_expr, 0), 0) :"
|
||||
" market(get_at(amount_expr, 0), date, exchange) -"
|
||||
" get_at(amount_expr, 1)");
|
||||
parent->HANDLER(revalued_total_)
|
||||
.set_expr("(market(get_at(total_expr, 0), date, exchange), "
|
||||
"get_at(total_expr, 1))");
|
||||
parent->HANDLER(display_total_)
|
||||
.set_expr("market(get_at(total_expr, 0), date, exchange)"
|
||||
" - get_at(total_expr, 1)");
|
||||
});
|
||||
|
||||
OPTION(report_t, head_);
|
||||
|
||||
OPTION_(report_t, invert, DO() {
|
||||
|
|
|
|||
66
test/baseline/opt-gain.test
Normal file
66
test/baseline/opt-gain.test
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
reg --gain stocks
|
||||
<<<
|
||||
2009/01/01 Sample 1a
|
||||
Assets:Brokerage:Stocks 100 S
|
||||
Assets:Brokerage:Cash -100 P
|
||||
|
||||
P 2009/01/15 00:00:00 S 2 P
|
||||
|
||||
2009/02/01 Sample 2a
|
||||
Assets:Brokerage:Stocks 100 S @ 1 P
|
||||
Assets:Brokerage:Cash
|
||||
|
||||
P 2009/02/01 00:00:00 S 4 P
|
||||
|
||||
2009/03/01 Sample 3a
|
||||
Assets:Brokerage:Stocks 100 S @@ 100 P
|
||||
Assets:Brokerage:Cash
|
||||
|
||||
P 2009/03/01 00:00:00 S 8 P
|
||||
|
||||
2009/04/01 Sample 4a
|
||||
Assets:Brokerage:Cash 100 P
|
||||
Assets:Brokerage:Stocks -100 S {1 P}
|
||||
|
||||
P 2009/04/01 00:00:00 S 16 P
|
||||
|
||||
; In this usage case, the top amount is always secondary
|
||||
; 2010/01/01 Sample 1b
|
||||
; Assets:Brokerage:Cash -100 P
|
||||
; Assets:Brokerage:Stocks 100 S
|
||||
;
|
||||
; P 2010/01/01 00:00:00 S 2 P
|
||||
|
||||
2010/02/01 Sample 2b
|
||||
Assets:Brokerage:Cash
|
||||
Assets:Brokerage:Stocks 100 S @ 1 P
|
||||
|
||||
P 2010/02/01 00:00:00 S 4 P
|
||||
|
||||
2010/03/01 Sample 3b
|
||||
Assets:Brokerage:Cash
|
||||
Assets:Brokerage:Stocks 100 S @@ 100 P
|
||||
|
||||
P 2010/03/01 00:00:00 S 8 P
|
||||
|
||||
2010/04/01 Sample 4b
|
||||
Assets:Brokerage:Stocks -100 S {1 P}
|
||||
Assets:Brokerage:Cash 100 P
|
||||
|
||||
P 2010/04/01 00:00:00 S 16 P
|
||||
>>>1
|
||||
09-Jan-01 Sample 1a As:Brokerage:Stocks 0 0
|
||||
09-Feb-01 Commodities revalued <Revalued> 300 P 300 P
|
||||
09-Feb-01 Sample 2a As:Brokerage:Stocks 300 P 600 P
|
||||
09-Mar-01 Commodities revalued <Revalued> 800 P 1400 P
|
||||
09-Mar-01 Sample 3a As:Brokerage:Stocks 700 P 2100 P
|
||||
09-Apr-01 Commodities revalued <Revalued> 2400 P 4500 P
|
||||
09-Apr-01 Sample 4a As:Brokerage:Stocks -1500 P 3000 P
|
||||
10-Feb-01 Commodities revalued <Revalued> -2400 P 600 P
|
||||
10-Feb-01 Sample 2b As:Brokerage:Stocks 300 P 900 P
|
||||
10-Mar-01 Commodities revalued <Revalued> 1200 P 2100 P
|
||||
10-Mar-01 Sample 3b As:Brokerage:Stocks 700 P 2800 P
|
||||
10-Apr-01 Commodities revalued <Revalued> 3200 P 6000 P
|
||||
10-Apr-01 Sample 4b As:Brokerage:Stocks -1500 P 4500 P
|
||||
>>>2
|
||||
=== 0
|
||||
Loading…
Add table
Reference in a new issue