| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
[skip ci]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In `ledger xml` export, include the `<posting>`-specific payee (from the
`Payee:` tag) as `<payee>`. This data is already included under
`<metadata>` as `<value key="Payee">`, but that is more specific to
Ledger's implementation; if in the future there is another way to set
the payee (or perhaps an option to have the Payee tag in one's own
language), that field wouldn't be a reliable method of getting this
info.
Example:
2022-01-01 Transaction-level payee
a 10
b ; Payee: Posting-level payee
Relevant XML output:
<transaction>
<date>2022-01-01</date>
<payee>Transaction-level payee</payee>
<postings>
<posting>
<account ref="0000558defd6f260">
<name>a</name>
</account>
<post-amount>
<amount>
<quantity>10</quantity>
</amount>
</post-amount>
<total>
<amount>
<quantity>10</quantity>
</amount>
</total>
</posting>
<posting>
<payee>Posting-level payee</payee>
<account ref="0000558defd6f960">
<name>b</name>
</account>
<post-amount>
<amount>
<quantity>-10</quantity>
</amount>
</post-amount>
<note> Payee: Posting-level payee</note>
<metadata>
<value key="Payee">
<string>Posting-level payee</string>
</value>
</metadata>
<total>
<amount>
<quantity>0</quantity>
</amount>
</total>
</posting>
</postings>
</transaction>
|
| |
|
| |
|
|
|
|
| |
Fixes #1905
|
|
|
|
|
| |
Payees declared on posting's metadata are now validated with `--check-payees`
option. Also, their aliases are now considered on reports as well.
|
|
|
|
| |
[ci skip]
|
|
|
|
| |
[ci skip]
|
|
|
|
| |
[ci skip]
|
|
|
|
|
|
| |
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}/"
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
As the format used by property trees to represent valid JSON
and that for valid XML is too different and given that there are
more requests for valid XML output I decided to pursue a quick fix
and remove the json command in favor of a working xml command.
See bug #782, #909, recent discussion on mailing list.
JSON support is postponed until I or someone else finds time to work on
this or the python bindings are more stable.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a posting has the metadata field "Payee" set to a string, that will
be used as the payee name for that posting. This affects the register
report, the payees report, and the --by-payee option.
This is useful because sometimes I send, say, 4 checks at a time to my
bank. So on my bank statement, this is all just one amount:
2010-06-17 Sample
Assets:Bank $400.00
Income:Check1 $-100.00
Income:Check2 $-100.00
Income:Check3 $-100.00
Income:Check4 $-100.00
Though it's important that the Assets:Bank posting be a single posting
of $400 value, I'd like for income reports to show whom each check came
from. Now I can say:
2010-06-17 Sample
Assets:Bank $400.00
Income:Check1 $-100.00 ; Payee: Person One
Income:Check2 $-100.00 ; Payee: Person Two
Income:Check3 $-100.00 ; Payee: Person Three
Income:Check4 $-100.00 ; Payee: Person Four
When I report this, it appears as:
10-Jun-17 Sample Assets:Bank $400.00 $400.00
Person One Income:Check1 $-100.00 $300.00
Person Two Income:Check2 $-100.00 $200.00
Person Three Income:Check3 $-100.00 $100.00
Person Four Income:Check4 $-100.00 0
This shows that they are all in the same transaction (which is why the
date is not repeated), but they have different payees.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Thus, an expression can know if the context in which it's being
evaluated requires a string, and if so, determine it's output
accordingly. For example:
account ; returns the full name of the posting's account
account.total ; here the context is SCOPE, so account is an obj
|
| |
|
|
|
|
|
|
| |
For example, just the word "account" returns the name of the current
posting's account, but account("Expenses:Food") returns the actual
account object, so that it's total may be accessed.
|
|
|
|
|
|
| |
Without arguments -- and in a posting -- it is equivalent to
"commodity(amount)". Otherwise, it returns the commodity symbol of its
argument.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
With -s, -M/Y/D, -n, and a few other flags, postings get "grouped" into
meta-transactions that contain more postings than before. In all these
cases, -V use the date of the *earliest* posting in that group, which
makes little sense and caused breakages with -J. It now uses the latest
date.
Fixes #197 / 68EAF363-D0FE-4127-866E-A5AEBACB65D6
|
| |
|
|
|
|
|
|
|
|
|
| |
Where display_account might be '(Expenses:Food)', account will always be
'Expenses:Food'. account is now used by all matching and query
operations, while display_account is used in the various report outputs
(besides balance, which never distinguished virtual accounts).
Fixes F2832452-4521-49A3-B854-F4E12CC4D82E
|
|
|
|
|
|
|
|
|
|
|
| |
Fields are now:
Date,Code,Payee,Account,Commodity,Total,State,Note
Instead of outputting amounts potentially as $1,000.00 (which was an
error anyway), the output is now: $,1000.00. This makes the commodity
available in a separate field, and removes display of thousands markers.
Also, european formatting is always off.
|
|
|
|
|
| |
account_id is the "whicheth" number for that posting within its
account. The xact_id is within its transaction.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
any() matches an expression against every post in a transaction or
account, and returns true if any of them are true. all() tests if all
are true. For example:
ledger -l 'account =~ /Expense/ & any(account =~ /MasterCard/)' reg
This reports every posting affecting an Expense account (regex match),
but only if some other posting in the same transaction affects the
MasterCard account.
Both functions also take a second boolean argument. If it is false, the
"source" posting is not considered. For example:
ledger -l 'any(/x/, false)'
This matches any posting where a *different* posting in the same
transaction contains the letter 'x'.
|
|
|
|
|
| |
There ended up being too many corner cases for the generalized formatter
to handle.
|
| |
|