Commit graph

425 commits

Author SHA1 Message Date
John Wiegley
503a96034e Added account(_base) accessors to account_t 2009-02-15 21:48:22 -04:00
John Wiegley
a64a069a77 Print stripped amounts in the print report 2009-02-15 21:27:28 -04:00
John Wiegley
780ce4a5d0 Normalized handling of several report options 2009-02-15 21:14:54 -04:00
John Wiegley
484b498c14 Re-enabled the --format (-F) option 2009-02-15 21:08:36 -04:00
John Wiegley
e861c312ac The "xact" variable now returns null for accounts 2009-02-15 21:05:59 -04:00
John Wiegley
bfa6a643a1 Improved handling of --empty option
For example, in period reports null transactions are only generated for
empty periods if --empty is used.  Otherwise, the presence of such
transactions can get confusing.
2009-02-15 20:59:13 -04:00
John Wiegley
78e57ac4cf item_predicate now operates on scope_t
This means item_predicate is no longer a template.
2009-02-15 20:56:48 -04:00
John Wiegley
5d4ac67920 chain_xact_handlers now always operators the same
Previously, account-wise reports used a subset of the total number of
transaction filters, but this could cause confusing results, and made
some reports immpossible (such as account-wise monthly averages).
2009-02-15 20:45:09 -04:00
John Wiegley
caeb336176 The format code %C is now equal to %(fmt_C) 2009-02-15 19:53:38 -04:00
John Wiegley
5516a7ddb5 Removed an unused function 2009-02-15 19:49:05 -04:00
John Wiegley
e199e3863c Fixed a call to value_t::cast to use in_place_cast 2009-02-15 19:44:45 -04:00
John Wiegley
a1e1133c80 Whitespace fixes 2009-02-15 19:43:46 -04:00
John Wiegley
2ec9b6a7b2 Split up session_t::reread_journal_files()
You now call session_t::close_journal_files() followed by
session_t::read_journal_files().
2009-02-15 19:32:15 -04:00
John Wiegley
6bfb4206b1 If a boolean value is to an amount, use 1 or 0 2009-02-15 19:25:43 -04:00
John Wiegley
dfee8bc691 Added 'count' and 'subcount' props for accounts 2009-02-15 19:24:17 -04:00
John Wiegley
f232d558a8 Strip annotations from the "parse" result
This way the value shown follows the current reporting options.
2009-02-15 17:54:08 -04:00
John Wiegley
3c7388918b Change a few calls to on() to use set_expr() 2009-02-15 17:07:43 -04:00
John Wiegley
20475478a4 Removed the %! formatting code, as it does nothing 2009-02-15 16:42:14 -04:00
John Wiegley
6f7f87699c Parse '/' in an operator context as "div" 2009-02-15 16:34:34 -04:00
John Wiegley
fcd7f4f73b Removed "total_cost" valexpr, and value_t::cost
Since cost reports are now calculated by setting the amount_ expression,
there is no need to track a separate "total cost" entity.
2009-02-15 16:26:26 -04:00
John Wiegley
48d985aacc Restored the --average (-A) report option 2009-02-15 15:50:15 -04:00
John Wiegley
3ef07ae39f Added a helper method for setting expr options
Now one does:

    parent->HANDLER(display_total_).set_expr("total");

Rather than what was required previously:

    parent->HANDLER(display_total_).on("total");
    parent->HANDLER(display_total_).expr = "total";
2009-02-15 15:46:03 -04:00
John Wiegley
5fc1f9dce9 Corrected double problem in period reports
xact_t::add_to_value, in cases where the xact had a "compound" total,
was adding transaction values to the running total twice.
2009-02-15 15:43:13 -04:00
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