Corrected bug with forecasting date bounded xacts
This commit is contained in:
parent
526cbc4c93
commit
e78af146e8
3 changed files with 57 additions and 48 deletions
|
|
@ -1228,18 +1228,16 @@ void budget_posts::operator()(post_t& post)
|
||||||
|
|
||||||
void forecast_posts::add_post(const date_interval_t& period, post_t& post)
|
void forecast_posts::add_post(const date_interval_t& period, post_t& post)
|
||||||
{
|
{
|
||||||
generate_posts::add_post(period, post);
|
date_interval_t i(period);
|
||||||
|
if (! i.start && ! i.find_period(CURRENT_DATE()))
|
||||||
|
return;
|
||||||
|
|
||||||
// Advance the period's interval until it is at or beyond the current date.
|
generate_posts::add_post(i, post);
|
||||||
date_interval_t& i = pending_posts.back().first;
|
|
||||||
if (! i.start) {
|
// Advance the period's interval until it is at or beyond the current
|
||||||
if (! i.find_period(CURRENT_DATE()))
|
// date.
|
||||||
throw_(std::runtime_error, _("Something odd has happened"));
|
while (*i.start < CURRENT_DATE())
|
||||||
++i;
|
++i;
|
||||||
} else {
|
|
||||||
while (*i.start < CURRENT_DATE())
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void forecast_posts::flush()
|
void forecast_posts::flush()
|
||||||
|
|
@ -1281,6 +1279,8 @@ void forecast_posts::flush()
|
||||||
for (pending_posts_list::iterator i = ++pending_posts.begin();
|
for (pending_posts_list::iterator i = ++pending_posts.begin();
|
||||||
i != pending_posts.end();
|
i != pending_posts.end();
|
||||||
i++) {
|
i++) {
|
||||||
|
assert((*i).first.start);
|
||||||
|
assert((*least).first.start);
|
||||||
if (*(*i).first.start < *(*least).first.start)
|
if (*(*i).first.start < *(*least).first.start)
|
||||||
least = i;
|
least = i;
|
||||||
}
|
}
|
||||||
|
|
@ -1307,7 +1307,6 @@ void forecast_posts::flush()
|
||||||
}
|
}
|
||||||
|
|
||||||
begin = next;
|
begin = next;
|
||||||
++(*least).first;
|
|
||||||
|
|
||||||
// `post' refers to the posting defined in the period transaction. We
|
// `post' refers to the posting defined in the period transaction. We
|
||||||
// make a copy of it within a temporary transaction with the payee
|
// make a copy of it within a temporary transaction with the payee
|
||||||
|
|
@ -1337,6 +1336,14 @@ void forecast_posts::flush()
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Increment the 'least', but remove it from pending_posts if it
|
||||||
|
// exceeds its own boundaries.
|
||||||
|
++(*least).first;
|
||||||
|
if (! (*least).first.start) {
|
||||||
|
pending_posts.erase(least);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
item_handler<post_t>::flush();
|
item_handler<post_t>::flush();
|
||||||
|
|
|
||||||
|
|
@ -244,42 +244,42 @@ reg --now=2009/03/21 --forecast-while='total < $3500' books
|
||||||
09-Nov-30 End of November Expenses:Books $110.00 $2880.00
|
09-Nov-30 End of November Expenses:Books $110.00 $2880.00
|
||||||
09-Dec-01 December Expenses:Books $120.00 $3000.00
|
09-Dec-01 December Expenses:Books $120.00 $3000.00
|
||||||
09-Dec-31 End of December Expenses:Books $120.00 $3120.00
|
09-Dec-31 End of December Expenses:Books $120.00 $3120.00
|
||||||
09-May-01 Forecast transaction Expenses:Books $10.00 $3130.00
|
09-Apr-01 Forecast transaction Expenses:Books $10.00 $3130.00
|
||||||
09-Jun-01 Forecast transaction Expenses:Books $10.00 $3140.00
|
09-May-01 Forecast transaction Expenses:Books $10.00 $3140.00
|
||||||
09-Jul-01 Forecast transaction Expenses:Books $10.00 $3150.00
|
09-Jun-01 Forecast transaction Expenses:Books $10.00 $3150.00
|
||||||
09-Aug-01 Forecast transaction Expenses:Books $10.00 $3160.00
|
09-Jul-01 Forecast transaction Expenses:Books $10.00 $3160.00
|
||||||
09-Sep-01 Forecast transaction Expenses:Books $10.00 $3170.00
|
09-Aug-01 Forecast transaction Expenses:Books $10.00 $3170.00
|
||||||
09-Oct-01 Forecast transaction Expenses:Books $10.00 $3180.00
|
09-Sep-01 Forecast transaction Expenses:Books $10.00 $3180.00
|
||||||
09-Nov-01 Forecast transaction Expenses:Books $10.00 $3190.00
|
09-Oct-01 Forecast transaction Expenses:Books $10.00 $3190.00
|
||||||
09-Dec-01 Forecast transaction Expenses:Books $10.00 $3200.00
|
09-Nov-01 Forecast transaction Expenses:Books $10.00 $3200.00
|
||||||
10-Jan-01 Forecast transaction Expenses:Books $10.00 $3210.00
|
09-Dec-01 Forecast transaction Expenses:Books $10.00 $3210.00
|
||||||
10-Feb-01 Forecast transaction Expenses:Books $10.00 $3220.00
|
10-Jan-01 Forecast transaction Expenses:Books $10.00 $3220.00
|
||||||
10-Mar-01 Forecast transaction Expenses:Books $10.00 $3230.00
|
10-Feb-01 Forecast transaction Expenses:Books $10.00 $3230.00
|
||||||
10-Apr-01 Forecast transaction Expenses:Books $10.00 $3240.00
|
10-Mar-01 Forecast transaction Expenses:Books $10.00 $3240.00
|
||||||
10-May-01 Forecast transaction Expenses:Books $10.00 $3250.00
|
10-Apr-01 Forecast transaction Expenses:Books $10.00 $3250.00
|
||||||
10-Jun-01 Forecast transaction Expenses:Books $10.00 $3260.00
|
10-May-01 Forecast transaction Expenses:Books $10.00 $3260.00
|
||||||
10-Jul-01 Forecast transaction Expenses:Books $10.00 $3270.00
|
10-Jun-01 Forecast transaction Expenses:Books $10.00 $3270.00
|
||||||
10-Aug-01 Forecast transaction Expenses:Books $10.00 $3280.00
|
10-Jul-01 Forecast transaction Expenses:Books $10.00 $3280.00
|
||||||
10-Sep-01 Forecast transaction Expenses:Books $10.00 $3290.00
|
10-Aug-01 Forecast transaction Expenses:Books $10.00 $3290.00
|
||||||
10-Oct-01 Forecast transaction Expenses:Books $10.00 $3300.00
|
10-Sep-01 Forecast transaction Expenses:Books $10.00 $3300.00
|
||||||
10-Nov-01 Forecast transaction Expenses:Books $10.00 $3310.00
|
10-Oct-01 Forecast transaction Expenses:Books $10.00 $3310.00
|
||||||
10-Dec-01 Forecast transaction Expenses:Books $10.00 $3320.00
|
10-Nov-01 Forecast transaction Expenses:Books $10.00 $3320.00
|
||||||
11-Jan-01 Forecast transaction Expenses:Books $10.00 $3330.00
|
10-Dec-01 Forecast transaction Expenses:Books $10.00 $3330.00
|
||||||
11-Feb-01 Forecast transaction Expenses:Books $10.00 $3340.00
|
11-Jan-01 Forecast transaction Expenses:Books $10.00 $3340.00
|
||||||
11-Mar-01 Forecast transaction Expenses:Books $10.00 $3350.00
|
11-Feb-01 Forecast transaction Expenses:Books $10.00 $3350.00
|
||||||
11-Apr-01 Forecast transaction Expenses:Books $10.00 $3360.00
|
11-Mar-01 Forecast transaction Expenses:Books $10.00 $3360.00
|
||||||
11-May-01 Forecast transaction Expenses:Books $10.00 $3370.00
|
11-Apr-01 Forecast transaction Expenses:Books $10.00 $3370.00
|
||||||
11-Jun-01 Forecast transaction Expenses:Books $10.00 $3380.00
|
11-May-01 Forecast transaction Expenses:Books $10.00 $3380.00
|
||||||
11-Jul-01 Forecast transaction Expenses:Books $10.00 $3390.00
|
11-Jun-01 Forecast transaction Expenses:Books $10.00 $3390.00
|
||||||
11-Aug-01 Forecast transaction Expenses:Books $10.00 $3400.00
|
11-Jul-01 Forecast transaction Expenses:Books $10.00 $3400.00
|
||||||
11-Sep-01 Forecast transaction Expenses:Books $10.00 $3410.00
|
11-Aug-01 Forecast transaction Expenses:Books $10.00 $3410.00
|
||||||
11-Oct-01 Forecast transaction Expenses:Books $10.00 $3420.00
|
11-Sep-01 Forecast transaction Expenses:Books $10.00 $3420.00
|
||||||
11-Nov-01 Forecast transaction Expenses:Books $10.00 $3430.00
|
11-Oct-01 Forecast transaction Expenses:Books $10.00 $3430.00
|
||||||
11-Dec-01 Forecast transaction Expenses:Books $10.00 $3440.00
|
11-Nov-01 Forecast transaction Expenses:Books $10.00 $3440.00
|
||||||
12-Jan-01 Forecast transaction Expenses:Books $10.00 $3450.00
|
11-Dec-01 Forecast transaction Expenses:Books $10.00 $3450.00
|
||||||
12-Feb-01 Forecast transaction Expenses:Books $10.00 $3460.00
|
12-Jan-01 Forecast transaction Expenses:Books $10.00 $3460.00
|
||||||
12-Mar-01 Forecast transaction Expenses:Books $10.00 $3470.00
|
12-Feb-01 Forecast transaction Expenses:Books $10.00 $3470.00
|
||||||
12-Apr-01 Forecast transaction Expenses:Books $10.00 $3480.00
|
12-Mar-01 Forecast transaction Expenses:Books $10.00 $3480.00
|
||||||
12-May-01 Forecast transaction Expenses:Books $10.00 $3490.00
|
12-Apr-01 Forecast transaction Expenses:Books $10.00 $3490.00
|
||||||
>>>2
|
>>>2
|
||||||
=== 0
|
=== 0
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ reg --forecast-while="d<[2010/03/01]" --now=2009/11/01
|
||||||
>>>1
|
>>>1
|
||||||
09-Nov-01 Sample Expenses:Food:Dining $20.00 $20.00
|
09-Nov-01 Sample Expenses:Food:Dining $20.00 $20.00
|
||||||
Assets $-20.00 0
|
Assets $-20.00 0
|
||||||
|
09-Dec-01 Forecast transaction Expenses:Food $500.00 $500.00
|
||||||
|
09-Dec-01 Forecast transaction Assets $-500.00 0
|
||||||
10-Jan-01 Forecast transaction Expenses:Food $500.00 $500.00
|
10-Jan-01 Forecast transaction Expenses:Food $500.00 $500.00
|
||||||
10-Jan-01 Forecast transaction Assets $-500.00 0
|
10-Jan-01 Forecast transaction Assets $-500.00 0
|
||||||
10-Feb-01 Forecast transaction Expenses:Food $500.00 $500.00
|
10-Feb-01 Forecast transaction Expenses:Food $500.00 $500.00
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue