John Wiegley
94aa8e5a91
Changed debug category op.calc to expr.calc
2009-02-15 15:42:12 -04:00
John Wiegley
03219d910f
Added xact_t::count member
...
This allows reports to access the "whicheth" index of the reported
transaction. It's used mainly by the --average report, which divides
the running total by this count to get the arithmetic mean.
2009-02-15 15:41:24 -04:00
John Wiegley
36b96c47ac
Have interval_xacts construct temps on a list
2009-02-14 23:38:14 -04:00
John Wiegley
50f434a5e3
Generate null transactions for empty periods
...
For example, if one uses -M to generate a monthly report for an entire
year, and there are no transaction in the month of February, ordinarily
Ledger would report nothing for that month, even if -E were used. Now
"null transactions" are generated for periods without any activity, in
order to make certain reports -- such as running monthly averages --
more accurate.
For example, instead of -MA being just a monthly running average of
months with activity, it is now a true average among all months during
the reported period.
2009-02-14 05:55:09 -04:00
John Wiegley
ee5e0600aa
xact metadata searches get passed up to the entry
...
That is, if a metadata tag cannot be found in a transaction, look in the
parent entry to see if it was set there. Transactions "inherit"
notational details from their entries.
2009-02-14 05:37:53 -04:00
John Wiegley
67d63366cb
Surround command-line queries with implicit parens
2009-02-14 05:33:29 -04:00
John Wiegley
7bbca2bff5
Removed an #if 0'd function from iterators.cc
2009-02-14 04:58:44 -04:00
John Wiegley
6b515c0cb3
Added #if 0'd stub code from 2.x's option.cc
2009-02-14 04:55:44 -04:00
John Wiegley
1933bb2ead
Restored the --actual and --real options
2009-02-14 04:46:53 -04:00
John Wiegley
5290b6e8aa
If an option was given no value, throw an error
...
The previous behavior was to trigger a confusing assertion.
2009-02-14 04:35:22 -04:00
John Wiegley
7fb55eedef
Re-enabled periodic reporting options (-M, etc)
2009-02-14 04:31:15 -04:00
John Wiegley
388044dec9
Fixed the way interval_t objects are initialized
2009-02-14 04:27:15 -04:00
John Wiegley
e50abb5645
Removed interval_t::advanced, which was unused
2009-02-14 04:17:46 -04:00
John Wiegley
f15ae10a52
Enabled --cleared, --uncleared and --pending
...
Note that the --uncleared flag includes --pending, since it specifically
means "not yet cleared".
2009-02-13 20:03:58 -04:00
John Wiegley
a87ed245d7
Changed the semantics of the "prices" report
...
The prices report now uses the following scheme:
PAYEE -> name of commodity of price
ACCOUNT -> name of commodity of item
AMOUNT -> price
DATE -> date of pricing
However, the report does not show the payee. The only reason the payee
is set is to enable clever querying. For example:
ledger prices gold # show all known prices for GOLD
ledger prices @gold # show all known prices *in* GOLD
2009-02-13 19:30:53 -04:00
John Wiegley
326cbea4c7
The formatting code no longer justifies values
...
This is done in the value code, which knows -- based on the value's type
-- how best to apply the justification.
2009-02-13 19:27:37 -04:00
John Wiegley
a9061811ce
Greatly improved output from the "format" command
...
It now shows the formatted result against a sample entry, similar to
what "parse" now does.
2009-02-13 19:25:15 -04:00
John Wiegley
b345a45c9b
Don't print an xact's amount if it was calculated
...
That is, if the user didn't enter an amount for that transaction in
their ledger journal, don't print one out either.
2009-02-13 18:33:28 -04:00
John Wiegley
2522f15437
Re-activated the budgeting flags
...
However, the budget reports themselves still need to be tested.
2009-02-13 06:13:19 -04:00
John Wiegley
70344b82e7
Added a "reload" command, for use at the REPL
...
Created a new function, session_t::reread_journal_files, which throws
away all previous state data and reads in the same files again. This is
needed to allow Emacs to communicate with Ledger via the REPL, so that
it tell Ledger when it has made changes to the user's data file.
2009-02-13 05:24:28 -04:00
John Wiegley
60019dc4b4
Changed print report to use format_date
...
Otherwise, Ledger was unable to parse what it had printed.
2009-02-13 02:09:19 -04:00
John Wiegley
f6b93a3f5a
Added a new valexpr function: format_date
...
This can be used to format dates with a specific pattern, such as:
format_date(entry.date, "%Y/%m/%d")
This is used by the print command to ensure that Ledger is able to parse
back what it prints.
2009-02-13 02:04:09 -04:00
John Wiegley
c0fd8d5e15
If a LEDGER_ envvar has no value, ignore it
2009-02-13 01:53:33 -04:00
John Wiegley
49a1373deb
Renamed a function to sort_value_is_less_than
...
The purpose was to provided a clearer relationship between the function
name and its expected arguments.
2009-02-12 22:47:27 -04:00
John Wiegley
092542a3bf
Sorting expr now uses "-" to indicate descending
...
For example: -S payee,-date sorts 1) ascending by payee, then 2)
descending by date.
2009-02-12 20:45:33 -04:00
John Wiegley
e0e181d2af
Made (un)reduce rvalue methods more consistent
...
They names were changed from reduce/unreduce to reduced/unreduced, since
they return the modified value. This is more consistent with the naming
of rounded/rounded.
2009-02-12 20:44:46 -04:00
John Wiegley
e6bea6c3eb
The --sort flag now accepts multiple terms (-S payee,date).
...
However, there is no way yet to reverse the meaning of a given term.
2009-02-12 16:22:12 -04:00
John Wiegley
8ee8af3bfb
Restored the "prices" command.
2009-02-12 04:57:19 -04:00
John Wiegley
c328b1b3b2
Turned on the "emacs" command and budgeting, though neither are tested yet.
2009-02-12 03:30:57 -04:00
John Wiegley
c8cd2c468e
Re-enabled some code, and removed a bunch of deadwood.
2009-02-12 03:30:41 -04:00
John Wiegley
bb243e2c5e
Fixed a typo which was causing all boolean values to show as "false".
2009-02-12 03:06:30 -04:00
John Wiegley
dc68903bb2
Added validation code for mask_t objects.
2009-02-12 03:06:15 -04:00
John Wiegley
eaac95147c
Added a missing file!
2009-02-12 02:38:25 -04:00
John Wiegley
433bb11fa9
Moved value_t::set_type into value.cc, since it had grown.
2009-02-12 02:36:14 -04:00
John Wiegley
9344598eb0
Inlined value_t::_clear(), since it only had one caller.
2009-02-12 02:35:22 -04:00
John Wiegley
f8c48d7a6f
Ignore lines in Ledger files which contain only whitespace.
2009-02-12 02:35:05 -04:00
John Wiegley
b53f844129
Removed an excessive error check.
2009-02-12 02:34:54 -04:00
John Wiegley
6f2e3b8864
Properly handle UTF-8 characters in commodity strings.
2009-02-12 02:34:39 -04:00
John Wiegley
b9a96e9c0d
Allow the use of days of the week to "entry", e.g: "thu kfc 11".
2009-02-11 20:36:33 -04:00
John Wiegley
20bf2547d1
In ledger-mode, if TAB is pressed in an entry, call out to "entry".
2009-02-11 20:16:45 -04:00
John Wiegley
1a030da55d
Rewrote the "entry" command. It's ALIVE!
2009-02-11 19:14:23 -04:00
John Wiegley
44518bc640
Wired up the "entry" command from 2.x, though it still needs to be ported.
2009-02-10 22:37:05 -04:00
John Wiegley
f605e107fc
A fix to the last fix.
2009-02-10 21:24:28 -04:00
John Wiegley
7de6050269
A fix for users of Boost 1.35.
2009-02-10 21:14:44 -04:00
John Wiegley
af3be5f964
Wrote the beginnings of a new "stats" command.
2009-02-10 15:57:34 -04:00
John Wiegley
bedadd03a0
option_t's copy constructor wasn't copying "wants_arg".
...
This was causing "reg -p this" to fail in the REPL.
2009-02-10 05:06:16 -04:00
John Wiegley
9039cf4986
Removed an unneeded method declaration.
2009-02-10 05:05:51 -04:00
John Wiegley
ba95808ab0
Sort period transactions by "date", not by "d".
2009-02-10 05:05:36 -04:00
John Wiegley
d726624e60
Changed value_t to use boost::any (more type-safe).
2009-02-10 04:24:06 -04:00
John Wiegley
6d4c3ffde5
If a textual directive can't be found, ignore it.
2009-02-10 04:23:50 -04:00