summaryrefslogtreecommitdiff
path: root/src/xact.cc
Commit message (Collapse)AuthorAgeFilesLines
* Fixed an issue involving costs and reduced valuesJohn Wiegley2009-02-241-64/+74
|
* Improved the way that entries are balancedJohn Wiegley2009-02-241-24/+59
|
* Switched from using POST_AUTO to ITEM_GENERATEDJohn Wiegley2009-02-241-2/+3
|
* Fixed a minor bug in handling of automated xactsJohn Wiegley2009-02-231-1/+1
| | | | | There was a if statement with an inverse boolean meaning, which caused some automated transaction postings to have a null amount.
* The Great Renaming, Part IIJohn Wiegley2009-02-231-215/+303
| | | | | The last commit did not contain the majority of changes because of a slight mishap. This contains the real changeset.
* Many fixes to both --market and --exchangeJohn Wiegley2009-02-231-0/+3
|
* Added --exchange (-x) optionJohn Wiegley2009-02-221-0/+6
| | | | | | | This is like -V, except it lets you specify the goal commodity to report in terms of, for example: reg -x CAD
* Create a new interactive_t helper classJohn Wiegley2009-02-211-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The purpose of this class is much like Emacs' (interactive) form: it allows a value expression function to declare exactly how many arguments, and of what type, it intends to receive. It then offers type-safe access to theese arguments in a consistent manner. An example value expression function definition in C++: value_t fn_foo(call_scope_t& scope) { // We expect a string, an integer, and an optional date interactive_t args(scope, "sl&d"); std::cout << "String = " << args.get<string>(0) << "Integer = " << args.get<long>(1) << std::endl; if (args.has(2)) // was a date provided? std::cout << "Date = " << args.get<date_t>(2) << std::endl; return NULL_VALUE; } There is also an in_context_t<T> template, which finds the context type T in the current scope hierarchy. The in_context_t then also acts as a smart pointer to reference this context object, in addition to serving the same duty as interactive_t. This combination of intent is solely for the sake of brevity. value_t fn_bar(call_scope_t& scope) { in_context_t<account_t> env(scope, "sl&d"); std::cout << "Account name = " << env->fullname() << "String arg = " << env.get<string>(0) << std::endl; return NULL_VALUE; } As you can see here, 'env' acts as a smart pointer to the required context, and an object to extract the typed arguments.
* If a transaction's total is null, return 0 insteadJohn Wiegley2009-02-191-1/+1
|
* Added a "commodity" valexpr variable for xactsJohn Wiegley2009-02-161-0/+6
|
* Fixed a possible problem with xact_t::date()John Wiegley2009-02-161-1/+1
|
* Provide a "depth" variable for xactsJohn Wiegley2009-02-151-0/+9
|
* Removed "total_cost" valexpr, and value_t::costJohn Wiegley2009-02-151-13/+4
| | | | | Since cost reports are now calculated by setting the amount_ expression, there is no need to track a separate "total cost" entity.
* Corrected double problem in period reportsJohn Wiegley2009-02-151-6/+2
| | | | | xact_t::add_to_value, in cases where the xact had a "compound" total, was adding transaction values to the running total twice.
* Added xact_t::count memberJohn Wiegley2009-02-151-0/+7
| | | | | | 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.
* xact metadata searches get passed up to the entryJohn Wiegley2009-02-141-0/+38
| | | | | | 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.
* Restored the --actual and --real optionsJohn Wiegley2009-02-141-0/+24
|
* Don't print an xact's amount if it was calculatedJohn Wiegley2009-02-131-0/+6
| | | | | That is, if the user didn't enter an amount for that transaction in their ledger journal, don't print one out either.
* Re-enabled some code, and removed a bunch of deadwood.John Wiegley2009-02-121-15/+0
|
* Rewrote the "entry" command. It's ALIVE!John Wiegley2009-02-111-1/+1
|
* Fix to handling of effective dates in xact_t::date().John Wiegley2009-02-091-3/+9
|
* Use the report's amount_expr everywhere that computes an xact's amount.John Wiegley2009-02-091-6/+6
|
* Several fixes to get the state flags to appear right in "print".John Wiegley2009-02-071-0/+9
|
* Added two comments, to remind myself to check something.John Wiegley2009-02-061-0/+1
|
* Largely removed all of Ledger's use of global variables, for the REPL's sake.John Wiegley2009-02-041-6/+7
|
* Simplified error context handling.John Wiegley2009-02-021-15/+0
|
* Added support for metadata and tagging, and made regexs a first-class type.John Wiegley2009-02-011-7/+9
|
* Stopped using the generic "unsigned int" in favor of more specific types.John Wiegley2009-01-291-1/+1
|
* Increased copyright range to include 2009.John Wiegley2009-01-201-1/+1
|
* Added methods for getting the cost of an xact.John Wiegley2009-01-191-2/+38
|
* Don't look for an xact's state in its entry if there isn't one.John Wiegley2009-01-191-4/+6
|
* Factored common parts of entry_t and xact_t into new item_tJohn Wiegley2008-09-191-127/+26
|
* Added the 'note' value expression identifier.John Wiegley2008-09-171-1/+6
|
* Restored --cleared, --pending, --uncleared, -X and -Y.John Wiegley2008-09-161-2/+33
|
* Added 'code' value expression function for xacts and entries.John Wiegley2008-09-141-0/+9
|
* get_amount should return the xdata value if the EXT_COMPOUND flag is on.John Wiegley2008-08-141-1/+6
|
* Basic balance reports are working again!John Wiegley2008-08-101-1/+1
|
* Moved around most of the files so that source code is in src/, documentationJohn Wiegley2008-08-051-0/+278
is in doc/, etc.