summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2009-10-31 03:22:38 -0400
committerJohn Wiegley <johnw@newartisans.com>2009-10-31 03:22:38 -0400
commit77c9d7b1ff9fc0033e653453e08d042b2e95692b (patch)
tree7b8a2746b127dd307f7f619bfefa66ee5446f699 /src
parentd5b1ee56e188c49f1f1b2c8bfc5e0cedcf320f17 (diff)
downloadfork-ledger-77c9d7b1ff9fc0033e653453e08d042b2e95692b.tar.gz
fork-ledger-77c9d7b1ff9fc0033e653453e08d042b2e95692b.tar.bz2
fork-ledger-77c9d7b1ff9fc0033e653453e08d042b2e95692b.zip
Add valexpr functions for lot dates, prices and tags
Diffstat (limited to 'src')
-rw-r--r--src/report.cc33
-rw-r--r--src/report.h3
2 files changed, 36 insertions, 0 deletions
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;