summaryrefslogtreecommitdiff
path: root/src/xact.h
Commit message (Collapse)AuthorAgeFilesLines
* Add support for --hashes=sha512_256 as another algorithmJohn Wiegley2024-08-051-1/+1
|
* Make xact hashes independent of posting orderJohn Wiegley2024-08-051-1/+1
| | | | | Also, support matching provided hashes against a prefixed of the generated hash.
* Add support for hash chaining to detect modifications in postingsJohn Wiegley2024-08-051-0/+2
| | | | | | | | | | | | | | | | | | | The following details of a posting contribute to its hash: fullname of account string representation of amount Each posting hashes contributes to the transaction hash, which is compromised of: previous transaction’s hash (as encountered in parsing order) actual date optional auxiliary date optional code payee hashes of all postings Note that this means that changes in the “code” or any of the comments
* Use #pragma onceAlexis Hildebrandt2023-04-101-4/+1
|
* Update copyright yearAlexis Hildebrandt2023-02-021-1/+1
| | | | [skip ci]
* Update copyright statement for 2022Alexis Hildebrandt2022-07-021-1/+1
|
* Change header guard names to use `INCLUDED_` prefixPhil Newton2022-04-061-3/+3
| | | | Fixes #2049
* Fix some boost format stringsTommi Komulainen2019-01-171-3/+3
| | | | | | Fixes: Error: boost::bad_format_string: format-string is ill-formed
* [misc] Update year in copyright notice to 2017Alexis Hildebrandt2018-01-271-1/+1
| | | | [ci skip]
* [misc] Update year in copyright notice to 2017Alexis Hildebrandt2017-01-051-1/+1
| | | | [ci skip]
* [misc] Update year in copyright notice to 2016Alexis Hildebrandt2016-01-021-1/+1
| | | | [ci skip]
* [ledger] Remove --cache optionAlexis Hildebrandt2015-02-181-72/+0
| | | | and all boost serialisation related code.
* Bump copyright notice to 2015Alexis Hildebrandt2014-12-271-1/+1
| | | | | | The following script makes it a no-brainer: % NEXT_YEAR=2015; ag -l 'Copyright.*Wiegley' \ | xargs sed -i '' -e "s/\(Copyright.*\)-20[0-9]\{2\}/\1-${NEXT_YEAR}/"
* Bump copyright information to 2014Alexis Hildebrandt2014-02-021-1/+1
|
* Bump copyright information to 2013John Wiegley2013-02-181-1/+1
|
* Converted the Ledger build system to use CMakeJohn Wiegley2012-05-201-7/+7
|
* Switched to Boost.PropertyTree for XML generationJohn Wiegley2012-05-181-1/+1
|
* Switch to using Boost.FormatJohn Wiegley2012-05-141-3/+3
|
* Add 'data' member to account/journal objectsJohn Wiegley2012-04-131-2/+6
|
* Started work on a "views" report document modelJohn Wiegley2012-04-081-0/+4
|
* Allow serialization to be enabled againJohn Wiegley2012-03-291-0/+15
|
* Fixed parsing of "deferred notes" in auto xactsJohn Wiegley2012-03-071-6/+8
|
* Refactored the notion of "the current parsing context"John Wiegley2012-03-011-1/+2
|
* Increased file copyrights to 2012John Wiegley2012-02-291-1/+1
|
* Implement the "tag" metadata directiveJohn Wiegley2012-02-271-13/+3
|
* The "id" of an item now maps to its UUIDJohn Wiegley2012-02-271-3/+0
|
* Cleanup whitespaceJohn Wiegley2011-08-181-1/+1
|
* Scopes can now provide a description of themselvesJohn Wiegley2010-06-241-0/+30
| | | | | | This isn't being used yet, but it likely will to improve the information presented to users if their value expressions fail to compile or evaluate.
* Revised how Ledger handles the "current year"John Wiegley2010-06-141-4/+2
| | | | | Now when the Y directive sets the current year for a region, it affects everything, as if the clock really were set back to that year.
* Added support for assert, check and expr directivesJohn Wiegley2010-06-131-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These can occur in many places: ; Within an automated transaction, the assert is evaluated every time ; a posting is matched, with the expression context set to the ; matching posting. = /Food/ assert account("Expenses:Food").total >= $100 2010-06-12 Sample Expenses:Food $100 Assets:Checking ; At file scope, the expression is evaluated with "global" scope. assert account("Expenses:Food").total == $100 ; At the top of a transction, the assertion's scope is the ; transaction. After a posting, the scope is that posting. Note ; however that account totals are only adjusted after successful ; parsing of a transaction, which means that all the assertions below ; are true, even though it appears as though the middle posting should ; affect the total immediately (which is not the case). 2010-06-12 Sample 2 assert account("Expenses:Food").total == $100 Expenses:Food $50 assert account("Expenses:Food").total == $100 Assets:Checking assert account("Expenses:Food").total == $100
* Automated xacts may now contain "deferred tags"John Wiegley2010-06-131-1/+27
| | | | | | | | | | | | | | | | For example, consider the following automated transaction: = /Food/ ; Next Date:: date + 10 (Expenses:Tax) 1.00 ; Next Date:: date + 20 This will add a metadata field named 'Next Date' to the _matching posting_, with a value that is 10 days later than that posting. It will also generate a new posting for that transaction, whose amount is the same as the matching posting. Further, it will add a 'Next Date' metadata tag to the _generated posting_ whose value is 20 days later than the date of the matching posting.
* Untabified all source filesJohn Wiegley2010-06-111-4/+4
|
* Updated copyrights to 2003-2010John Wiegley2010-03-051-1/+1
|
* Memoize results from the fast predicate matcherJohn Wiegley2009-11-141-0/+2
| | | | | This gains another 15% for the parser, again with a very simple change that has no impact if the fast predicate matcher fails to work.
* Spot optimization for simple automated xact exprsJohn Wiegley2009-11-141-3/+5
| | | | | | This reduces parsing time in the optimized build by 25%, and was a safe, easy patch. If the "quick predicate evaluator" fails, we disable it from that point on go back to what the standard code does.
* Added has_xdata() methods for journal_t and xact_tJohn Wiegley2009-11-121-0/+1
|
* Transactions now verified after applying auto xactsJohn Wiegley2009-11-111-1/+2
| | | | | This way you cannot violate the balancing rules, not even by adding a stray posting via an automated transaction.
* Did away with the "finalizer" abstractionJohn Wiegley2009-11-111-70/+0
| | | | | This was from an earlier time, when it was intended to be used by Python. But it's not needed anymore.
* Automated postings defer amount expression calculationJohn Wiegley2009-11-111-9/+9
| | | | | | | | | | | | | | | | | This allows for value expressions to be used which reference the incoming posting, for example: = Income:Clients: (Liabilities:Taxes:VAT1) (floor(amount) * 1) (Liabilities:Taxes:VAT2) 0.19 2009/07/27 * Invoice Assets:Bank:Checking $1,190.45 Income:Clients:ACME_Inc The automated posting for VAT1 will use the floored amount multiplied by a factor, while the posting for VAT2 multiples the whole amount as before.
* XML reporting now works via the "xml" commandJohn Wiegley2009-11-091-0/+2
|
* Redesigned the expr_t, predicate_t, query_t classesJohn Wiegley2009-11-091-3/+3
|
* Removed a bunch of empty commentsJohn Wiegley2009-11-081-39/+0
|
* Report sought magnitude when balancing errors occurJohn Wiegley2009-11-051-1/+2
|
* Moved xdata clearing code into each type properJohn Wiegley2009-11-051-0/+3
|
* Transactions, etc., are now accessed by iteratorsJohn Wiegley2009-11-051-0/+7
|
* Segregated symbols into 5 separate namespacesJohn Wiegley2009-11-041-1/+2
| | | | | | | | | | | | | | | | | | | | | The different namespaces are: Function Value expression functions, which receive a "context" Option Command-line options Precommand Commands which are invoked before reading the journal Command Commands which are invoked after reading the journal Directive Directives that occur at column 0 in a data file This greatly eases the ability for Python uses to add intercept hooks to change how the basic Ledger module functions. An example of what should be possible soon: import ledger def my_foo_handler(value): print "--foo received:", value ledger.add_handler(ledger.Option, "foo=", my_foo_handler)
* Whitespace fixJohn Wiegley2009-11-041-5/+5
|
* Whitespace fixesJohn Wiegley2009-11-011-1/+0
|
* Fix to xact_t::valid()John Wiegley2009-11-011-12/+3
|
* Removed most #if 0 blocks and callout commentsJohn Wiegley2009-10-311-2/+0
|