Fixed the behavior of fn_nail_down
This commit is contained in:
parent
929a734a30
commit
318b5f49ff
3 changed files with 238 additions and 45 deletions
|
|
@ -743,12 +743,20 @@ value_t report_t::fn_commodity(call_scope_t& args)
|
||||||
value_t report_t::fn_nail_down(call_scope_t& args)
|
value_t report_t::fn_nail_down(call_scope_t& args)
|
||||||
{
|
{
|
||||||
value_t arg0(args[0]);
|
value_t arg0(args[0]);
|
||||||
|
value_t arg1(args[1]);
|
||||||
|
|
||||||
switch (arg0.type()) {
|
switch (arg0.type()) {
|
||||||
case value_t::AMOUNT: {
|
case value_t::AMOUNT: {
|
||||||
amount_t tmp(arg0.as_amount());
|
amount_t tmp(arg0.as_amount());
|
||||||
if (tmp.has_commodity())
|
if (tmp.has_commodity() && ! arg1.is_null()) {
|
||||||
tmp.set_commodity(tmp.commodity()
|
expr_t value_expr(is_expr(arg1) ?
|
||||||
.nail_down(args[1].as_any<expr_t::ptr_op_t>()));
|
as_expr(arg1) : expr_t::op_t::wrap_value(arg1 / arg0));
|
||||||
|
std::ostringstream buf;
|
||||||
|
value_expr.print(buf);
|
||||||
|
value_expr.set_text(buf.str());
|
||||||
|
|
||||||
|
tmp.set_commodity(tmp.commodity().nail_down(value_expr));
|
||||||
|
}
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -89,15 +89,11 @@ account Expenses:Food5
|
||||||
|
|
||||||
test reg -V food
|
test reg -V food
|
||||||
12-Mar-02 KFC Expenses:Food2 2 EUR 2 EUR
|
12-Mar-02 KFC Expenses:Food2 2 EUR 2 EUR
|
||||||
12-Mar-03 KFC <Adjustment> -1 EUR 1 EUR
|
12-Mar-03 KFC Expenses:Food3 3 EUR 5 EUR
|
||||||
Expenses:Food3 3 EUR 4 EUR
|
12-Mar-04 KFC Expenses:Food4 4 EUR 9 EUR
|
||||||
12-Mar-04 KFC <Adjustment> -2 EUR 2 EUR
|
12-Mar-05 KFC Expenses:Food5 5 EUR 14 EUR
|
||||||
Expenses:Food4 4 EUR 6 EUR
|
12-Mar-06 KFC Expenses:Food6 6 EUR 20 EUR
|
||||||
12-Mar-05 KFC <Adjustment> -3 EUR 3 EUR
|
12-Mar-07 KFC Expenses:Food7 7 EUR 27 EUR
|
||||||
Expenses:Food5 5 EUR 8 EUR
|
12-Mar-08 XACT Expenses:Food8 8 EUR 35 EUR
|
||||||
12-Mar-06 KFC <Adjustment> -4 EUR 4 EUR
|
12-Mar-09 POST (Expenses:Food9) 9 EUR 44 EUR
|
||||||
Expenses:Food6 6 EUR 10 EUR
|
|
||||||
12-Mar-07 KFC Expenses:Food7 7 EUR 17 EUR
|
|
||||||
12-Mar-08 XACT Expenses:Food8 8 EUR 25 EUR
|
|
||||||
12-Mar-09 POST (Expenses:Food9) 9 EUR 34 EUR
|
|
||||||
end test
|
end test
|
||||||
|
|
|
||||||
|
|
@ -1,61 +1,250 @@
|
||||||
2012-03-01 Broker
|
D EUR 2.000,00
|
||||||
Assets:Stocks 10 APPL {$1} @ $1
|
|
||||||
|
P 2011-12-15 $ EUR 2
|
||||||
|
P 2011-12-15 AAPL $5.00
|
||||||
|
|
||||||
|
2012-01-01 Broker
|
||||||
|
Assets:Stocks 10 AAPL {$1} @ $10
|
||||||
Equity
|
Equity
|
||||||
|
|
||||||
2012-03-02 Broker
|
P 2012-01-15 AAPL $15.00
|
||||||
Assets:Stocks 10 APPL {$1} @ $2
|
|
||||||
|
2012-02-02 Broker
|
||||||
|
Assets:Stocks 10 AAPL {$2} @ $20
|
||||||
Equity
|
Equity
|
||||||
|
|
||||||
|
P 2012-02-15 AAPL $25.00
|
||||||
|
|
||||||
2012-03-03 Broker
|
2012-03-03 Broker
|
||||||
Assets:Stocks 10 APPL {$1} @ $3
|
Assets:Stocks 10 AAPL {$3} @ $30
|
||||||
Equity
|
Equity
|
||||||
|
|
||||||
2012-03-04 Broker
|
P 2012-03-15 AAPL $35.00
|
||||||
Assets:Stocks 10 APPL {$1} @ $4
|
|
||||||
|
2012-04-04 Broker
|
||||||
|
Assets:Stocks 10 AAPL {$4} @ $40
|
||||||
Equity
|
Equity
|
||||||
|
|
||||||
2012-03-05 Broker
|
P 2012-04-15 AAPL $45.00
|
||||||
Assets:Stocks 10 APPL {$1} @ $5
|
|
||||||
|
2012-05-05 Broker
|
||||||
|
Assets:Stocks 10 AAPL {$5} @ $50
|
||||||
Equity
|
Equity
|
||||||
|
|
||||||
|
P 2012-5-15 AAPL $55.00
|
||||||
|
|
||||||
|
test reg stocks
|
||||||
|
12-Jan-01 Broker Assets:Stocks 10 AAPL 10 AAPL
|
||||||
|
12-Feb-02 Broker Assets:Stocks 10 AAPL 20 AAPL
|
||||||
|
12-Mar-03 Broker Assets:Stocks 10 AAPL 30 AAPL
|
||||||
|
12-Apr-04 Broker Assets:Stocks 10 AAPL 40 AAPL
|
||||||
|
12-May-05 Broker Assets:Stocks 10 AAPL 50 AAPL
|
||||||
|
end test
|
||||||
|
|
||||||
test reg stocks -O
|
test reg stocks -O
|
||||||
12-Mar-01 Broker Assets:Stocks 10 APPL 10 APPL
|
12-Jan-01 Broker Assets:Stocks 10 AAPL 10 AAPL
|
||||||
12-Mar-02 Broker Assets:Stocks 10 APPL 20 APPL
|
12-Feb-02 Broker Assets:Stocks 10 AAPL 20 AAPL
|
||||||
12-Mar-03 Broker Assets:Stocks 10 APPL 30 APPL
|
12-Mar-03 Broker Assets:Stocks 10 AAPL 30 AAPL
|
||||||
12-Mar-04 Broker Assets:Stocks 10 APPL 40 APPL
|
12-Apr-04 Broker Assets:Stocks 10 AAPL 40 AAPL
|
||||||
12-Mar-05 Broker Assets:Stocks 10 APPL 50 APPL
|
12-May-05 Broker Assets:Stocks 10 AAPL 50 AAPL
|
||||||
end test
|
end test
|
||||||
|
|
||||||
test reg stocks -B
|
test reg stocks -B
|
||||||
12-Mar-01 Broker Assets:Stocks $10 $10
|
12-Jan-01 Broker Assets:Stocks $100 $100
|
||||||
12-Mar-02 Broker Assets:Stocks $20 $30
|
12-Feb-02 Broker Assets:Stocks $200 $300
|
||||||
12-Mar-03 Broker Assets:Stocks $30 $60
|
12-Mar-03 Broker Assets:Stocks $300 $600
|
||||||
12-Mar-04 Broker Assets:Stocks $40 $100
|
12-Apr-04 Broker Assets:Stocks $400 $1000
|
||||||
12-Mar-05 Broker Assets:Stocks $50 $150
|
12-May-05 Broker Assets:Stocks $500 $1500
|
||||||
end test
|
end test
|
||||||
|
|
||||||
test reg stocks -I
|
test reg stocks -I
|
||||||
12-Mar-01 Broker Assets:Stocks $10 $10
|
12-Jan-01 Broker Assets:Stocks $10 $10
|
||||||
12-Mar-02 Broker Assets:Stocks $10 $20
|
12-Feb-02 Broker Assets:Stocks $20 $30
|
||||||
12-Mar-03 Broker Assets:Stocks $10 $30
|
12-Mar-03 Broker Assets:Stocks $30 $60
|
||||||
12-Mar-04 Broker Assets:Stocks $10 $40
|
12-Apr-04 Broker Assets:Stocks $40 $100
|
||||||
12-Mar-05 Broker Assets:Stocks $10 $50
|
12-May-05 Broker Assets:Stocks $50 $150
|
||||||
end test
|
end test
|
||||||
|
|
||||||
test reg stocks -O -H
|
test reg stocks -V
|
||||||
end test
|
12-Jan-01 Broker Assets:Stocks $100 $100
|
||||||
|
12-Jan-15 Commodities revalued <Revalued> $50 $150
|
||||||
test reg stocks -B -H
|
12-Feb-02 Commodities revalued <Revalued> $50 $200
|
||||||
end test
|
12-Feb-02 Broker Assets:Stocks $200 $400
|
||||||
|
12-Feb-15 Commodities revalued <Revalued> $100 $500
|
||||||
test reg stocks -I -H
|
12-Mar-03 Commodities revalued <Revalued> $100 $600
|
||||||
|
12-Mar-03 Broker Assets:Stocks $300 $900
|
||||||
|
12-Mar-15 Commodities revalued <Revalued> $150 $1050
|
||||||
|
12-Apr-04 Commodities revalued <Revalued> $150 $1200
|
||||||
|
12-Apr-04 Broker Assets:Stocks $400 $1600
|
||||||
|
12-Apr-15 Commodities revalued <Revalued> $200 $1800
|
||||||
|
12-May-05 Commodities revalued <Revalued> $200 $2000
|
||||||
|
12-May-05 Broker Assets:Stocks $500 $2500
|
||||||
end test
|
end test
|
||||||
|
|
||||||
test reg stocks -O -V
|
test reg stocks -O -V
|
||||||
|
12-Jan-01 Broker Assets:Stocks $100 $100
|
||||||
|
12-Jan-15 Commodities revalued <Revalued> $50 $150
|
||||||
|
12-Feb-02 Commodities revalued <Revalued> $50 $200
|
||||||
|
12-Feb-02 Broker Assets:Stocks $200 $400
|
||||||
|
12-Feb-15 Commodities revalued <Revalued> $100 $500
|
||||||
|
12-Mar-03 Commodities revalued <Revalued> $100 $600
|
||||||
|
12-Mar-03 Broker Assets:Stocks $300 $900
|
||||||
|
12-Mar-15 Commodities revalued <Revalued> $150 $1050
|
||||||
|
12-Apr-04 Commodities revalued <Revalued> $150 $1200
|
||||||
|
12-Apr-04 Broker Assets:Stocks $400 $1600
|
||||||
|
12-Apr-15 Commodities revalued <Revalued> $200 $1800
|
||||||
|
12-May-05 Commodities revalued <Revalued> $200 $2000
|
||||||
|
12-May-05 Broker Assets:Stocks $500 $2500
|
||||||
end test
|
end test
|
||||||
|
|
||||||
test reg stocks -B -V
|
test reg stocks -B -V
|
||||||
|
12-Jan-01 Broker Assets:Stocks $100 $100
|
||||||
|
12-Feb-02 Broker Assets:Stocks $200 $300
|
||||||
|
12-Mar-03 Broker Assets:Stocks $300 $600
|
||||||
|
12-Apr-04 Broker Assets:Stocks $400 $1000
|
||||||
|
12-May-05 Broker Assets:Stocks $500 $1500
|
||||||
end test
|
end test
|
||||||
|
|
||||||
test reg stocks -I -V
|
test reg stocks -I -V
|
||||||
|
12-Jan-01 Broker Assets:Stocks $10 $10
|
||||||
|
12-Feb-02 Broker Assets:Stocks $20 $30
|
||||||
|
12-Mar-03 Broker Assets:Stocks $30 $60
|
||||||
|
12-Apr-04 Broker Assets:Stocks $40 $100
|
||||||
|
12-May-05 Broker Assets:Stocks $50 $150
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -X EUR
|
||||||
|
12-Jan-01 Broker Assets:Stocks EUR 200,00 EUR 200,00
|
||||||
|
12-Feb-02 Commodities revalued <Revalued> EUR 200,00 EUR 400,00
|
||||||
|
12-Feb-02 Broker Assets:Stocks EUR 400,00 EUR 800,00
|
||||||
|
12-Mar-03 Commodities revalued <Revalued> EUR 400,00 EUR 1.200,00
|
||||||
|
12-Mar-03 Broker Assets:Stocks EUR 600,00 EUR 1.800,00
|
||||||
|
12-Apr-04 Commodities revalued <Revalued> EUR 600,00 EUR 2.400,00
|
||||||
|
12-Apr-04 Broker Assets:Stocks EUR 800,00 EUR 3.200,00
|
||||||
|
12-May-05 Commodities revalued <Revalued> EUR 800,00 EUR 4.000,00
|
||||||
|
12-May-05 Broker Assets:Stocks EUR 1.000,00 EUR 5.000,00
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -O -X EUR
|
||||||
|
12-Jan-01 Broker Assets:Stocks EUR 200,00 EUR 200,00
|
||||||
|
12-Feb-02 Commodities revalued <Revalued> EUR 200,00 EUR 400,00
|
||||||
|
12-Feb-02 Broker Assets:Stocks EUR 400,00 EUR 800,00
|
||||||
|
12-Mar-03 Commodities revalued <Revalued> EUR 400,00 EUR 1.200,00
|
||||||
|
12-Mar-03 Broker Assets:Stocks EUR 600,00 EUR 1.800,00
|
||||||
|
12-Apr-04 Commodities revalued <Revalued> EUR 600,00 EUR 2.400,00
|
||||||
|
12-Apr-04 Broker Assets:Stocks EUR 800,00 EUR 3.200,00
|
||||||
|
12-May-05 Commodities revalued <Revalued> EUR 800,00 EUR 4.000,00
|
||||||
|
12-May-05 Broker Assets:Stocks EUR 1.000,00 EUR 5.000,00
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -B -X EUR
|
||||||
|
12-Jan-01 Broker Assets:Stocks EUR 200,00 EUR 200,00
|
||||||
|
12-Feb-02 Broker Assets:Stocks EUR 400,00 EUR 600,00
|
||||||
|
12-Mar-03 Broker Assets:Stocks EUR 600,00 EUR 1.200,00
|
||||||
|
12-Apr-04 Broker Assets:Stocks EUR 800,00 EUR 2.000,00
|
||||||
|
12-May-05 Broker Assets:Stocks EUR 1.000,00 EUR 3.000,00
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -I -X EUR
|
||||||
|
12-Jan-01 Broker Assets:Stocks EUR 20,00 EUR 20,00
|
||||||
|
12-Feb-02 Broker Assets:Stocks EUR 40,00 EUR 60,00
|
||||||
|
12-Mar-03 Broker Assets:Stocks EUR 60,00 EUR 120,00
|
||||||
|
12-Apr-04 Broker Assets:Stocks EUR 80,00 EUR 200,00
|
||||||
|
12-May-05 Broker Assets:Stocks EUR 100,00 EUR 300,00
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -H
|
||||||
|
12-Jan-01 Broker Assets:Stocks $100 $100
|
||||||
|
12-Feb-02 Broker Assets:Stocks $200 $300
|
||||||
|
12-Mar-03 Broker Assets:Stocks $300 $600
|
||||||
|
12-Apr-04 Broker Assets:Stocks $400 $1000
|
||||||
|
12-May-05 Broker Assets:Stocks $500 $1500
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -O -H
|
||||||
|
12-Jan-01 Broker Assets:Stocks $100 $100
|
||||||
|
12-Feb-02 Broker Assets:Stocks $200 $300
|
||||||
|
12-Mar-03 Broker Assets:Stocks $300 $600
|
||||||
|
12-Apr-04 Broker Assets:Stocks $400 $1000
|
||||||
|
12-May-05 Broker Assets:Stocks $500 $1500
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -B -H
|
||||||
|
12-Jan-01 Broker Assets:Stocks $100 $100
|
||||||
|
12-Feb-02 Broker Assets:Stocks $200 $300
|
||||||
|
12-Mar-03 Broker Assets:Stocks $300 $600
|
||||||
|
12-Apr-04 Broker Assets:Stocks $400 $1000
|
||||||
|
12-May-05 Broker Assets:Stocks $500 $1500
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -I -H
|
||||||
|
12-Jan-01 Broker Assets:Stocks $10 $10
|
||||||
|
12-Feb-02 Broker Assets:Stocks $20 $30
|
||||||
|
12-Mar-03 Broker Assets:Stocks $30 $60
|
||||||
|
12-Apr-04 Broker Assets:Stocks $40 $100
|
||||||
|
12-May-05 Broker Assets:Stocks $50 $150
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -H -V
|
||||||
|
12-Jan-01 Broker Assets:Stocks $100 $100
|
||||||
|
12-Feb-02 Broker Assets:Stocks $200 $300
|
||||||
|
12-Mar-03 Broker Assets:Stocks $300 $600
|
||||||
|
12-Apr-04 Broker Assets:Stocks $400 $1000
|
||||||
|
12-May-05 Broker Assets:Stocks $500 $1500
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -O -H -V
|
||||||
|
12-Jan-01 Broker Assets:Stocks $100 $100
|
||||||
|
12-Feb-02 Broker Assets:Stocks $200 $300
|
||||||
|
12-Mar-03 Broker Assets:Stocks $300 $600
|
||||||
|
12-Apr-04 Broker Assets:Stocks $400 $1000
|
||||||
|
12-May-05 Broker Assets:Stocks $500 $1500
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -B -H -V
|
||||||
|
12-Jan-01 Broker Assets:Stocks $100 $100
|
||||||
|
12-Feb-02 Broker Assets:Stocks $200 $300
|
||||||
|
12-Mar-03 Broker Assets:Stocks $300 $600
|
||||||
|
12-Apr-04 Broker Assets:Stocks $400 $1000
|
||||||
|
12-May-05 Broker Assets:Stocks $500 $1500
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -I -H -V
|
||||||
|
12-Jan-01 Broker Assets:Stocks $10 $10
|
||||||
|
12-Feb-02 Broker Assets:Stocks $20 $30
|
||||||
|
12-Mar-03 Broker Assets:Stocks $30 $60
|
||||||
|
12-Apr-04 Broker Assets:Stocks $40 $100
|
||||||
|
12-May-05 Broker Assets:Stocks $50 $150
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -H -X EUR
|
||||||
|
12-Jan-01 Broker Assets:Stocks EUR 200,00 EUR 200,00
|
||||||
|
12-Feb-02 Broker Assets:Stocks EUR 400,00 EUR 600,00
|
||||||
|
12-Mar-03 Broker Assets:Stocks EUR 600,00 EUR 1.200,00
|
||||||
|
12-Apr-04 Broker Assets:Stocks EUR 800,00 EUR 2.000,00
|
||||||
|
12-May-05 Broker Assets:Stocks EUR 1.000,00 EUR 3.000,00
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -O -H -X EUR
|
||||||
|
12-Jan-01 Broker Assets:Stocks EUR 200,00 EUR 200,00
|
||||||
|
12-Feb-02 Broker Assets:Stocks EUR 400,00 EUR 600,00
|
||||||
|
12-Mar-03 Broker Assets:Stocks EUR 600,00 EUR 1.200,00
|
||||||
|
12-Apr-04 Broker Assets:Stocks EUR 800,00 EUR 2.000,00
|
||||||
|
12-May-05 Broker Assets:Stocks EUR 1.000,00 EUR 3.000,00
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -B -H -X EUR
|
||||||
|
12-Jan-01 Broker Assets:Stocks EUR 200,00 EUR 200,00
|
||||||
|
12-Feb-02 Broker Assets:Stocks EUR 400,00 EUR 600,00
|
||||||
|
12-Mar-03 Broker Assets:Stocks EUR 600,00 EUR 1.200,00
|
||||||
|
12-Apr-04 Broker Assets:Stocks EUR 800,00 EUR 2.000,00
|
||||||
|
12-May-05 Broker Assets:Stocks EUR 1.000,00 EUR 3.000,00
|
||||||
|
end test
|
||||||
|
|
||||||
|
test reg stocks -I -H -X EUR
|
||||||
|
12-Jan-01 Broker Assets:Stocks EUR 20,00 EUR 20,00
|
||||||
|
12-Feb-02 Broker Assets:Stocks EUR 40,00 EUR 60,00
|
||||||
|
12-Mar-03 Broker Assets:Stocks EUR 60,00 EUR 120,00
|
||||||
|
12-Apr-04 Broker Assets:Stocks EUR 80,00 EUR 200,00
|
||||||
|
12-May-05 Broker Assets:Stocks EUR 100,00 EUR 300,00
|
||||||
end test
|
end test
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue