From 77c9d7b1ff9fc0033e653453e08d042b2e95692b Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Sat, 31 Oct 2009 03:22:38 -0400 Subject: Add valexpr functions for lot dates, prices and tags --- src/report.cc | 33 +++++++++++++++++++++++++++++++++ src/report.h | 3 +++ 2 files changed, 36 insertions(+) (limited to 'src') diff --git a/src/report.cc b/src/report.cc index 7d74952c..565597c6 100644 --- a/src/report.cc +++ b/src/report.cc @@ -315,6 +315,39 @@ value_t report_t::fn_price(call_scope_t& scope) return args.value_at(0).price(); } +value_t report_t::fn_lot_date(call_scope_t& scope) +{ + interactive_t args(scope, "v"); + if (args.value_at(0).is_annotated()) { + const annotation_t& details(args.value_at(0).annotation()); + if (details.date) + return *details.date; + } + return NULL_VALUE; +} + +value_t report_t::fn_lot_price(call_scope_t& scope) +{ + interactive_t args(scope, "v"); + if (args.value_at(0).is_annotated()) { + const annotation_t& details(args.value_at(0).annotation()); + if (details.price) + return *details.price; + } + return NULL_VALUE; +} + +value_t report_t::fn_lot_tag(call_scope_t& scope) +{ + interactive_t args(scope, "v"); + if (args.value_at(0).is_annotated()) { + const annotation_t& details(args.value_at(0).annotation()); + if (details.tag) + return string_value(*details.tag); + } + return NULL_VALUE; +} + namespace { value_t fn_black(call_scope_t&) { return string_value("black"); diff --git a/src/report.h b/src/report.h index c1ad1997..0fe7d05b 100644 --- a/src/report.h +++ b/src/report.h @@ -160,6 +160,9 @@ public: value_t fn_ansify_if(call_scope_t& scope); value_t fn_percent(call_scope_t& scope); value_t fn_price(call_scope_t& scope); + value_t fn_lot_date(call_scope_t& scope); + value_t fn_lot_price(call_scope_t& scope); + value_t fn_lot_tag(call_scope_t& scope); value_t fn_now(call_scope_t&) { return terminus; -- cgit v1.2.3