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) {
|
value_t get_date(item_t& item) {
|
||||||
return item.date();
|
return item.date();
|
||||||
}
|
}
|
||||||
|
value_t get_actual_date(item_t& item) {
|
||||||
|
return item.actual_date();
|
||||||
|
}
|
||||||
value_t get_effective_date(item_t& item) {
|
value_t get_effective_date(item_t& item) {
|
||||||
if (optional<date_t> effective = item.effective_date())
|
if (optional<date_t> effective = item.effective_date())
|
||||||
return *effective;
|
return *effective;
|
||||||
|
|
@ -351,6 +354,8 @@ expr_t::ptr_op_t item_t::lookup(const symbol_t::kind_t kind,
|
||||||
case 'a':
|
case 'a':
|
||||||
if (name == "actual")
|
if (name == "actual")
|
||||||
return WRAP_FUNCTOR(get_wrapper<&get_actual>);
|
return WRAP_FUNCTOR(get_wrapper<&get_actual>);
|
||||||
|
else if (name == "actual_date")
|
||||||
|
return WRAP_FUNCTOR(get_wrapper<&get_actual_date>);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'b':
|
case 'b':
|
||||||
|
|
|
||||||
|
|
@ -173,6 +173,10 @@ public:
|
||||||
return *effective;
|
return *effective;
|
||||||
return *_date;
|
return *_date;
|
||||||
}
|
}
|
||||||
|
virtual date_t actual_date() const {
|
||||||
|
assert(_date);
|
||||||
|
return *_date;
|
||||||
|
}
|
||||||
virtual optional<date_t> effective_date() const {
|
virtual optional<date_t> effective_date() const {
|
||||||
return _date_eff;
|
return _date_eff;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
12
src/post.cc
12
src/post.cc
|
|
@ -97,6 +97,18 @@ date_t post_t::date() const
|
||||||
return *_date;
|
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> post_t::effective_date() const
|
||||||
{
|
{
|
||||||
optional<date_t> date = item_t::effective_date();
|
optional<date_t> date = item_t::effective_date();
|
||||||
|
|
|
||||||
|
|
@ -105,6 +105,7 @@ public:
|
||||||
const optional<mask_t>& value_mask = none) const;
|
const optional<mask_t>& value_mask = none) const;
|
||||||
|
|
||||||
virtual date_t date() const;
|
virtual date_t date() const;
|
||||||
|
virtual date_t actual_date() const;
|
||||||
virtual optional<date_t> effective_date() const;
|
virtual optional<date_t> effective_date() const;
|
||||||
|
|
||||||
bool must_balance() const {
|
bool must_balance() const {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue