Added actual_date() methods for items
This commit is contained in:
parent
b78e22d52b
commit
9d61d3d621
4 changed files with 22 additions and 0 deletions
|
|
@ -199,6 +199,9 @@ namespace {
|
|||
value_t get_date(item_t& item) {
|
||||
return item.date();
|
||||
}
|
||||
value_t get_actual_date(item_t& item) {
|
||||
return item.actual_date();
|
||||
}
|
||||
value_t get_effective_date(item_t& item) {
|
||||
if (optional<date_t> effective = item.effective_date())
|
||||
return *effective;
|
||||
|
|
@ -351,6 +354,8 @@ expr_t::ptr_op_t item_t::lookup(const symbol_t::kind_t kind,
|
|||
case 'a':
|
||||
if (name == "actual")
|
||||
return WRAP_FUNCTOR(get_wrapper<&get_actual>);
|
||||
else if (name == "actual_date")
|
||||
return WRAP_FUNCTOR(get_wrapper<&get_actual_date>);
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
|
|
|
|||
|
|
@ -173,6 +173,10 @@ public:
|
|||
return *effective;
|
||||
return *_date;
|
||||
}
|
||||
virtual date_t actual_date() const {
|
||||
assert(_date);
|
||||
return *_date;
|
||||
}
|
||||
virtual optional<date_t> effective_date() const {
|
||||
return _date_eff;
|
||||
}
|
||||
|
|
|
|||
12
src/post.cc
12
src/post.cc
|
|
@ -97,6 +97,18 @@ date_t post_t::date() const
|
|||
return *_date;
|
||||
}
|
||||
|
||||
date_t post_t::actual_date() const
|
||||
{
|
||||
if (xdata_ && is_valid(xdata_->date))
|
||||
return xdata_->date;
|
||||
|
||||
if (! _date) {
|
||||
assert(xact);
|
||||
return xact->date();
|
||||
}
|
||||
return *_date;
|
||||
}
|
||||
|
||||
optional<date_t> post_t::effective_date() const
|
||||
{
|
||||
optional<date_t> date = item_t::effective_date();
|
||||
|
|
|
|||
|
|
@ -105,6 +105,7 @@ public:
|
|||
const optional<mask_t>& value_mask = none) const;
|
||||
|
||||
virtual date_t date() const;
|
||||
virtual date_t actual_date() const;
|
||||
virtual optional<date_t> effective_date() const;
|
||||
|
||||
bool must_balance() const {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue