;doc: regen man pages
[ci skip]
This commit is contained in:
parent
29f7654c3a
commit
b1859769ac
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
.TH "hledger_csv" "5" "March 2019" "hledger 1.14.99" "hledger User Manuals"
|
.TH "hledger_csv" "5" "August 2019" "hledger 1.15" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -186,6 +186,9 @@ comment note: %somefield - %anotherfield, date: %1
|
|||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
Field assignments can be used instead of or in addition to a field list.
|
Field assignments can be used instead of or in addition to a field list.
|
||||||
|
.PP
|
||||||
|
Note, interpolation strips any outer whitespace, so a CSV value like
|
||||||
|
\f[C]\[dq] 1 \[dq]\f[R] becomes \f[C]1\f[R] when interpolated (#1051).
|
||||||
.SS conditional block
|
.SS conditional block
|
||||||
.PP
|
.PP
|
||||||
\f[C]if\f[R] \f[I]\f[CI]PATTERN\f[I]\f[R]
|
\f[C]if\f[R] \f[I]\f[CI]PATTERN\f[I]\f[R]
|
||||||
@ -332,6 +335,18 @@ arguments on the command line, and hledger will look for a
|
|||||||
correspondingly-named rules file for each.
|
correspondingly-named rules file for each.
|
||||||
Note if you use the \f[C]--rules-file\f[R] option, this one rules file
|
Note if you use the \f[C]--rules-file\f[R] option, this one rules file
|
||||||
will be used for all the CSV files being read.
|
will be used for all the CSV files being read.
|
||||||
|
.SS Valid CSV
|
||||||
|
.PP
|
||||||
|
hledger follows RFC 4180, with the addition of a customisable separator
|
||||||
|
character.
|
||||||
|
.PP
|
||||||
|
Some things to note:
|
||||||
|
.PP
|
||||||
|
When quoting fields,
|
||||||
|
.IP \[bu] 2
|
||||||
|
you must use double quotes, not single quotes
|
||||||
|
.IP \[bu] 2
|
||||||
|
spaces outside the quotes are not allowed.
|
||||||
|
|
||||||
|
|
||||||
.SH "REPORTING BUGS"
|
.SH "REPORTING BUGS"
|
||||||
|
|||||||
@ -3,8 +3,8 @@ This is hledger_csv.info, produced by makeinfo version 6.5 from stdin.
|
|||||||
|
|
||||||
File: hledger_csv.info, Node: Top, Next: CSV RULES, Up: (dir)
|
File: hledger_csv.info, Node: Top, Next: CSV RULES, Up: (dir)
|
||||||
|
|
||||||
hledger_csv(5) hledger 1.14.99
|
hledger_csv(5) hledger 1.15
|
||||||
******************************
|
***************************
|
||||||
|
|
||||||
hledger can read CSV (comma-separated value) files as if they were
|
hledger can read CSV (comma-separated value) files as if they were
|
||||||
journal files, automatically converting each CSV record into a
|
journal files, automatically converting each CSV record into a
|
||||||
@ -171,6 +171,9 @@ comment note: %somefield - %anotherfield, date: %1
|
|||||||
Field assignments can be used instead of or in addition to a field
|
Field assignments can be used instead of or in addition to a field
|
||||||
list.
|
list.
|
||||||
|
|
||||||
|
Note, interpolation strips any outer whitespace, so a CSV value like
|
||||||
|
'" 1 "' becomes '1' when interpolated (#1051).
|
||||||
|
|
||||||
|
|
||||||
File: hledger_csv.info, Node: conditional block, Next: include, Prev: field assignment, Up: CSV RULES
|
File: hledger_csv.info, Node: conditional block, Next: include, Prev: field assignment, Up: CSV RULES
|
||||||
|
|
||||||
@ -248,6 +251,7 @@ File: hledger_csv.info, Node: CSV TIPS, Prev: CSV RULES, Up: Top
|
|||||||
* CSV amounts::
|
* CSV amounts::
|
||||||
* CSV balance assertions/assignments::
|
* CSV balance assertions/assignments::
|
||||||
* Reading multiple CSV files::
|
* Reading multiple CSV files::
|
||||||
|
* Valid CSV::
|
||||||
|
|
||||||
|
|
||||||
File: hledger_csv.info, Node: CSV ordering, Next: CSV accounts, Up: CSV TIPS
|
File: hledger_csv.info, Node: CSV ordering, Next: CSV accounts, Up: CSV TIPS
|
||||||
@ -317,7 +321,7 @@ assignment), on the first or second posting, whenever the running
|
|||||||
balance field is non-empty. (TODO: #1000)
|
balance field is non-empty. (TODO: #1000)
|
||||||
|
|
||||||
|
|
||||||
File: hledger_csv.info, Node: Reading multiple CSV files, Prev: CSV balance assertions/assignments, Up: CSV TIPS
|
File: hledger_csv.info, Node: Reading multiple CSV files, Next: Valid CSV, Prev: CSV balance assertions/assignments, Up: CSV TIPS
|
||||||
|
|
||||||
2.5 Reading multiple CSV files
|
2.5 Reading multiple CSV files
|
||||||
==============================
|
==============================
|
||||||
@ -327,36 +331,54 @@ the command line, and hledger will look for a correspondingly-named
|
|||||||
rules file for each. Note if you use the '--rules-file' option, this
|
rules file for each. Note if you use the '--rules-file' option, this
|
||||||
one rules file will be used for all the CSV files being read.
|
one rules file will be used for all the CSV files being read.
|
||||||
|
|
||||||
|
|
||||||
|
File: hledger_csv.info, Node: Valid CSV, Prev: Reading multiple CSV files, Up: CSV TIPS
|
||||||
|
|
||||||
|
2.6 Valid CSV
|
||||||
|
=============
|
||||||
|
|
||||||
|
hledger follows RFC 4180, with the addition of a customisable separator
|
||||||
|
character.
|
||||||
|
|
||||||
|
Some things to note:
|
||||||
|
|
||||||
|
When quoting fields,
|
||||||
|
|
||||||
|
* you must use double quotes, not single quotes
|
||||||
|
* spaces outside the quotes are not allowed.
|
||||||
|
|
||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top72
|
Node: Top72
|
||||||
Node: CSV RULES2167
|
Node: CSV RULES2161
|
||||||
Ref: #csv-rules2275
|
Ref: #csv-rules2269
|
||||||
Node: skip2538
|
Node: skip2532
|
||||||
Ref: #skip2632
|
Ref: #skip2626
|
||||||
Node: date-format2804
|
Node: date-format2798
|
||||||
Ref: #date-format2931
|
Ref: #date-format2925
|
||||||
Node: field list3481
|
Node: field list3475
|
||||||
Ref: #field-list3618
|
Ref: #field-list3612
|
||||||
Node: field assignment4348
|
Node: field assignment4342
|
||||||
Ref: #field-assignment4503
|
Ref: #field-assignment4497
|
||||||
Node: conditional block5007
|
Node: conditional block5121
|
||||||
Ref: #conditional-block5161
|
Ref: #conditional-block5275
|
||||||
Node: include6057
|
Node: include6171
|
||||||
Ref: #include6187
|
Ref: #include6301
|
||||||
Node: newest-first6418
|
Node: newest-first6532
|
||||||
Ref: #newest-first6532
|
Ref: #newest-first6646
|
||||||
Node: CSV TIPS6943
|
Node: CSV TIPS7057
|
||||||
Ref: #csv-tips7037
|
Ref: #csv-tips7151
|
||||||
Node: CSV ordering7167
|
Node: CSV ordering7295
|
||||||
Ref: #csv-ordering7285
|
Ref: #csv-ordering7413
|
||||||
Node: CSV accounts7466
|
Node: CSV accounts7594
|
||||||
Ref: #csv-accounts7604
|
Ref: #csv-accounts7732
|
||||||
Node: CSV amounts7858
|
Node: CSV amounts7986
|
||||||
Ref: #csv-amounts8016
|
Ref: #csv-amounts8144
|
||||||
Node: CSV balance assertions/assignments9096
|
Node: CSV balance assertions/assignments9224
|
||||||
Ref: #csv-balance-assertionsassignments9314
|
Ref: #csv-balance-assertionsassignments9442
|
||||||
Node: Reading multiple CSV files9635
|
Node: Reading multiple CSV files9763
|
||||||
Ref: #reading-multiple-csv-files9817
|
Ref: #reading-multiple-csv-files9963
|
||||||
|
Node: Valid CSV10237
|
||||||
|
Ref: #valid-csv10360
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
@ -134,6 +134,9 @@ CSV RULES
|
|||||||
Field assignments can be used instead of or in addition to a field
|
Field assignments can be used instead of or in addition to a field
|
||||||
list.
|
list.
|
||||||
|
|
||||||
|
Note, interpolation strips any outer whitespace, so a CSV value like "
|
||||||
|
1 " becomes 1 when interpolated (#1051).
|
||||||
|
|
||||||
conditional block
|
conditional block
|
||||||
if PATTERN
|
if PATTERN
|
||||||
FIELDASSIGNMENTS...
|
FIELDASSIGNMENTS...
|
||||||
@ -143,12 +146,12 @@ CSV RULES
|
|||||||
PATTERN...
|
PATTERN...
|
||||||
FIELDASSIGNMENTS...
|
FIELDASSIGNMENTS...
|
||||||
|
|
||||||
This applies one or more field assignments, only to those CSV records
|
This applies one or more field assignments, only to those CSV records
|
||||||
matched by one of the PATTERNs. The patterns are case-insensitive reg-
|
matched by one of the PATTERNs. The patterns are case-insensitive reg-
|
||||||
ular expressions which match anywhere within the whole CSV record (it's
|
ular expressions which match anywhere within the whole CSV record (it's
|
||||||
not yet possible to match within a specific field). When there are
|
not yet possible to match within a specific field). When there are
|
||||||
multiple patterns they can be written on separate lines, unindented.
|
multiple patterns they can be written on separate lines, unindented.
|
||||||
The field assignments are on separate lines indented by at least one
|
The field assignments are on separate lines indented by at least one
|
||||||
space. Examples:
|
space. Examples:
|
||||||
|
|
||||||
# if the CSV record contains "groceries", set account2 to "expenses:groceries"
|
# if the CSV record contains "groceries", set account2 to "expenses:groceries"
|
||||||
@ -175,33 +178,33 @@ CSV RULES
|
|||||||
newest-first
|
newest-first
|
||||||
newest-first
|
newest-first
|
||||||
|
|
||||||
Consider adding this rule if all of the following are true: you might
|
Consider adding this rule if all of the following are true: you might
|
||||||
be processing just one day of data, your CSV records are in reverse
|
be processing just one day of data, your CSV records are in reverse
|
||||||
chronological order (newest first), and you care about preserving the
|
chronological order (newest first), and you care about preserving the
|
||||||
order of same-day transactions. It usually isn't needed, because
|
order of same-day transactions. It usually isn't needed, because
|
||||||
hledger autodetects the CSV order, but when all CSV records have the
|
hledger autodetects the CSV order, but when all CSV records have the
|
||||||
same date it will assume they are oldest first.
|
same date it will assume they are oldest first.
|
||||||
|
|
||||||
CSV TIPS
|
CSV TIPS
|
||||||
CSV ordering
|
CSV ordering
|
||||||
The generated journal entries will be sorted by date. The order of
|
The generated journal entries will be sorted by date. The order of
|
||||||
same-day entries will be preserved (except in the special case where
|
same-day entries will be preserved (except in the special case where
|
||||||
you might need newest-first, see above).
|
you might need newest-first, see above).
|
||||||
|
|
||||||
CSV accounts
|
CSV accounts
|
||||||
Each journal entry will have two postings, to account1 and account2
|
Each journal entry will have two postings, to account1 and account2
|
||||||
respectively. It's not yet possible to generate entries with more than
|
respectively. It's not yet possible to generate entries with more than
|
||||||
two postings. It's conventional and recommended to use account1 for
|
two postings. It's conventional and recommended to use account1 for
|
||||||
the account whose CSV we are reading.
|
the account whose CSV we are reading.
|
||||||
|
|
||||||
CSV amounts
|
CSV amounts
|
||||||
A transaction amount must be set, in one of these ways:
|
A transaction amount must be set, in one of these ways:
|
||||||
|
|
||||||
o with an amount field assignment, which sets the first posting's
|
o with an amount field assignment, which sets the first posting's
|
||||||
amount
|
amount
|
||||||
|
|
||||||
o (When the CSV has debit and credit amounts in separate fields:)
|
o (When the CSV has debit and credit amounts in separate fields:)
|
||||||
with field assignments for the amount-in and amount-out pseudo fields
|
with field assignments for the amount-in and amount-out pseudo fields
|
||||||
(both of them). Whichever one has a value will be used, with appropri-
|
(both of them). Whichever one has a value will be used, with appropri-
|
||||||
ate sign. If both contain a value, it might not work so well.
|
ate sign. If both contain a value, it might not work so well.
|
||||||
|
|
||||||
@ -209,33 +212,45 @@ CSV TIPS
|
|||||||
|
|
||||||
There is some special handling for sign in amounts:
|
There is some special handling for sign in amounts:
|
||||||
|
|
||||||
o If an amount value is parenthesised, it will be de-parenthesised and
|
o If an amount value is parenthesised, it will be de-parenthesised and
|
||||||
sign-flipped.
|
sign-flipped.
|
||||||
|
|
||||||
o If an amount value begins with a double minus sign, those will cancel
|
o If an amount value begins with a double minus sign, those will cancel
|
||||||
out and be removed.
|
out and be removed.
|
||||||
|
|
||||||
If the currency/commodity symbol is provided as a separate CSV field,
|
If the currency/commodity symbol is provided as a separate CSV field,
|
||||||
assign it to the currency pseudo field; the symbol will be prepended to
|
assign it to the currency pseudo field; the symbol will be prepended to
|
||||||
the amount (TODO: when there is an amount). Or, you can use an amount
|
the amount (TODO: when there is an amount). Or, you can use an amount
|
||||||
field assignment for more control, eg:
|
field assignment for more control, eg:
|
||||||
|
|
||||||
fields date,description,currency,amount
|
fields date,description,currency,amount
|
||||||
amount %amount %currency
|
amount %amount %currency
|
||||||
|
|
||||||
CSV balance assertions/assignments
|
CSV balance assertions/assignments
|
||||||
If the CSV includes a running balance, you can assign that to one of
|
If the CSV includes a running balance, you can assign that to one of
|
||||||
the pseudo fields balance (or balance1) or balance2. This will gener-
|
the pseudo fields balance (or balance1) or balance2. This will gener-
|
||||||
ate a balance assertion (or if the amount is left empty, a balance
|
ate a balance assertion (or if the amount is left empty, a balance
|
||||||
assignment), on the first or second posting, whenever the running bal-
|
assignment), on the first or second posting, whenever the running bal-
|
||||||
ance field is non-empty. (TODO: #1000)
|
ance field is non-empty. (TODO: #1000)
|
||||||
|
|
||||||
Reading multiple CSV files
|
Reading multiple CSV files
|
||||||
You can read multiple CSV files at once using multiple -f arguments on
|
You can read multiple CSV files at once using multiple -f arguments on
|
||||||
the command line, and hledger will look for a correspondingly-named
|
the command line, and hledger will look for a correspondingly-named
|
||||||
rules file for each. Note if you use the --rules-file option, this one
|
rules file for each. Note if you use the --rules-file option, this one
|
||||||
rules file will be used for all the CSV files being read.
|
rules file will be used for all the CSV files being read.
|
||||||
|
|
||||||
|
Valid CSV
|
||||||
|
hledger follows RFC 4180, with the addition of a customisable separator
|
||||||
|
character.
|
||||||
|
|
||||||
|
Some things to note:
|
||||||
|
|
||||||
|
When quoting fields,
|
||||||
|
|
||||||
|
o you must use double quotes, not single quotes
|
||||||
|
|
||||||
|
o spaces outside the quotes are not allowed.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
REPORTING BUGS
|
REPORTING BUGS
|
||||||
@ -261,4 +276,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger 1.14.99 March 2019 hledger_csv(5)
|
hledger 1.15 August 2019 hledger_csv(5)
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
.\"t
|
.\"t
|
||||||
|
|
||||||
.TH "hledger_journal" "5" "March 2019" "hledger 1.14.99" "hledger User Manuals"
|
.TH "hledger_journal" "5" "August 2019" "hledger 1.15" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -314,11 +314,12 @@ can be used for whatever you wish, or left blank.
|
|||||||
Transaction descriptions can be queried, unlike comments.
|
Transaction descriptions can be queried, unlike comments.
|
||||||
.SS Payee and note
|
.SS Payee and note
|
||||||
.PP
|
.PP
|
||||||
You can optionally include a \f[C]|\f[R] (pipe) character in a
|
You can optionally include a \f[C]|\f[R] (pipe) character in
|
||||||
description to subdivide it into a payee/payer name on the left and
|
descriptions to subdivide the description into separate fields for
|
||||||
additional notes on the right.
|
payee/payer name on the left (up to the first \f[C]|\f[R]) and an
|
||||||
|
additional note field on the right (after the first \f[C]|\f[R]).
|
||||||
This may be worthwhile if you need to do more precise querying and
|
This may be worthwhile if you need to do more precise querying and
|
||||||
pivoting by payee.
|
pivoting by payee or by note.
|
||||||
.SS Account names
|
.SS Account names
|
||||||
.PP
|
.PP
|
||||||
Account names typically have several parts separated by a full colon,
|
Account names typically have several parts separated by a full colon,
|
||||||
@ -727,7 +728,7 @@ Write the price per unit, as \f[C]\[at] UNITPRICE\f[R] after the amount:
|
|||||||
\f[C]
|
\f[C]
|
||||||
2009/1/1
|
2009/1/1
|
||||||
assets:euros \[Eu]100 \[at] $1.35 ; one hundred euros purchased at $1.35 each
|
assets:euros \[Eu]100 \[at] $1.35 ; one hundred euros purchased at $1.35 each
|
||||||
assets:dollars ; balancing amount is -$135.00
|
assets:dollars ; balancing amount is -$135.00
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.RE
|
.RE
|
||||||
@ -752,8 +753,8 @@ hledger infer the price that balances the transaction:
|
|||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
2009/1/1
|
2009/1/1
|
||||||
assets:euros \[Eu]100 ; one hundred euros purchased
|
assets:euros \[Eu]100 ; one hundred euros purchased
|
||||||
assets:dollars $-135 ; for $135
|
assets:dollars $-135 ; for $135
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.RE
|
.RE
|
||||||
@ -786,8 +787,8 @@ equivalent, -B shows something different:
|
|||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
2009/1/1
|
2009/1/1
|
||||||
assets:dollars $-135 ; 135 dollars sold
|
assets:dollars $-135 ; 135 dollars sold
|
||||||
assets:euros \[Eu]100 ; for 100 euros
|
assets:euros \[Eu]100 ; for 100 euros
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP
|
.IP
|
||||||
@ -870,7 +871,7 @@ comma separated:
|
|||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
assets:checking ; a comment containing tag1:, tag2: some value ...
|
assets:checking ; a comment containing tag1:, tag2: some value ...
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
@ -1118,7 +1119,8 @@ Y2010 ; change default year to 2010
|
|||||||
.SS Declaring commodities
|
.SS Declaring commodities
|
||||||
.PP
|
.PP
|
||||||
The \f[C]commodity\f[R] directive declares commodities which may be used
|
The \f[C]commodity\f[R] directive declares commodities which may be used
|
||||||
in the journal (though currently we do not enforce this).
|
in the journal, and their display format.
|
||||||
|
.PP
|
||||||
It may be written on a single line, like this:
|
It may be written on a single line, like this:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
@ -1149,14 +1151,20 @@ commodity INR
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
Commodity directives have a second purpose: they define the standard
|
Declaring commodites may be useful as documentation, but currently we do
|
||||||
display format for amounts in the commodity.
|
not enforce that only declared commodities may be used.
|
||||||
|
This directive is mainly useful for customising the preferred display
|
||||||
|
format for a commodity.
|
||||||
|
.PP
|
||||||
Normally the display format is inferred from journal entries, but this
|
Normally the display format is inferred from journal entries, but this
|
||||||
can be unpredictable; declaring it with a commodity directive overrides
|
can be unpredictable; declaring it with a commodity directive overrides
|
||||||
this and removes ambiguity.
|
this and removes ambiguity.
|
||||||
Towards this end, amounts in commodity directives must always be written
|
Towards this end, amounts in commodity directives must always be written
|
||||||
with a decimal point (a period or comma, followed by 0 or more decimal
|
with a decimal point (a period or comma, followed by 0 or more decimal
|
||||||
digits).
|
digits).
|
||||||
|
.PP
|
||||||
|
Commodity directives do not affect how amounts are parsed; the parser
|
||||||
|
will read multiple formats.
|
||||||
.SS Default commodity
|
.SS Default commodity
|
||||||
.PP
|
.PP
|
||||||
The \f[C]D\f[R] directive sets a default commodity (and display format),
|
The \f[C]D\f[R] directive sets a default commodity (and display format),
|
||||||
@ -1334,11 +1342,11 @@ Eg:
|
|||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
; make \[dq]liabilities\[dq] not have the liability type - who knows why
|
; make \[dq]liabilities\[dq] not have the liability type - who knows why
|
||||||
account liabilities ; type:E
|
account liabilities ; type:E
|
||||||
|
|
||||||
; we need to ensure some other account has the liability type,
|
; we need to ensure some other account has the liability type,
|
||||||
; otherwise balancesheet would still show \[dq]liabilities\[dq] under Liabilities
|
; otherwise balancesheet would still show \[dq]liabilities\[dq] under Liabilities
|
||||||
account - ; type:L
|
account - ; type:L
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.SS Account display order
|
.SS Account display order
|
||||||
@ -1474,20 +1482,39 @@ alias /\[ha](.+):bank:([\[ha]:]+)(.*)/ = \[rs]1:\[rs]2 \[rs]3
|
|||||||
.PP
|
.PP
|
||||||
Also note that REPLACEMENT continues to the end of line (or on command
|
Also note that REPLACEMENT continues to the end of line (or on command
|
||||||
line, to end of option argument), so it can contain trailing whitespace.
|
line, to end of option argument), so it can contain trailing whitespace.
|
||||||
.SS Multiple aliases
|
.SS Combining aliases
|
||||||
.PP
|
.PP
|
||||||
You can define as many aliases as you like using directives or
|
You can define as many aliases as you like, using journal directives
|
||||||
command-line options.
|
and/or command line options.
|
||||||
Aliases are recursive - each alias sees the result of applying previous
|
.PP
|
||||||
ones.
|
Recursive aliases - where an account name is rewritten by one alias,
|
||||||
(This is different from Ledger, where aliases are non-recursive by
|
then by another alias, and so on - are allowed.
|
||||||
default).
|
Each alias sees the effect of previously applied aliases.
|
||||||
Aliases are applied in the following order:
|
.PP
|
||||||
|
In such cases it can be important to understand which aliases will be
|
||||||
|
applied and in which order.
|
||||||
|
For (each account name in) each journal entry, we apply:
|
||||||
.IP "1." 3
|
.IP "1." 3
|
||||||
alias directives, most recently seen first (recent directives take
|
\f[C]alias\f[R] directives preceding the journal entry, most recently
|
||||||
precedence over earlier ones; directives not yet seen are ignored)
|
parsed first (ie, reading upward from the journal entry, bottom to top)
|
||||||
.IP "2." 3
|
.IP "2." 3
|
||||||
alias options, in the order they appear on the command line
|
\f[C]--alias\f[R] options, in the order they appeared on the command
|
||||||
|
line (left to right).
|
||||||
|
.PP
|
||||||
|
In other words, for (an account name in) a given journal entry:
|
||||||
|
.IP \[bu] 2
|
||||||
|
the nearest alias declaration before/above the entry is applied first
|
||||||
|
.IP \[bu] 2
|
||||||
|
the next alias before/above that will be be applied next, and so on
|
||||||
|
.IP \[bu] 2
|
||||||
|
aliases defined after/below the entry do not affect it.
|
||||||
|
.PP
|
||||||
|
This gives nearby aliases precedence over distant ones, and helps
|
||||||
|
provide semantic stability - aliases will keep working the same way
|
||||||
|
independent of which files are being read and in which order.
|
||||||
|
.PP
|
||||||
|
In case of trouble, adding \f[C]--debug=6\f[R] to the command line will
|
||||||
|
show which aliases are being applied when.
|
||||||
.SS \f[C]end aliases\f[R]
|
.SS \f[C]end aliases\f[R]
|
||||||
.PP
|
.PP
|
||||||
You can clear (forget) all currently defined aliases with the
|
You can clear (forget) all currently defined aliases with the
|
||||||
@ -1603,8 +1630,18 @@ example:
|
|||||||
With the \f[C]--forecast\f[R] flag, each periodic transaction rule
|
With the \f[C]--forecast\f[R] flag, each periodic transaction rule
|
||||||
generates future transactions recurring at the specified interval.
|
generates future transactions recurring at the specified interval.
|
||||||
These are not saved in the journal, but appear in all reports.
|
These are not saved in the journal, but appear in all reports.
|
||||||
They will look like normal transactions, but with an extra tag named
|
They will look like normal transactions, but with an extra tag:
|
||||||
\f[C]recur\f[R], whose value is the generating period expression.
|
.IP \[bu] 2
|
||||||
|
\f[C]generated-transaction:\[ti] PERIODICEXPR\f[R] - shows that this was
|
||||||
|
generated by a periodic transaction rule, and the period
|
||||||
|
.PP
|
||||||
|
There is also a hidden tag, with an underscore prefix, which does not
|
||||||
|
appear in hledger\[aq]s output:
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]_generated-transaction:\[ti] PERIODICEXPR\f[R]
|
||||||
|
.PP
|
||||||
|
This can be used to match transactions generated \[dq]just now\[dq],
|
||||||
|
rather than generated in the past and saved to the journal.
|
||||||
.PP
|
.PP
|
||||||
Forecast transactions start on the first occurrence, and end on the last
|
Forecast transactions start on the first occurrence, and end on the last
|
||||||
occurrence, of their interval within the forecast period.
|
occurrence, of their interval within the forecast period.
|
||||||
@ -1654,16 +1691,16 @@ and Forecasting.
|
|||||||
.PP
|
.PP
|
||||||
.SS Auto postings / transaction modifiers
|
.SS Auto postings / transaction modifiers
|
||||||
.PP
|
.PP
|
||||||
Transaction modifier rules describe changes to be applied automatically
|
Transaction modifier rules, AKA auto posting rules, describe changes to
|
||||||
to certain matched transactions.
|
be applied automatically to certain matched transactions.
|
||||||
Currently just one kind of change is possible - adding extra postings,
|
Currently just one kind of change is possible - adding extra postings,
|
||||||
which we call \[dq]automated postings\[dq] or just \[dq]auto
|
which we call \[dq]automated postings\[dq] or just \[dq]auto
|
||||||
postings\[dq].
|
postings\[dq].
|
||||||
These rules become active when you use the \f[C]--auto\f[R] flag.
|
These rules become active when you use the \f[C]--auto\f[R] flag.
|
||||||
.PP
|
.PP
|
||||||
A transaction modifier, AKA auto posting rule, looks much like a normal
|
A transaction modifier rule looks much like a normal transaction except
|
||||||
transaction except the first line is an equals sign followed by a query
|
the first line is an equals sign followed by a query that matches
|
||||||
that matches certain postings (mnemonic: \f[C]=\f[R] suggests matching).
|
certain postings (mnemonic: \f[C]=\f[R] suggests matching).
|
||||||
And each \[dq]posting\[dq] is actually a posting-generating rule:
|
And each \[dq]posting\[dq] is actually a posting-generating rule:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
@ -1736,6 +1773,11 @@ $ hledger print --auto
|
|||||||
assets:checking $20
|
assets:checking $20
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
|
.SS Auto postings and dates
|
||||||
|
.PP
|
||||||
|
A posting date (or secondary date) in the matched posting, or (taking
|
||||||
|
precedence) a posting date in the auto posting rule itself, will also be
|
||||||
|
used in the generated posting.
|
||||||
.SS Auto postings and transaction balancing / inferred amounts / balance assertions
|
.SS Auto postings and transaction balancing / inferred amounts / balance assertions
|
||||||
.PP
|
.PP
|
||||||
Currently, transaction modifiers are applied / auto postings are added:
|
Currently, transaction modifiers are applied / auto postings are added:
|
||||||
@ -1748,6 +1790,25 @@ but before balance assertions are checked.
|
|||||||
Note this means that journal entries must be balanced both before and
|
Note this means that journal entries must be balanced both before and
|
||||||
after auto postings are added.
|
after auto postings are added.
|
||||||
This changed in hledger 1.12+; see #893 for background.
|
This changed in hledger 1.12+; see #893 for background.
|
||||||
|
.SS Auto posting tags
|
||||||
|
.PP
|
||||||
|
Postings added by transaction modifiers will have some extra tags:
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]generated-posting:= QUERY\f[R] - shows this was generated by an
|
||||||
|
auto posting rule, and the query
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]_generated-posting:= QUERY\f[R] - a hidden tag, which does not
|
||||||
|
appear in hledger\[aq]s output.
|
||||||
|
This can be used to match postings generated \[dq]just now\[dq], rather
|
||||||
|
than generated in the past and saved to the journal.
|
||||||
|
.PP
|
||||||
|
Also, any transaction that has been changed by transaction modifier
|
||||||
|
rules will have these tags added:
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]modified:\f[R] - this transaction was modified
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]_modified:\f[R] - a hidden tag not appearing in the comment; this
|
||||||
|
transaction was modified \[dq]just now\[dq].
|
||||||
.SH EDITOR SUPPORT
|
.SH EDITOR SUPPORT
|
||||||
.PP
|
.PP
|
||||||
Helper modes exist for popular text editors, which make working with
|
Helper modes exist for popular text editors, which make working with
|
||||||
|
|||||||
@ -4,8 +4,8 @@ stdin.
|
|||||||
|
|
||||||
File: hledger_journal.info, Node: Top, Next: FILE FORMAT, Up: (dir)
|
File: hledger_journal.info, Node: Top, Next: FILE FORMAT, Up: (dir)
|
||||||
|
|
||||||
hledger_journal(5) hledger 1.14.99
|
hledger_journal(5) hledger 1.15
|
||||||
**********************************
|
*******************************
|
||||||
|
|
||||||
hledger's usual data source is a plain text file containing journal
|
hledger's usual data source is a plain text file containing journal
|
||||||
entries in hledger journal format. This file represents a standard
|
entries in hledger journal format. This file represents a standard
|
||||||
@ -214,8 +214,8 @@ reports, and the deduction from checking should be reported on 6/1 for
|
|||||||
easy bank reconciliation:
|
easy bank reconciliation:
|
||||||
|
|
||||||
2015/5/30
|
2015/5/30
|
||||||
expenses:food $10 ; food purchased on saturday 5/30
|
expenses:food $10 ; food purchased on saturday 5/30
|
||||||
assets:checking ; bank cleared it on monday, date:6/1
|
assets:checking ; bank cleared it on monday, date:6/1
|
||||||
|
|
||||||
$ hledger -f t.j register food
|
$ hledger -f t.j register food
|
||||||
2015/05/30 expenses:food $10 $10
|
2015/05/30 expenses:food $10 $10
|
||||||
@ -307,10 +307,11 @@ File: hledger_journal.info, Node: Payee and note, Up: Description
|
|||||||
1.5.1 Payee and note
|
1.5.1 Payee and note
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
You can optionally include a '|' (pipe) character in a description to
|
You can optionally include a '|' (pipe) character in descriptions to
|
||||||
subdivide it into a payee/payer name on the left and additional notes on
|
subdivide the description into separate fields for payee/payer name on
|
||||||
the right. This may be worthwhile if you need to do more precise
|
the left (up to the first '|') and an additional note field on the right
|
||||||
querying and pivoting by payee.
|
(after the first '|'). This may be worthwhile if you need to do more
|
||||||
|
precise querying and pivoting by payee or by note.
|
||||||
|
|
||||||
|
|
||||||
File: hledger_journal.info, Node: Account names, Next: Amounts, Prev: Description, Up: FILE FORMAT
|
File: hledger_journal.info, Node: Account names, Next: Amounts, Prev: Description, Up: FILE FORMAT
|
||||||
@ -734,8 +735,8 @@ last amount. So if example 3's postings are reversed, while the
|
|||||||
transaction is equivalent, -B shows something different:
|
transaction is equivalent, -B shows something different:
|
||||||
|
|
||||||
2009/1/1
|
2009/1/1
|
||||||
assets:dollars $-135 ; 135 dollars sold
|
assets:dollars $-135 ; 135 dollars sold
|
||||||
assets:euros €100 ; for 100 euros
|
assets:euros €100 ; for 100 euros
|
||||||
|
|
||||||
$ hledger bal -N --flat -B
|
$ hledger bal -N --flat -B
|
||||||
€-100 assets:dollars # <- the dollars' selling price
|
€-100 assets:dollars # <- the dollars' selling price
|
||||||
@ -799,13 +800,13 @@ colon, written inside a transaction or posting comment line:
|
|||||||
Tags can have a value, which is the text after the colon, up to the
|
Tags can have a value, which is the text after the colon, up to the
|
||||||
next comma or end of line, with leading/trailing whitespace removed:
|
next comma or end of line, with leading/trailing whitespace removed:
|
||||||
|
|
||||||
expenses:food $10 ; a-posting-tag: the tag value
|
expenses:food $10 ; a-posting-tag: the tag value
|
||||||
|
|
||||||
Note this means hledger's tag values can not contain commas or
|
Note this means hledger's tag values can not contain commas or
|
||||||
newlines. Ending at commas means you can write multiple short tags on
|
newlines. Ending at commas means you can write multiple short tags on
|
||||||
one line, comma separated:
|
one line, comma separated:
|
||||||
|
|
||||||
assets:checking ; a comment containing tag1:, tag2: some value ...
|
assets:checking ; a comment containing tag1:, tag2: some value ...
|
||||||
|
|
||||||
Here,
|
Here,
|
||||||
|
|
||||||
@ -968,19 +969,19 @@ You can set a default year to be used for subsequent dates which don't
|
|||||||
specify a year. This is a line beginning with 'Y' followed by the year.
|
specify a year. This is a line beginning with 'Y' followed by the year.
|
||||||
Eg:
|
Eg:
|
||||||
|
|
||||||
Y2009 ; set default year to 2009
|
Y2009 ; set default year to 2009
|
||||||
|
|
||||||
12/15 ; equivalent to 2009/12/15
|
12/15 ; equivalent to 2009/12/15
|
||||||
expenses 1
|
expenses 1
|
||||||
assets
|
assets
|
||||||
|
|
||||||
Y2010 ; change default year to 2010
|
Y2010 ; change default year to 2010
|
||||||
|
|
||||||
2009/1/30 ; specifies the year, not affected
|
2009/1/30 ; specifies the year, not affected
|
||||||
expenses 1
|
expenses 1
|
||||||
assets
|
assets
|
||||||
|
|
||||||
1/31 ; equivalent to 2010/1/31
|
1/31 ; equivalent to 2010/1/31
|
||||||
expenses 1
|
expenses 1
|
||||||
assets
|
assets
|
||||||
|
|
||||||
@ -991,8 +992,9 @@ File: hledger_journal.info, Node: Declaring commodities, Next: Default commodi
|
|||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
The 'commodity' directive declares commodities which may be used in the
|
The 'commodity' directive declares commodities which may be used in the
|
||||||
journal (though currently we do not enforce this). It may be written on
|
journal, and their display format.
|
||||||
a single line, like this:
|
|
||||||
|
It may be written on a single line, like this:
|
||||||
|
|
||||||
; commodity EXAMPLEAMOUNT
|
; commodity EXAMPLEAMOUNT
|
||||||
|
|
||||||
@ -1014,13 +1016,19 @@ places:
|
|||||||
commodity INR
|
commodity INR
|
||||||
format INR 9,99,99,999.00
|
format INR 9,99,99,999.00
|
||||||
|
|
||||||
Commodity directives have a second purpose: they define the standard
|
Declaring commodites may be useful as documentation, but currently we
|
||||||
display format for amounts in the commodity. Normally the display
|
do not enforce that only declared commodities may be used. This
|
||||||
format is inferred from journal entries, but this can be unpredictable;
|
directive is mainly useful for customising the preferred display format
|
||||||
declaring it with a commodity directive overrides this and removes
|
for a commodity.
|
||||||
ambiguity. Towards this end, amounts in commodity directives must
|
|
||||||
always be written with a decimal point (a period or comma, followed by 0
|
Normally the display format is inferred from journal entries, but
|
||||||
or more decimal digits).
|
this can be unpredictable; declaring it with a commodity directive
|
||||||
|
overrides this and removes ambiguity. Towards this end, amounts in
|
||||||
|
commodity directives must always be written with a decimal point (a
|
||||||
|
period or comma, followed by 0 or more decimal digits).
|
||||||
|
|
||||||
|
Commodity directives do not affect how amounts are parsed; the parser
|
||||||
|
will read multiple formats.
|
||||||
|
|
||||||
|
|
||||||
File: hledger_journal.info, Node: Default commodity, Next: Market prices, Prev: Declaring commodities, Up: Directives
|
File: hledger_journal.info, Node: Default commodity, Next: Market prices, Prev: Declaring commodities, Up: Directives
|
||||||
@ -1039,7 +1047,7 @@ amounts, or until the next 'D' directive.
|
|||||||
D $1,000.00
|
D $1,000.00
|
||||||
|
|
||||||
1/1
|
1/1
|
||||||
a 5 ; <- commodity-less amount, becomes $1
|
a 5 ; <- commodity-less amount, becomes $1
|
||||||
b
|
b
|
||||||
|
|
||||||
As with the 'commodity' directive, the amount must always be written
|
As with the 'commodity' directive, the amount must always be written
|
||||||
@ -1182,11 +1190,11 @@ those auto-detected english account names mentioned above, you might
|
|||||||
need to help the reports a bit. Eg:
|
need to help the reports a bit. Eg:
|
||||||
|
|
||||||
; make "liabilities" not have the liability type - who knows why
|
; make "liabilities" not have the liability type - who knows why
|
||||||
account liabilities ; type:E
|
account liabilities ; type:E
|
||||||
|
|
||||||
; we need to ensure some other account has the liability type,
|
; we need to ensure some other account has the liability type,
|
||||||
; otherwise balancesheet would still show "liabilities" under Liabilities
|
; otherwise balancesheet would still show "liabilities" under Liabilities
|
||||||
account - ; type:L
|
account - ; type:L
|
||||||
|
|
||||||
|
|
||||||
File: hledger_journal.info, Node: Account display order, Prev: Account types, Up: Declaring accounts
|
File: hledger_journal.info, Node: Account display order, Prev: Account types, Up: Declaring accounts
|
||||||
@ -1257,7 +1265,7 @@ hledger-web.
|
|||||||
|
|
||||||
* Basic aliases::
|
* Basic aliases::
|
||||||
* Regex aliases::
|
* Regex aliases::
|
||||||
* Multiple aliases::
|
* Combining aliases::
|
||||||
* end aliases::
|
* end aliases::
|
||||||
|
|
||||||
|
|
||||||
@ -1284,7 +1292,7 @@ alias checking = assets:bank:wells fargo:checking
|
|||||||
# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
|
# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
|
||||||
|
|
||||||
|
|
||||||
File: hledger_journal.info, Node: Regex aliases, Next: Multiple aliases, Prev: Basic aliases, Up: Rewriting accounts
|
File: hledger_journal.info, Node: Regex aliases, Next: Combining aliases, Prev: Basic aliases, Up: Rewriting accounts
|
||||||
|
|
||||||
1.14.8.2 Regex aliases
|
1.14.8.2 Regex aliases
|
||||||
......................
|
......................
|
||||||
@ -1309,23 +1317,44 @@ command line, to end of option argument), so it can contain trailing
|
|||||||
whitespace.
|
whitespace.
|
||||||
|
|
||||||
|
|
||||||
File: hledger_journal.info, Node: Multiple aliases, Next: end aliases, Prev: Regex aliases, Up: Rewriting accounts
|
File: hledger_journal.info, Node: Combining aliases, Next: end aliases, Prev: Regex aliases, Up: Rewriting accounts
|
||||||
|
|
||||||
1.14.8.3 Multiple aliases
|
1.14.8.3 Combining aliases
|
||||||
.........................
|
..........................
|
||||||
|
|
||||||
You can define as many aliases as you like using directives or
|
You can define as many aliases as you like, using journal directives
|
||||||
command-line options. Aliases are recursive - each alias sees the
|
and/or command line options.
|
||||||
result of applying previous ones. (This is different from Ledger, where
|
|
||||||
aliases are non-recursive by default). Aliases are applied in the
|
|
||||||
following order:
|
|
||||||
|
|
||||||
1. alias directives, most recently seen first (recent directives take
|
Recursive aliases - where an account name is rewritten by one alias,
|
||||||
precedence over earlier ones; directives not yet seen are ignored)
|
then by another alias, and so on - are allowed. Each alias sees the
|
||||||
2. alias options, in the order they appear on the command line
|
effect of previously applied aliases.
|
||||||
|
|
||||||
|
In such cases it can be important to understand which aliases will be
|
||||||
|
applied and in which order. For (each account name in) each journal
|
||||||
|
entry, we apply:
|
||||||
|
|
||||||
|
1. 'alias' directives preceding the journal entry, most recently
|
||||||
|
parsed first (ie, reading upward from the journal entry, bottom to
|
||||||
|
top)
|
||||||
|
2. '--alias' options, in the order they appeared on the command line
|
||||||
|
(left to right).
|
||||||
|
|
||||||
|
In other words, for (an account name in) a given journal entry:
|
||||||
|
|
||||||
|
* the nearest alias declaration before/above the entry is applied
|
||||||
|
first
|
||||||
|
* the next alias before/above that will be be applied next, and so on
|
||||||
|
* aliases defined after/below the entry do not affect it.
|
||||||
|
|
||||||
|
This gives nearby aliases precedence over distant ones, and helps
|
||||||
|
provide semantic stability - aliases will keep working the same way
|
||||||
|
independent of which files are being read and in which order.
|
||||||
|
|
||||||
|
In case of trouble, adding '--debug=6' to the command line will show
|
||||||
|
which aliases are being applied when.
|
||||||
|
|
||||||
|
|
||||||
File: hledger_journal.info, Node: end aliases, Prev: Multiple aliases, Up: Rewriting accounts
|
File: hledger_journal.info, Node: end aliases, Prev: Combining aliases, Up: Rewriting accounts
|
||||||
|
|
||||||
1.14.8.4 'end aliases'
|
1.14.8.4 'end aliases'
|
||||||
......................
|
......................
|
||||||
@ -1437,8 +1466,18 @@ File: hledger_journal.info, Node: Forecasting with periodic transactions, Next
|
|||||||
With the '--forecast' flag, each periodic transaction rule generates
|
With the '--forecast' flag, each periodic transaction rule generates
|
||||||
future transactions recurring at the specified interval. These are not
|
future transactions recurring at the specified interval. These are not
|
||||||
saved in the journal, but appear in all reports. They will look like
|
saved in the journal, but appear in all reports. They will look like
|
||||||
normal transactions, but with an extra tag named 'recur', whose value is
|
normal transactions, but with an extra tag:
|
||||||
the generating period expression.
|
|
||||||
|
* 'generated-transaction:~ PERIODICEXPR' - shows that this was
|
||||||
|
generated by a periodic transaction rule, and the period
|
||||||
|
|
||||||
|
There is also a hidden tag, with an underscore prefix, which does not
|
||||||
|
appear in hledger's output:
|
||||||
|
|
||||||
|
* '_generated-transaction:~ PERIODICEXPR'
|
||||||
|
|
||||||
|
This can be used to match transactions generated "just now", rather
|
||||||
|
than generated in the past and saved to the journal.
|
||||||
|
|
||||||
Forecast transactions start on the first occurrence, and end on the
|
Forecast transactions start on the first occurrence, and end on the
|
||||||
last occurrence, of their interval within the forecast period. The
|
last occurrence, of their interval within the forecast period. The
|
||||||
@ -1493,16 +1532,16 @@ File: hledger_journal.info, Node: Auto postings / transaction modifiers, Prev:
|
|||||||
1.16 Auto postings / transaction modifiers
|
1.16 Auto postings / transaction modifiers
|
||||||
==========================================
|
==========================================
|
||||||
|
|
||||||
Transaction modifier rules describe changes to be applied automatically
|
Transaction modifier rules, AKA auto posting rules, describe changes to
|
||||||
to certain matched transactions. Currently just one kind of change is
|
be applied automatically to certain matched transactions. Currently
|
||||||
possible - adding extra postings, which we call "automated postings" or
|
just one kind of change is possible - adding extra postings, which we
|
||||||
just "auto postings". These rules become active when you use the
|
call "automated postings" or just "auto postings". These rules become
|
||||||
'--auto' flag.
|
active when you use the '--auto' flag.
|
||||||
|
|
||||||
A transaction modifier, AKA auto posting rule, looks much like a
|
A transaction modifier rule looks much like a normal transaction
|
||||||
normal transaction except the first line is an equals sign followed by a
|
except the first line is an equals sign followed by a query that matches
|
||||||
query that matches certain postings (mnemonic: '=' suggests matching).
|
certain postings (mnemonic: '=' suggests matching). And each "posting"
|
||||||
And each "posting" is actually a posting-generating rule:
|
is actually a posting-generating rule:
|
||||||
|
|
||||||
= QUERY
|
= QUERY
|
||||||
ACCT AMT
|
ACCT AMT
|
||||||
@ -1560,12 +1599,24 @@ $ hledger print --auto
|
|||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
|
* Auto postings and dates::
|
||||||
* Auto postings and transaction balancing / inferred amounts / balance assertions::
|
* Auto postings and transaction balancing / inferred amounts / balance assertions::
|
||||||
|
* Auto posting tags::
|
||||||
|
|
||||||
|
|
||||||
File: hledger_journal.info, Node: Auto postings and transaction balancing / inferred amounts / balance assertions, Up: Auto postings / transaction modifiers
|
File: hledger_journal.info, Node: Auto postings and dates, Next: Auto postings and transaction balancing / inferred amounts / balance assertions, Up: Auto postings / transaction modifiers
|
||||||
|
|
||||||
1.16.1 Auto postings and transaction balancing / inferred amounts /
|
1.16.1 Auto postings and dates
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
A posting date (or secondary date) in the matched posting, or (taking
|
||||||
|
precedence) a posting date in the auto posting rule itself, will also be
|
||||||
|
used in the generated posting.
|
||||||
|
|
||||||
|
|
||||||
|
File: hledger_journal.info, Node: Auto postings and transaction balancing / inferred amounts / balance assertions, Next: Auto posting tags, Prev: Auto postings and dates, Up: Auto postings / transaction modifiers
|
||||||
|
|
||||||
|
1.16.2 Auto postings and transaction balancing / inferred amounts /
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
|
|
||||||
balance assertions Currently, transaction modifiers are applied / auto
|
balance assertions Currently, transaction modifiers are applied / auto
|
||||||
@ -1579,6 +1630,28 @@ postings are added:
|
|||||||
after auto postings are added. This changed in hledger 1.12+; see #893
|
after auto postings are added. This changed in hledger 1.12+; see #893
|
||||||
for background.
|
for background.
|
||||||
|
|
||||||
|
|
||||||
|
File: hledger_journal.info, Node: Auto posting tags, Prev: Auto postings and transaction balancing / inferred amounts / balance assertions, Up: Auto postings / transaction modifiers
|
||||||
|
|
||||||
|
1.16.3 Auto posting tags
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Postings added by transaction modifiers will have some extra tags:
|
||||||
|
|
||||||
|
* 'generated-posting:= QUERY' - shows this was generated by an auto
|
||||||
|
posting rule, and the query
|
||||||
|
* '_generated-posting:= QUERY' - a hidden tag, which does not appear
|
||||||
|
in hledger's output. This can be used to match postings generated
|
||||||
|
"just now", rather than generated in the past and saved to the
|
||||||
|
journal.
|
||||||
|
|
||||||
|
Also, any transaction that has been changed by transaction modifier
|
||||||
|
rules will have these tags added:
|
||||||
|
|
||||||
|
* 'modified:' - this transaction was modified
|
||||||
|
* '_modified:' - a hidden tag not appearing in the comment; this
|
||||||
|
transaction was modified "just now".
|
||||||
|
|
||||||
|
|
||||||
File: hledger_journal.info, Node: EDITOR SUPPORT, Prev: FILE FORMAT, Up: Top
|
File: hledger_journal.info, Node: EDITOR SUPPORT, Prev: FILE FORMAT, Up: Top
|
||||||
|
|
||||||
@ -1595,109 +1668,113 @@ See the [[Cookbook]] at hledger.org for the latest information.
|
|||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top76
|
Node: Top76
|
||||||
Node: FILE FORMAT2378
|
Node: FILE FORMAT2352
|
||||||
Ref: #file-format2502
|
Ref: #file-format2476
|
||||||
Node: Transactions2805
|
Node: Transactions2779
|
||||||
Ref: #transactions2926
|
Ref: #transactions2900
|
||||||
Node: Postings3610
|
Node: Postings3584
|
||||||
Ref: #postings3737
|
Ref: #postings3711
|
||||||
Node: Dates4732
|
Node: Dates4706
|
||||||
Ref: #dates4847
|
Ref: #dates4821
|
||||||
Node: Simple dates4912
|
Node: Simple dates4886
|
||||||
Ref: #simple-dates5038
|
Ref: #simple-dates5012
|
||||||
Node: Secondary dates5404
|
Node: Secondary dates5378
|
||||||
Ref: #secondary-dates5558
|
Ref: #secondary-dates5532
|
||||||
Node: Posting dates7121
|
Node: Posting dates7095
|
||||||
Ref: #posting-dates7250
|
Ref: #posting-dates7224
|
||||||
Node: Status8624
|
Node: Status8596
|
||||||
Ref: #status8744
|
Ref: #status8716
|
||||||
Node: Description10452
|
Node: Description10424
|
||||||
Ref: #description10590
|
Ref: #description10562
|
||||||
Node: Payee and note10910
|
Node: Payee and note10882
|
||||||
Ref: #payee-and-note11024
|
Ref: #payee-and-note10996
|
||||||
Node: Account names11266
|
Node: Account names11331
|
||||||
Ref: #account-names11409
|
Ref: #account-names11474
|
||||||
Node: Amounts11896
|
Node: Amounts11961
|
||||||
Ref: #amounts12032
|
Ref: #amounts12097
|
||||||
Node: Virtual Postings15049
|
Node: Virtual Postings15114
|
||||||
Ref: #virtual-postings15208
|
Ref: #virtual-postings15273
|
||||||
Node: Balance Assertions16428
|
Node: Balance Assertions16493
|
||||||
Ref: #balance-assertions16603
|
Ref: #balance-assertions16668
|
||||||
Node: Assertions and ordering17562
|
Node: Assertions and ordering17627
|
||||||
Ref: #assertions-and-ordering17748
|
Ref: #assertions-and-ordering17813
|
||||||
Node: Assertions and included files18448
|
Node: Assertions and included files18513
|
||||||
Ref: #assertions-and-included-files18689
|
Ref: #assertions-and-included-files18754
|
||||||
Node: Assertions and multiple -f options19022
|
Node: Assertions and multiple -f options19087
|
||||||
Ref: #assertions-and-multiple--f-options19276
|
Ref: #assertions-and-multiple--f-options19341
|
||||||
Node: Assertions and commodities19408
|
Node: Assertions and commodities19473
|
||||||
Ref: #assertions-and-commodities19638
|
Ref: #assertions-and-commodities19703
|
||||||
Node: Assertions and prices20794
|
Node: Assertions and prices20859
|
||||||
Ref: #assertions-and-prices21006
|
Ref: #assertions-and-prices21071
|
||||||
Node: Assertions and subaccounts21446
|
Node: Assertions and subaccounts21511
|
||||||
Ref: #assertions-and-subaccounts21673
|
Ref: #assertions-and-subaccounts21738
|
||||||
Node: Assertions and virtual postings21997
|
Node: Assertions and virtual postings22062
|
||||||
Ref: #assertions-and-virtual-postings22237
|
Ref: #assertions-and-virtual-postings22302
|
||||||
Node: Assertions and precision22379
|
Node: Assertions and precision22444
|
||||||
Ref: #assertions-and-precision22570
|
Ref: #assertions-and-precision22635
|
||||||
Node: Balance Assignments22837
|
Node: Balance Assignments22902
|
||||||
Ref: #balance-assignments23018
|
Ref: #balance-assignments23083
|
||||||
Node: Balance assignments and prices24183
|
Node: Balance assignments and prices24248
|
||||||
Ref: #balance-assignments-and-prices24355
|
Ref: #balance-assignments-and-prices24420
|
||||||
Node: Transaction prices24579
|
Node: Transaction prices24644
|
||||||
Ref: #transaction-prices24748
|
Ref: #transaction-prices24813
|
||||||
Node: Comments27016
|
Node: Comments27079
|
||||||
Ref: #comments27150
|
Ref: #comments27213
|
||||||
Node: Tags28320
|
Node: Tags28383
|
||||||
Ref: #tags28438
|
Ref: #tags28501
|
||||||
Node: Directives29840
|
Node: Directives29894
|
||||||
Ref: #directives29983
|
Ref: #directives30037
|
||||||
Node: Comment blocks35591
|
Node: Comment blocks35645
|
||||||
Ref: #comment-blocks35736
|
Ref: #comment-blocks35790
|
||||||
Node: Including other files35912
|
Node: Including other files35966
|
||||||
Ref: #including-other-files36092
|
Ref: #including-other-files36146
|
||||||
Node: Default year36500
|
Node: Default year36554
|
||||||
Ref: #default-year36669
|
Ref: #default-year36723
|
||||||
Node: Declaring commodities37092
|
Node: Declaring commodities37130
|
||||||
Ref: #declaring-commodities37275
|
Ref: #declaring-commodities37313
|
||||||
Node: Default commodity38502
|
Node: Default commodity38742
|
||||||
Ref: #default-commodity38678
|
Ref: #default-commodity38918
|
||||||
Node: Market prices39314
|
Node: Market prices39552
|
||||||
Ref: #market-prices39479
|
Ref: #market-prices39717
|
||||||
Node: Declaring accounts40320
|
Node: Declaring accounts40558
|
||||||
Ref: #declaring-accounts40496
|
Ref: #declaring-accounts40734
|
||||||
Node: Account comments41421
|
Node: Account comments41659
|
||||||
Ref: #account-comments41584
|
Ref: #account-comments41822
|
||||||
Node: Account subdirectives41979
|
Node: Account subdirectives42217
|
||||||
Ref: #account-subdirectives42174
|
Ref: #account-subdirectives42412
|
||||||
Node: Account types42487
|
Node: Account types42725
|
||||||
Ref: #account-types42671
|
Ref: #account-types42909
|
||||||
Node: Account display order44315
|
Node: Account display order44551
|
||||||
Ref: #account-display-order44485
|
Ref: #account-display-order44721
|
||||||
Node: Rewriting accounts45614
|
Node: Rewriting accounts45850
|
||||||
Ref: #rewriting-accounts45799
|
Ref: #rewriting-accounts46035
|
||||||
Node: Basic aliases46534
|
Node: Basic aliases46771
|
||||||
Ref: #basic-aliases46680
|
Ref: #basic-aliases46917
|
||||||
Node: Regex aliases47384
|
Node: Regex aliases47621
|
||||||
Ref: #regex-aliases47555
|
Ref: #regex-aliases47793
|
||||||
Node: Multiple aliases48273
|
Node: Combining aliases48511
|
||||||
Ref: #multiple-aliases48448
|
Ref: #combining-aliases48689
|
||||||
Node: end aliases48946
|
Node: end aliases49965
|
||||||
Ref: #end-aliases49093
|
Ref: #end-aliases50113
|
||||||
Node: Default parent account49194
|
Node: Default parent account50214
|
||||||
Ref: #default-parent-account49360
|
Ref: #default-parent-account50380
|
||||||
Node: Periodic transactions50244
|
Node: Periodic transactions51264
|
||||||
Ref: #periodic-transactions50442
|
Ref: #periodic-transactions51462
|
||||||
Node: Two spaces after the period expression51568
|
Node: Two spaces after the period expression52588
|
||||||
Ref: #two-spaces-after-the-period-expression51813
|
Ref: #two-spaces-after-the-period-expression52833
|
||||||
Node: Forecasting with periodic transactions52298
|
Node: Forecasting with periodic transactions53318
|
||||||
Ref: #forecasting-with-periodic-transactions52588
|
Ref: #forecasting-with-periodic-transactions53608
|
||||||
Node: Budgeting with periodic transactions54275
|
Node: Budgeting with periodic transactions55634
|
||||||
Ref: #budgeting-with-periodic-transactions54514
|
Ref: #budgeting-with-periodic-transactions55873
|
||||||
Node: Auto postings / transaction modifiers54973
|
Node: Auto postings / transaction modifiers56332
|
||||||
Ref: #auto-postings-transaction-modifiers55184
|
Ref: #auto-postings-transaction-modifiers56543
|
||||||
Node: Auto postings and transaction balancing / inferred amounts / balance assertions57356
|
Node: Auto postings and dates58772
|
||||||
Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions57673
|
Ref: #auto-postings-and-dates59029
|
||||||
Node: EDITOR SUPPORT58051
|
Node: Auto postings and transaction balancing / inferred amounts / balance assertions59204
|
||||||
Ref: #editor-support58169
|
Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions59579
|
||||||
|
Node: Auto posting tags59957
|
||||||
|
Ref: #auto-posting-tags60196
|
||||||
|
Node: EDITOR SUPPORT60861
|
||||||
|
Ref: #editor-support60979
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
@ -229,19 +229,20 @@ FILE FORMAT
|
|||||||
comments.
|
comments.
|
||||||
|
|
||||||
Payee and note
|
Payee and note
|
||||||
You can optionally include a | (pipe) character in a description to
|
You can optionally include a | (pipe) character in descriptions to sub-
|
||||||
subdivide it into a payee/payer name on the left and additional notes
|
divide the description into separate fields for payee/payer name on the
|
||||||
on the right. This may be worthwhile if you need to do more precise
|
left (up to the first |) and an additional note field on the right
|
||||||
querying and pivoting by payee.
|
(after the first |). This may be worthwhile if you need to do more
|
||||||
|
precise querying and pivoting by payee or by note.
|
||||||
|
|
||||||
Account names
|
Account names
|
||||||
Account names typically have several parts separated by a full colon,
|
Account names typically have several parts separated by a full colon,
|
||||||
from which hledger derives a hierarchical chart of accounts. They can
|
from which hledger derives a hierarchical chart of accounts. They can
|
||||||
be anything you like, but in finance there are traditionally five top-
|
be anything you like, but in finance there are traditionally five top-
|
||||||
level accounts: assets, liabilities, income, expenses, and equity.
|
level accounts: assets, liabilities, income, expenses, and equity.
|
||||||
|
|
||||||
Account names may contain single spaces, eg: assets:accounts receiv-
|
Account names may contain single spaces, eg: assets:accounts receiv-
|
||||||
able. Because of this, they must always be followed by two or more
|
able. Because of this, they must always be followed by two or more
|
||||||
spaces (or newline).
|
spaces (or newline).
|
||||||
|
|
||||||
Account names can be aliased.
|
Account names can be aliased.
|
||||||
@ -250,7 +251,7 @@ FILE FORMAT
|
|||||||
After the account name, there is usually an amount. Important: between
|
After the account name, there is usually an amount. Important: between
|
||||||
account name and amount, there must be two or more spaces.
|
account name and amount, there must be two or more spaces.
|
||||||
|
|
||||||
Amounts consist of a number and (usually) a currency symbol or commod-
|
Amounts consist of a number and (usually) a currency symbol or commod-
|
||||||
ity name. Some examples:
|
ity name. Some examples:
|
||||||
|
|
||||||
2.00001
|
2.00001
|
||||||
@ -266,35 +267,35 @@ FILE FORMAT
|
|||||||
|
|
||||||
As you can see, the amount format is somewhat flexible:
|
As you can see, the amount format is somewhat flexible:
|
||||||
|
|
||||||
o amounts are a number (the "quantity") and optionally a currency sym-
|
o amounts are a number (the "quantity") and optionally a currency sym-
|
||||||
bol/commodity name (the "commodity").
|
bol/commodity name (the "commodity").
|
||||||
|
|
||||||
o the commodity is a symbol, word, or phrase, on the left or right,
|
o the commodity is a symbol, word, or phrase, on the left or right,
|
||||||
with or without a separating space. If the commodity contains num-
|
with or without a separating space. If the commodity contains num-
|
||||||
bers, spaces or non-word punctuation it must be enclosed in double
|
bers, spaces or non-word punctuation it must be enclosed in double
|
||||||
quotes.
|
quotes.
|
||||||
|
|
||||||
o negative amounts with a commodity on the left can have the minus sign
|
o negative amounts with a commodity on the left can have the minus sign
|
||||||
before or after it
|
before or after it
|
||||||
|
|
||||||
o digit groups (thousands, or any other grouping) can be separated by
|
o digit groups (thousands, or any other grouping) can be separated by
|
||||||
space or comma or period and should be used as separator between all
|
space or comma or period and should be used as separator between all
|
||||||
groups
|
groups
|
||||||
|
|
||||||
o decimal part can be separated by comma or period and should be dif-
|
o decimal part can be separated by comma or period and should be dif-
|
||||||
ferent from digit groups separator
|
ferent from digit groups separator
|
||||||
|
|
||||||
o scientific E-notation is allowed. Be careful not to use a digit
|
o scientific E-notation is allowed. Be careful not to use a digit
|
||||||
group separator character in scientific notation, as it's not sup-
|
group separator character in scientific notation, as it's not sup-
|
||||||
ported and it might get mistaken for a decimal point. (Declaring the
|
ported and it might get mistaken for a decimal point. (Declaring the
|
||||||
digit group separator character explicitly with a commodity directive
|
digit group separator character explicitly with a commodity directive
|
||||||
will prevent this.)
|
will prevent this.)
|
||||||
|
|
||||||
You can use any of these variations when recording data. However,
|
You can use any of these variations when recording data. However,
|
||||||
there is some ambiguous way of representing numbers like $1.000 and
|
there is some ambiguous way of representing numbers like $1.000 and
|
||||||
$1,000 both may mean either one thousand or one dollar. By default
|
$1,000 both may mean either one thousand or one dollar. By default
|
||||||
hledger will assume that this is sole delimiter is used only for deci-
|
hledger will assume that this is sole delimiter is used only for deci-
|
||||||
mals. On the other hand commodity format declared prior to that line
|
mals. On the other hand commodity format declared prior to that line
|
||||||
will help to resolve that ambiguity differently:
|
will help to resolve that ambiguity differently:
|
||||||
|
|
||||||
commodity $1,000.00
|
commodity $1,000.00
|
||||||
@ -303,38 +304,38 @@ FILE FORMAT
|
|||||||
expenses:gifts $1,000
|
expenses:gifts $1,000
|
||||||
assets
|
assets
|
||||||
|
|
||||||
Though journal may contain mixed styles to represent amount, when
|
Though journal may contain mixed styles to represent amount, when
|
||||||
hledger displays amounts, it will choose a consistent format for each
|
hledger displays amounts, it will choose a consistent format for each
|
||||||
commodity. (Except for price amounts, which are always formatted as
|
commodity. (Except for price amounts, which are always formatted as
|
||||||
written). The display format is chosen as follows:
|
written). The display format is chosen as follows:
|
||||||
|
|
||||||
o if there is a commodity directive specifying the format, that is used
|
o if there is a commodity directive specifying the format, that is used
|
||||||
|
|
||||||
o otherwise the format is inferred from the first posting amount in
|
o otherwise the format is inferred from the first posting amount in
|
||||||
that commodity in the journal, and the precision (number of decimal
|
that commodity in the journal, and the precision (number of decimal
|
||||||
places) will be the maximum from all posting amounts in that commmod-
|
places) will be the maximum from all posting amounts in that commmod-
|
||||||
ity
|
ity
|
||||||
|
|
||||||
o or if there are no such amounts in the journal, a default format is
|
o or if there are no such amounts in the journal, a default format is
|
||||||
used (like $1000.00).
|
used (like $1000.00).
|
||||||
|
|
||||||
Price amounts and amounts in D directives usually don't affect amount
|
Price amounts and amounts in D directives usually don't affect amount
|
||||||
format inference, but in some situations they can do so indirectly.
|
format inference, but in some situations they can do so indirectly.
|
||||||
(Eg when D's default commodity is applied to a commodity-less amount,
|
(Eg when D's default commodity is applied to a commodity-less amount,
|
||||||
or when an amountless posting is balanced using a price's commodity, or
|
or when an amountless posting is balanced using a price's commodity, or
|
||||||
when -V is used.) If you find this causing problems, set the desired
|
when -V is used.) If you find this causing problems, set the desired
|
||||||
format with a commodity directive.
|
format with a commodity directive.
|
||||||
|
|
||||||
Virtual Postings
|
Virtual Postings
|
||||||
When you parenthesise the account name in a posting, we call that a
|
When you parenthesise the account name in a posting, we call that a
|
||||||
virtual posting, which means:
|
virtual posting, which means:
|
||||||
|
|
||||||
o it is ignored when checking that the transaction is balanced
|
o it is ignored when checking that the transaction is balanced
|
||||||
|
|
||||||
o it is excluded from reports when the --real/-R flag is used, or the
|
o it is excluded from reports when the --real/-R flag is used, or the
|
||||||
real:1 query.
|
real:1 query.
|
||||||
|
|
||||||
You could use this, eg, to set an account's opening balance without
|
You could use this, eg, to set an account's opening balance without
|
||||||
needing to use the equity:opening balances account:
|
needing to use the equity:opening balances account:
|
||||||
|
|
||||||
1/1 special unbalanced posting to set initial balance
|
1/1 special unbalanced posting to set initial balance
|
||||||
@ -342,8 +343,8 @@ FILE FORMAT
|
|||||||
|
|
||||||
When the account name is bracketed, we call it a balanced virtual post-
|
When the account name is bracketed, we call it a balanced virtual post-
|
||||||
ing. This is like an ordinary virtual posting except the balanced vir-
|
ing. This is like an ordinary virtual posting except the balanced vir-
|
||||||
tual postings in a transaction must balance to 0, like the real post-
|
tual postings in a transaction must balance to 0, like the real post-
|
||||||
ings (but separately from them). Balanced virtual postings are also
|
ings (but separately from them). Balanced virtual postings are also
|
||||||
excluded by --real/-R or real:1.
|
excluded by --real/-R or real:1.
|
||||||
|
|
||||||
1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
|
1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
|
||||||
@ -353,13 +354,13 @@ FILE FORMAT
|
|||||||
[assets:checking:budget:food] $-10
|
[assets:checking:budget:food] $-10
|
||||||
|
|
||||||
Virtual postings have some legitimate uses, but those are few. You can
|
Virtual postings have some legitimate uses, but those are few. You can
|
||||||
usually find an equivalent journal entry using real postings, which is
|
usually find an equivalent journal entry using real postings, which is
|
||||||
more correct and provides better error checking.
|
more correct and provides better error checking.
|
||||||
|
|
||||||
Balance Assertions
|
Balance Assertions
|
||||||
hledger supports Ledger-style balance assertions in journal files.
|
hledger supports Ledger-style balance assertions in journal files.
|
||||||
These look like, for example, = EXPECTEDBALANCE following a posting's
|
These look like, for example, = EXPECTEDBALANCE following a posting's
|
||||||
amount. Eg here we assert the expected dollar balance in accounts a
|
amount. Eg here we assert the expected dollar balance in accounts a
|
||||||
and b after each posting:
|
and b after each posting:
|
||||||
|
|
||||||
2013/1/1
|
2013/1/1
|
||||||
@ -371,31 +372,31 @@ FILE FORMAT
|
|||||||
b $-1 =$-2
|
b $-1 =$-2
|
||||||
|
|
||||||
After reading a journal file, hledger will check all balance assertions
|
After reading a journal file, hledger will check all balance assertions
|
||||||
and report an error if any of them fail. Balance assertions can pro-
|
and report an error if any of them fail. Balance assertions can pro-
|
||||||
tect you from, eg, inadvertently disrupting reconciled balances while
|
tect you from, eg, inadvertently disrupting reconciled balances while
|
||||||
cleaning up old entries. You can disable them temporarily with the
|
cleaning up old entries. You can disable them temporarily with the
|
||||||
-I/--ignore-assertions flag, which can be useful for troubleshooting or
|
-I/--ignore-assertions flag, which can be useful for troubleshooting or
|
||||||
for reading Ledger files.
|
for reading Ledger files.
|
||||||
|
|
||||||
Assertions and ordering
|
Assertions and ordering
|
||||||
hledger sorts an account's postings and assertions first by date and
|
hledger sorts an account's postings and assertions first by date and
|
||||||
then (for postings on the same day) by parse order. Note this is dif-
|
then (for postings on the same day) by parse order. Note this is dif-
|
||||||
ferent from Ledger, which sorts assertions only by parse order. (Also,
|
ferent from Ledger, which sorts assertions only by parse order. (Also,
|
||||||
Ledger assertions do not see the accumulated effect of repeated post-
|
Ledger assertions do not see the accumulated effect of repeated post-
|
||||||
ings to the same account within a transaction.)
|
ings to the same account within a transaction.)
|
||||||
|
|
||||||
So, hledger balance assertions keep working if you reorder differently-
|
So, hledger balance assertions keep working if you reorder differently-
|
||||||
dated transactions within the journal. But if you reorder same-dated
|
dated transactions within the journal. But if you reorder same-dated
|
||||||
transactions or postings, assertions might break and require updating.
|
transactions or postings, assertions might break and require updating.
|
||||||
This order dependence does bring an advantage: precise control over the
|
This order dependence does bring an advantage: precise control over the
|
||||||
order of postings and assertions within a day, so you can assert intra-
|
order of postings and assertions within a day, so you can assert intra-
|
||||||
day balances.
|
day balances.
|
||||||
|
|
||||||
Assertions and included files
|
Assertions and included files
|
||||||
With included files, things are a little more complicated. Including
|
With included files, things are a little more complicated. Including
|
||||||
preserves the ordering of postings and assertions. If you have multi-
|
preserves the ordering of postings and assertions. If you have multi-
|
||||||
ple postings to an account on the same day, split across different
|
ple postings to an account on the same day, split across different
|
||||||
files, and you also want to assert the account's balance on the same
|
files, and you also want to assert the account's balance on the same
|
||||||
day, you'll have to put the assertion in the right file.
|
day, you'll have to put the assertion in the right file.
|
||||||
|
|
||||||
Assertions and multiple -f options
|
Assertions and multiple -f options
|
||||||
@ -403,8 +404,8 @@ FILE FORMAT
|
|||||||
-f options. Use include or concatenate the files instead.
|
-f options. Use include or concatenate the files instead.
|
||||||
|
|
||||||
Assertions and commodities
|
Assertions and commodities
|
||||||
The asserted balance must be a simple single-commodity amount, and in
|
The asserted balance must be a simple single-commodity amount, and in
|
||||||
fact the assertion checks only this commodity's balance within the
|
fact the assertion checks only this commodity's balance within the
|
||||||
(possibly multi-commodity) account balance.
|
(possibly multi-commodity) account balance.
|
||||||
This is how assertions work in Ledger also. We could call this a "par-
|
This is how assertions work in Ledger also. We could call this a "par-
|
||||||
tial" balance assertion.
|
tial" balance assertion.
|
||||||
@ -412,7 +413,7 @@ FILE FORMAT
|
|||||||
To assert the balance of more than one commodity in an account, you can
|
To assert the balance of more than one commodity in an account, you can
|
||||||
write multiple postings, each asserting one commodity's balance.
|
write multiple postings, each asserting one commodity's balance.
|
||||||
|
|
||||||
You can make a stronger "total" balance assertion by writing a double
|
You can make a stronger "total" balance assertion by writing a double
|
||||||
equals sign (== EXPECTEDBALANCE). This asserts that there are no other
|
equals sign (== EXPECTEDBALANCE). This asserts that there are no other
|
||||||
unasserted commodities in the account (or, that their balance is 0).
|
unasserted commodities in the account (or, that their balance is 0).
|
||||||
|
|
||||||
@ -432,7 +433,7 @@ FILE FORMAT
|
|||||||
a 0 == $1
|
a 0 == $1
|
||||||
|
|
||||||
It's not yet possible to make a complete assertion about a balance that
|
It's not yet possible to make a complete assertion about a balance that
|
||||||
has multiple commodities. One workaround is to isolate each commodity
|
has multiple commodities. One workaround is to isolate each commodity
|
||||||
into its own subaccount:
|
into its own subaccount:
|
||||||
|
|
||||||
2013/1/1
|
2013/1/1
|
||||||
@ -446,21 +447,21 @@ FILE FORMAT
|
|||||||
a:euro 0 == 1EUR
|
a:euro 0 == 1EUR
|
||||||
|
|
||||||
Assertions and prices
|
Assertions and prices
|
||||||
Balance assertions ignore transaction prices, and should normally be
|
Balance assertions ignore transaction prices, and should normally be
|
||||||
written without one:
|
written without one:
|
||||||
|
|
||||||
2019/1/1
|
2019/1/1
|
||||||
(a) $1 @ EUR1 = $1
|
(a) $1 @ EUR1 = $1
|
||||||
|
|
||||||
We do allow prices to be written there, however, and print shows them,
|
We do allow prices to be written there, however, and print shows them,
|
||||||
even though they don't affect whether the assertion passes or fails.
|
even though they don't affect whether the assertion passes or fails.
|
||||||
This is for backward compatibility (hledger's close command used to
|
This is for backward compatibility (hledger's close command used to
|
||||||
generate balance assertions with prices), and because balance assign-
|
generate balance assertions with prices), and because balance assign-
|
||||||
ments do use them (see below).
|
ments do use them (see below).
|
||||||
|
|
||||||
Assertions and subaccounts
|
Assertions and subaccounts
|
||||||
The balance assertions above (= and ==) do not count the balance from
|
The balance assertions above (= and ==) do not count the balance from
|
||||||
subaccounts; they check the account's exclusive balance only. You can
|
subaccounts; they check the account's exclusive balance only. You can
|
||||||
assert the balance including subaccounts by writing =* or ==*, eg:
|
assert the balance including subaccounts by writing =* or ==*, eg:
|
||||||
|
|
||||||
2019/1/1
|
2019/1/1
|
||||||
@ -474,16 +475,16 @@ FILE FORMAT
|
|||||||
tual. They are not affected by the --real/-R flag or real: query.
|
tual. They are not affected by the --real/-R flag or real: query.
|
||||||
|
|
||||||
Assertions and precision
|
Assertions and precision
|
||||||
Balance assertions compare the exactly calculated amounts, which are
|
Balance assertions compare the exactly calculated amounts, which are
|
||||||
not always what is shown by reports. Eg a commodity directive may
|
not always what is shown by reports. Eg a commodity directive may
|
||||||
limit the display precision, but this will not affect balance asser-
|
limit the display precision, but this will not affect balance asser-
|
||||||
tions. Balance assertion failure messages show exact amounts.
|
tions. Balance assertion failure messages show exact amounts.
|
||||||
|
|
||||||
Balance Assignments
|
Balance Assignments
|
||||||
Ledger-style balance assignments are also supported. These are like
|
Ledger-style balance assignments are also supported. These are like
|
||||||
balance assertions, but with no posting amount on the left side of the
|
balance assertions, but with no posting amount on the left side of the
|
||||||
equals sign; instead it is calculated automatically so as to satisfy
|
equals sign; instead it is calculated automatically so as to satisfy
|
||||||
the assertion. This can be a convenience during data entry, eg when
|
the assertion. This can be a convenience during data entry, eg when
|
||||||
setting opening balances:
|
setting opening balances:
|
||||||
|
|
||||||
; starting a new journal, set asset account balances
|
; starting a new journal, set asset account balances
|
||||||
@ -501,14 +502,14 @@ FILE FORMAT
|
|||||||
expenses:misc
|
expenses:misc
|
||||||
|
|
||||||
The calculated amount depends on the account's balance in the commodity
|
The calculated amount depends on the account's balance in the commodity
|
||||||
at that point (which depends on the previously-dated postings of the
|
at that point (which depends on the previously-dated postings of the
|
||||||
commodity to that account since the last balance assertion or assign-
|
commodity to that account since the last balance assertion or assign-
|
||||||
ment). Note that using balance assignments makes your journal a little
|
ment). Note that using balance assignments makes your journal a little
|
||||||
less explicit; to know the exact amount posted, you have to run hledger
|
less explicit; to know the exact amount posted, you have to run hledger
|
||||||
or do the calculations yourself, instead of just reading it.
|
or do the calculations yourself, instead of just reading it.
|
||||||
|
|
||||||
Balance assignments and prices
|
Balance assignments and prices
|
||||||
A transaction price in a balance assignment will cause the calculated
|
A transaction price in a balance assignment will cause the calculated
|
||||||
amount to have that price attached:
|
amount to have that price attached:
|
||||||
|
|
||||||
2019/1/1
|
2019/1/1
|
||||||
@ -520,9 +521,9 @@ FILE FORMAT
|
|||||||
|
|
||||||
Transaction prices
|
Transaction prices
|
||||||
Within a transaction, you can note an amount's price in another commod-
|
Within a transaction, you can note an amount's price in another commod-
|
||||||
ity. This can be used to document the cost (in a purchase) or selling
|
ity. This can be used to document the cost (in a purchase) or selling
|
||||||
price (in a sale). For example, transaction prices are useful to
|
price (in a sale). For example, transaction prices are useful to
|
||||||
record purchases of a foreign currency. Note transaction prices are
|
record purchases of a foreign currency. Note transaction prices are
|
||||||
fixed at the time of the transaction, and do not change over time. See
|
fixed at the time of the transaction, and do not change over time. See
|
||||||
also market prices, which represent prevailing exchange rates on a cer-
|
also market prices, which represent prevailing exchange rates on a cer-
|
||||||
tain date.
|
tain date.
|
||||||
@ -533,7 +534,7 @@ FILE FORMAT
|
|||||||
|
|
||||||
2009/1/1
|
2009/1/1
|
||||||
assets:euros EUR100 @ $1.35 ; one hundred euros purchased at $1.35 each
|
assets:euros EUR100 @ $1.35 ; one hundred euros purchased at $1.35 each
|
||||||
assets:dollars ; balancing amount is -$135.00
|
assets:dollars ; balancing amount is -$135.00
|
||||||
|
|
||||||
2. Write the total price, as @@ TOTALPRICE after the amount:
|
2. Write the total price, as @@ TOTALPRICE after the amount:
|
||||||
|
|
||||||
@ -546,12 +547,12 @@ FILE FORMAT
|
|||||||
|
|
||||||
2009/1/1
|
2009/1/1
|
||||||
assets:euros EUR100 ; one hundred euros purchased
|
assets:euros EUR100 ; one hundred euros purchased
|
||||||
assets:dollars $-135 ; for $135
|
assets:dollars $-135 ; for $135
|
||||||
|
|
||||||
(Ledger users: Ledger uses a different syntax for fixed prices, {=UNIT-
|
(Ledger users: Ledger uses a different syntax for fixed prices, {=UNIT-
|
||||||
PRICE}, which hledger currently ignores).
|
PRICE}, which hledger currently ignores).
|
||||||
|
|
||||||
Use the -B/--cost flag to convert amounts to their transaction price's
|
Use the -B/--cost flag to convert amounts to their transaction price's
|
||||||
commodity, if any. (mnemonic: "B" is from "cost Basis", as in Ledger).
|
commodity, if any. (mnemonic: "B" is from "cost Basis", as in Ledger).
|
||||||
Eg here is how -B affects the balance report for the example above:
|
Eg here is how -B affects the balance report for the example above:
|
||||||
|
|
||||||
@ -562,13 +563,13 @@ FILE FORMAT
|
|||||||
$-135 assets:dollars
|
$-135 assets:dollars
|
||||||
$135 assets:euros # <- the euros' cost
|
$135 assets:euros # <- the euros' cost
|
||||||
|
|
||||||
Note -B is sensitive to the order of postings when a transaction price
|
Note -B is sensitive to the order of postings when a transaction price
|
||||||
is inferred: the inferred price will be in the commodity of the last
|
is inferred: the inferred price will be in the commodity of the last
|
||||||
amount. So if example 3's postings are reversed, while the transaction
|
amount. So if example 3's postings are reversed, while the transaction
|
||||||
is equivalent, -B shows something different:
|
is equivalent, -B shows something different:
|
||||||
|
|
||||||
2009/1/1
|
2009/1/1
|
||||||
assets:dollars $-135 ; 135 dollars sold
|
assets:dollars $-135 ; 135 dollars sold
|
||||||
assets:euros EUR100 ; for 100 euros
|
assets:euros EUR100 ; for 100 euros
|
||||||
|
|
||||||
$ hledger bal -N --flat -B
|
$ hledger bal -N --flat -B
|
||||||
@ -577,14 +578,14 @@ FILE FORMAT
|
|||||||
|
|
||||||
Comments
|
Comments
|
||||||
Lines in the journal beginning with a semicolon (;) or hash (#) or star
|
Lines in the journal beginning with a semicolon (;) or hash (#) or star
|
||||||
(*) are comments, and will be ignored. (Star comments cause org-mode
|
(*) are comments, and will be ignored. (Star comments cause org-mode
|
||||||
nodes to be ignored, allowing emacs users to fold and navigate their
|
nodes to be ignored, allowing emacs users to fold and navigate their
|
||||||
journals with org-mode or orgstruct-mode.)
|
journals with org-mode or orgstruct-mode.)
|
||||||
|
|
||||||
You can attach comments to a transaction by writing them after the
|
You can attach comments to a transaction by writing them after the
|
||||||
description and/or indented on the following lines (before the post-
|
description and/or indented on the following lines (before the post-
|
||||||
ings). Similarly, you can attach comments to an individual posting by
|
ings). Similarly, you can attach comments to an individual posting by
|
||||||
writing them after the amount and/or indented on the following lines.
|
writing them after the amount and/or indented on the following lines.
|
||||||
Transaction and posting comments must begin with a semicolon (;).
|
Transaction and posting comments must begin with a semicolon (;).
|
||||||
|
|
||||||
Some examples:
|
Some examples:
|
||||||
@ -608,28 +609,28 @@ FILE FORMAT
|
|||||||
; another comment line for posting 2
|
; another comment line for posting 2
|
||||||
; a file comment (because not indented)
|
; a file comment (because not indented)
|
||||||
|
|
||||||
You can also comment larger regions of a file using comment and end
|
You can also comment larger regions of a file using comment and end
|
||||||
comment directives.
|
comment directives.
|
||||||
|
|
||||||
Tags
|
Tags
|
||||||
Tags are a way to add extra labels or labelled data to postings and
|
Tags are a way to add extra labels or labelled data to postings and
|
||||||
transactions, which you can then search or pivot on.
|
transactions, which you can then search or pivot on.
|
||||||
|
|
||||||
A simple tag is a word (which may contain hyphens) followed by a full
|
A simple tag is a word (which may contain hyphens) followed by a full
|
||||||
colon, written inside a transaction or posting comment line:
|
colon, written inside a transaction or posting comment line:
|
||||||
|
|
||||||
2017/1/16 bought groceries ; sometag:
|
2017/1/16 bought groceries ; sometag:
|
||||||
|
|
||||||
Tags can have a value, which is the text after the colon, up to the
|
Tags can have a value, which is the text after the colon, up to the
|
||||||
next comma or end of line, with leading/trailing whitespace removed:
|
next comma or end of line, with leading/trailing whitespace removed:
|
||||||
|
|
||||||
expenses:food $10 ; a-posting-tag: the tag value
|
expenses:food $10 ; a-posting-tag: the tag value
|
||||||
|
|
||||||
Note this means hledger's tag values can not contain commas or new-
|
Note this means hledger's tag values can not contain commas or new-
|
||||||
lines. Ending at commas means you can write multiple short tags on one
|
lines. Ending at commas means you can write multiple short tags on one
|
||||||
line, comma separated:
|
line, comma separated:
|
||||||
|
|
||||||
assets:checking ; a comment containing tag1:, tag2: some value ...
|
assets:checking ; a comment containing tag1:, tag2: some value ...
|
||||||
|
|
||||||
Here,
|
Here,
|
||||||
|
|
||||||
@ -639,70 +640,69 @@ FILE FORMAT
|
|||||||
|
|
||||||
o "tag2" is another tag, whose value is "some value ..."
|
o "tag2" is another tag, whose value is "some value ..."
|
||||||
|
|
||||||
Tags in a transaction comment affect the transaction and all of its
|
Tags in a transaction comment affect the transaction and all of its
|
||||||
postings, while tags in a posting comment affect only that posting.
|
postings, while tags in a posting comment affect only that posting.
|
||||||
For example, the following transaction has three tags (A, TAG2, third-
|
For example, the following transaction has three tags (A, TAG2, third-
|
||||||
tag) and the posting has four (those plus posting-tag):
|
tag) and the posting has four (those plus posting-tag):
|
||||||
|
|
||||||
1/1 a transaction ; A:, TAG2:
|
1/1 a transaction ; A:, TAG2:
|
||||||
; third-tag: a third transaction tag, <- with a value
|
; third-tag: a third transaction tag, <- with a value
|
||||||
(a) $1 ; posting-tag:
|
(a) $1 ; posting-tag:
|
||||||
|
|
||||||
Tags are like Ledger's metadata feature, except hledger's tag values
|
Tags are like Ledger's metadata feature, except hledger's tag values
|
||||||
are simple strings.
|
are simple strings.
|
||||||
|
|
||||||
Directives
|
Directives
|
||||||
A directive is a line in the journal beginning with a special keyword,
|
A directive is a line in the journal beginning with a special keyword,
|
||||||
that influences how the journal is processed. hledger's directives are
|
that influences how the journal is processed. hledger's directives are
|
||||||
based on a subset of Ledger's, but there are many differences (and also
|
based on a subset of Ledger's, but there are many differences (and also
|
||||||
some differences between hledger versions).
|
some differences between hledger versions).
|
||||||
|
|
||||||
Directives' behaviour and interactions can get a little bit complex, so
|
Directives' behaviour and interactions can get a little bit complex, so
|
||||||
here is a table summarising the directives and their effects, with
|
here is a table summarising the directives and their effects, with
|
||||||
links to more detailed docs.
|
links to more detailed docs.
|
||||||
|
|
||||||
|
|
||||||
direc- end subdi- purpose can affect (as of
|
direc- end subdi- purpose can affect (as of
|
||||||
tive directive rec- 2018/06)
|
tive directive rec- 2018/06)
|
||||||
tives
|
tives
|
||||||
------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------
|
||||||
account any document account names, all entries in all
|
|
||||||
text declare account types & dis- files, before or
|
|
||||||
|
|
||||||
|
account any document account names, all entries in all
|
||||||
|
text declare account types & dis- files, before or
|
||||||
play order after
|
play order after
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
alias end rewrite account names following
|
alias end rewrite account names following
|
||||||
aliases inline/included
|
aliases inline/included
|
||||||
entries until end
|
entries until end
|
||||||
of current file or
|
of current file or
|
||||||
end directive
|
end directive
|
||||||
apply end apply prepend a common parent to following
|
apply end apply prepend a common parent to following
|
||||||
account account account names inline/included
|
account account account names inline/included
|
||||||
entries until end
|
entries until end
|
||||||
of current file or
|
of current file or
|
||||||
end directive
|
end directive
|
||||||
comment end com- ignore part of journal following
|
comment end com- ignore part of journal following
|
||||||
ment inline/included
|
ment inline/included
|
||||||
entries until end
|
entries until end
|
||||||
of current file or
|
of current file or
|
||||||
end directive
|
end directive
|
||||||
commod- format declare a commodity and its number notation:
|
commod- format declare a commodity and its number notation:
|
||||||
ity number notation & display following entries
|
ity number notation & display following entries
|
||||||
style in that commodity
|
style in that commodity
|
||||||
in all files; dis-
|
in all files; dis-
|
||||||
play style: amounts
|
play style: amounts
|
||||||
of that commodity
|
of that commodity
|
||||||
in reports
|
in reports
|
||||||
D declare a commodity, number commodity: all com-
|
D declare a commodity, number commodity: all com-
|
||||||
notation & display style for modityless entries
|
notation & display style for modityless entries
|
||||||
commodityless amounts in all files; num-
|
commodityless amounts in all files; num-
|
||||||
ber notation: fol-
|
ber notation: fol-
|
||||||
lowing commodity-
|
lowing commodity-
|
||||||
less entries and
|
less entries and
|
||||||
entries in that
|
entries in that
|
||||||
commodity in all
|
commodity in all
|
||||||
files; display
|
files; display
|
||||||
style: amounts of
|
style: amounts of
|
||||||
that commodity in
|
that commodity in
|
||||||
@ -713,7 +713,7 @@ FILE FORMAT
|
|||||||
commodity commodity in
|
commodity commodity in
|
||||||
reports, when -V is
|
reports, when -V is
|
||||||
used
|
used
|
||||||
Y declare a year for yearless following
|
Y declare a year for yearless following
|
||||||
dates inline/included
|
dates inline/included
|
||||||
entries until end
|
entries until end
|
||||||
of current file
|
of current file
|
||||||
@ -723,9 +723,9 @@ FILE FORMAT
|
|||||||
|
|
||||||
subdirec- optional indented directive line immediately following a par-
|
subdirec- optional indented directive line immediately following a par-
|
||||||
tive ent directive
|
tive ent directive
|
||||||
number how to interpret numbers when parsing journal entries (the
|
number how to interpret numbers when parsing journal entries (the
|
||||||
notation identity of the decimal separator character). (Currently
|
notation identity of the decimal separator character). (Currently
|
||||||
each commodity can have its own notation, even in the same
|
each commodity can have its own notation, even in the same
|
||||||
file.)
|
file.)
|
||||||
display how to display amounts of a commodity in reports (symbol side
|
display how to display amounts of a commodity in reports (symbol side
|
||||||
style and spacing, digit groups, decimal separator, decimal places)
|
style and spacing, digit groups, decimal separator, decimal places)
|
||||||
@ -733,59 +733,60 @@ FILE FORMAT
|
|||||||
scope are affected by a directive
|
scope are affected by a directive
|
||||||
|
|
||||||
As you can see, directives vary in which journal entries and files they
|
As you can see, directives vary in which journal entries and files they
|
||||||
affect, and whether they are focussed on input (parsing) or output
|
affect, and whether they are focussed on input (parsing) or output
|
||||||
(reports). Some directives have multiple effects.
|
(reports). Some directives have multiple effects.
|
||||||
|
|
||||||
If you have a journal made up of multiple files, or pass multiple -f
|
If you have a journal made up of multiple files, or pass multiple -f
|
||||||
options on the command line, note that directives which affect input
|
options on the command line, note that directives which affect input
|
||||||
typically last only until the end of their defining file. This pro-
|
typically last only until the end of their defining file. This pro-
|
||||||
vides more simplicity and predictability, eg reports are not changed by
|
vides more simplicity and predictability, eg reports are not changed by
|
||||||
writing file options in a different order. It can be surprising at
|
writing file options in a different order. It can be surprising at
|
||||||
times though.
|
times though.
|
||||||
|
|
||||||
Comment blocks
|
Comment blocks
|
||||||
A line containing just comment starts a commented region of the file,
|
A line containing just comment starts a commented region of the file,
|
||||||
and a line containing just end comment (or the end of the current file)
|
and a line containing just end comment (or the end of the current file)
|
||||||
ends it. See also comments.
|
ends it. See also comments.
|
||||||
|
|
||||||
Including other files
|
Including other files
|
||||||
You can pull in the content of additional files by writing an include
|
You can pull in the content of additional files by writing an include
|
||||||
directive, like this:
|
directive, like this:
|
||||||
|
|
||||||
include path/to/file.journal
|
include path/to/file.journal
|
||||||
|
|
||||||
If the path does not begin with a slash, it is relative to the current
|
If the path does not begin with a slash, it is relative to the current
|
||||||
file. The include file path may contain common glob patterns (e.g.
|
file. The include file path may contain common glob patterns (e.g.
|
||||||
*).
|
*).
|
||||||
|
|
||||||
The include directive can only be used in journal files. It can
|
The include directive can only be used in journal files. It can
|
||||||
include journal, timeclock or timedot files, but not CSV files.
|
include journal, timeclock or timedot files, but not CSV files.
|
||||||
|
|
||||||
Default year
|
Default year
|
||||||
You can set a default year to be used for subsequent dates which don't
|
You can set a default year to be used for subsequent dates which don't
|
||||||
specify a year. This is a line beginning with Y followed by the year.
|
specify a year. This is a line beginning with Y followed by the year.
|
||||||
Eg:
|
Eg:
|
||||||
|
|
||||||
Y2009 ; set default year to 2009
|
Y2009 ; set default year to 2009
|
||||||
|
|
||||||
12/15 ; equivalent to 2009/12/15
|
12/15 ; equivalent to 2009/12/15
|
||||||
expenses 1
|
expenses 1
|
||||||
assets
|
assets
|
||||||
|
|
||||||
Y2010 ; change default year to 2010
|
Y2010 ; change default year to 2010
|
||||||
|
|
||||||
2009/1/30 ; specifies the year, not affected
|
2009/1/30 ; specifies the year, not affected
|
||||||
expenses 1
|
expenses 1
|
||||||
assets
|
assets
|
||||||
|
|
||||||
1/31 ; equivalent to 2010/1/31
|
1/31 ; equivalent to 2010/1/31
|
||||||
expenses 1
|
expenses 1
|
||||||
assets
|
assets
|
||||||
|
|
||||||
Declaring commodities
|
Declaring commodities
|
||||||
The commodity directive declares commodities which may be used in the
|
The commodity directive declares commodities which may be used in the
|
||||||
journal (though currently we do not enforce this). It may be written
|
journal, and their display format.
|
||||||
on a single line, like this:
|
|
||||||
|
It may be written on a single line, like this:
|
||||||
|
|
||||||
; commodity EXAMPLEAMOUNT
|
; commodity EXAMPLEAMOUNT
|
||||||
|
|
||||||
@ -807,13 +808,19 @@ FILE FORMAT
|
|||||||
commodity INR
|
commodity INR
|
||||||
format INR 9,99,99,999.00
|
format INR 9,99,99,999.00
|
||||||
|
|
||||||
Commodity directives have a second purpose: they define the standard
|
Declaring commodites may be useful as documentation, but currently we
|
||||||
display format for amounts in the commodity. Normally the display for-
|
do not enforce that only declared commodities may be used. This direc-
|
||||||
mat is inferred from journal entries, but this can be unpredictable;
|
tive is mainly useful for customising the preferred display format for
|
||||||
declaring it with a commodity directive overrides this and removes
|
a commodity.
|
||||||
ambiguity. Towards this end, amounts in commodity directives must
|
|
||||||
always be written with a decimal point (a period or comma, followed by
|
Normally the display format is inferred from journal entries, but this
|
||||||
0 or more decimal digits).
|
can be unpredictable; declaring it with a commodity directive overrides
|
||||||
|
this and removes ambiguity. Towards this end, amounts in commodity
|
||||||
|
directives must always be written with a decimal point (a period or
|
||||||
|
comma, followed by 0 or more decimal digits).
|
||||||
|
|
||||||
|
Commodity directives do not affect how amounts are parsed; the parser
|
||||||
|
will read multiple formats.
|
||||||
|
|
||||||
Default commodity
|
Default commodity
|
||||||
The D directive sets a default commodity (and display format), to be
|
The D directive sets a default commodity (and display format), to be
|
||||||
@ -827,7 +834,7 @@ FILE FORMAT
|
|||||||
D $1,000.00
|
D $1,000.00
|
||||||
|
|
||||||
1/1
|
1/1
|
||||||
a 5 ; <- commodity-less amount, becomes $1
|
a 5 ; <- commodity-less amount, becomes $1
|
||||||
b
|
b
|
||||||
|
|
||||||
As with the commodity directive, the amount must always be written with
|
As with the commodity directive, the amount must always be written with
|
||||||
@ -947,11 +954,11 @@ FILE FORMAT
|
|||||||
names mentioned above, you might need to help the reports a bit. Eg:
|
names mentioned above, you might need to help the reports a bit. Eg:
|
||||||
|
|
||||||
; make "liabilities" not have the liability type - who knows why
|
; make "liabilities" not have the liability type - who knows why
|
||||||
account liabilities ; type:E
|
account liabilities ; type:E
|
||||||
|
|
||||||
; we need to ensure some other account has the liability type,
|
; we need to ensure some other account has the liability type,
|
||||||
; otherwise balancesheet would still show "liabilities" under Liabilities
|
; otherwise balancesheet would still show "liabilities" under Liabilities
|
||||||
account - ; type:L
|
account - ; type:L
|
||||||
|
|
||||||
Account display order
|
Account display order
|
||||||
Account directives also set the order in which accounts are displayed,
|
Account directives also set the order in which accounts are displayed,
|
||||||
@ -1047,17 +1054,38 @@ FILE FORMAT
|
|||||||
line, to end of option argument), so it can contain trailing white-
|
line, to end of option argument), so it can contain trailing white-
|
||||||
space.
|
space.
|
||||||
|
|
||||||
Multiple aliases
|
Combining aliases
|
||||||
You can define as many aliases as you like using directives or command-
|
You can define as many aliases as you like, using journal directives
|
||||||
line options. Aliases are recursive - each alias sees the result of
|
and/or command line options.
|
||||||
applying previous ones. (This is different from Ledger, where aliases
|
|
||||||
are non-recursive by default). Aliases are applied in the following
|
|
||||||
order:
|
|
||||||
|
|
||||||
1. alias directives, most recently seen first (recent directives take
|
Recursive aliases - where an account name is rewritten by one alias,
|
||||||
precedence over earlier ones; directives not yet seen are ignored)
|
then by another alias, and so on - are allowed. Each alias sees the
|
||||||
|
effect of previously applied aliases.
|
||||||
|
|
||||||
2. alias options, in the order they appear on the command line
|
In such cases it can be important to understand which aliases will be
|
||||||
|
applied and in which order. For (each account name in) each journal
|
||||||
|
entry, we apply:
|
||||||
|
|
||||||
|
1. alias directives preceding the journal entry, most recently parsed
|
||||||
|
first (ie, reading upward from the journal entry, bottom to top)
|
||||||
|
|
||||||
|
2. --alias options, in the order they appeared on the command line
|
||||||
|
(left to right).
|
||||||
|
|
||||||
|
In other words, for (an account name in) a given journal entry:
|
||||||
|
|
||||||
|
o the nearest alias declaration before/above the entry is applied first
|
||||||
|
|
||||||
|
o the next alias before/above that will be be applied next, and so on
|
||||||
|
|
||||||
|
o aliases defined after/below the entry do not affect it.
|
||||||
|
|
||||||
|
This gives nearby aliases precedence over distant ones, and helps pro-
|
||||||
|
vide semantic stability - aliases will keep working the same way inde-
|
||||||
|
pendent of which files are being read and in which order.
|
||||||
|
|
||||||
|
In case of trouble, adding --debug=6 to the command line will show
|
||||||
|
which aliases are being applied when.
|
||||||
|
|
||||||
end aliases
|
end aliases
|
||||||
You can clear (forget) all currently defined aliases with the end
|
You can clear (forget) all currently defined aliases with the end
|
||||||
@ -1141,8 +1169,18 @@ FILE FORMAT
|
|||||||
With the --forecast flag, each periodic transaction rule generates
|
With the --forecast flag, each periodic transaction rule generates
|
||||||
future transactions recurring at the specified interval. These are not
|
future transactions recurring at the specified interval. These are not
|
||||||
saved in the journal, but appear in all reports. They will look like
|
saved in the journal, but appear in all reports. They will look like
|
||||||
normal transactions, but with an extra tag named recur, whose value is
|
normal transactions, but with an extra tag:
|
||||||
the generating period expression.
|
|
||||||
|
o generated-transaction:~ PERIODICEXPR - shows that this was generated
|
||||||
|
by a periodic transaction rule, and the period
|
||||||
|
|
||||||
|
There is also a hidden tag, with an underscore prefix, which does not
|
||||||
|
appear in hledger's output:
|
||||||
|
|
||||||
|
o _generated-transaction:~ PERIODICEXPR
|
||||||
|
|
||||||
|
This can be used to match transactions generated "just now", rather
|
||||||
|
than generated in the past and saved to the journal.
|
||||||
|
|
||||||
Forecast transactions start on the first occurrence, and end on the
|
Forecast transactions start on the first occurrence, and end on the
|
||||||
last occurrence, of their interval within the forecast period. The
|
last occurrence, of their interval within the forecast period. The
|
||||||
@ -1189,16 +1227,16 @@ FILE FORMAT
|
|||||||
|
|
||||||
|
|
||||||
Auto postings / transaction modifiers
|
Auto postings / transaction modifiers
|
||||||
Transaction modifier rules describe changes to be applied automatically
|
Transaction modifier rules, AKA auto posting rules, describe changes to
|
||||||
to certain matched transactions. Currently just one kind of change is
|
be applied automatically to certain matched transactions. Currently
|
||||||
possible - adding extra postings, which we call "automated postings" or
|
just one kind of change is possible - adding extra postings, which we
|
||||||
just "auto postings". These rules become active when you use the
|
call "automated postings" or just "auto postings". These rules become
|
||||||
--auto flag.
|
active when you use the --auto flag.
|
||||||
|
|
||||||
A transaction modifier, AKA auto posting rule, looks much like a normal
|
A transaction modifier rule looks much like a normal transaction except
|
||||||
transaction except the first line is an equals sign followed by a query
|
the first line is an equals sign followed by a query that matches cer-
|
||||||
that matches certain postings (mnemonic: = suggests matching). And
|
tain postings (mnemonic: = suggests matching). And each "posting" is
|
||||||
each "posting" is actually a posting-generating rule:
|
actually a posting-generating rule:
|
||||||
|
|
||||||
= QUERY
|
= QUERY
|
||||||
ACCT AMT
|
ACCT AMT
|
||||||
@ -1257,6 +1295,11 @@ FILE FORMAT
|
|||||||
assets:checking:gifts -$20
|
assets:checking:gifts -$20
|
||||||
assets:checking $20
|
assets:checking $20
|
||||||
|
|
||||||
|
Auto postings and dates
|
||||||
|
A posting date (or secondary date) in the matched posting, or (taking
|
||||||
|
precedence) a posting date in the auto posting rule itself, will also
|
||||||
|
be used in the generated posting.
|
||||||
|
|
||||||
Auto postings and transaction balancing / inferred amounts / balance asser-
|
Auto postings and transaction balancing / inferred amounts / balance asser-
|
||||||
tions
|
tions
|
||||||
Currently, transaction modifiers are applied / auto postings are added:
|
Currently, transaction modifiers are applied / auto postings are added:
|
||||||
@ -1270,19 +1313,37 @@ FILE FORMAT
|
|||||||
after auto postings are added. This changed in hledger 1.12+; see #893
|
after auto postings are added. This changed in hledger 1.12+; see #893
|
||||||
for background.
|
for background.
|
||||||
|
|
||||||
|
Auto posting tags
|
||||||
|
Postings added by transaction modifiers will have some extra tags:
|
||||||
|
|
||||||
|
o generated-posting:= QUERY - shows this was generated by an auto post-
|
||||||
|
ing rule, and the query
|
||||||
|
|
||||||
|
o _generated-posting:= QUERY - a hidden tag, which does not appear in
|
||||||
|
hledger's output. This can be used to match postings generated "just
|
||||||
|
now", rather than generated in the past and saved to the journal.
|
||||||
|
|
||||||
|
Also, any transaction that has been changed by transaction modifier
|
||||||
|
rules will have these tags added:
|
||||||
|
|
||||||
|
o modified: - this transaction was modified
|
||||||
|
|
||||||
|
o _modified: - a hidden tag not appearing in the comment; this transac-
|
||||||
|
tion was modified "just now".
|
||||||
|
|
||||||
EDITOR SUPPORT
|
EDITOR SUPPORT
|
||||||
Helper modes exist for popular text editors, which make working with
|
Helper modes exist for popular text editors, which make working with
|
||||||
journal files easier. They add colour, formatting, tab completion, and
|
journal files easier. They add colour, formatting, tab completion, and
|
||||||
helpful commands, and are quite recommended if you edit your journal
|
helpful commands, and are quite recommended if you edit your journal
|
||||||
with a text editor. They include ledger-mode or hledger-mode for
|
with a text editor. They include ledger-mode or hledger-mode for
|
||||||
Emacs, vim-ledger for Vim, hledger-vscode for Visual Studio Code, and
|
Emacs, vim-ledger for Vim, hledger-vscode for Visual Studio Code, and
|
||||||
others. See the [[Cookbook]] at hledger.org for the latest informa-
|
others. See the [[Cookbook]] at hledger.org for the latest informa-
|
||||||
tion.
|
tion.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
REPORTING BUGS
|
REPORTING BUGS
|
||||||
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
||||||
or hledger mail list)
|
or hledger mail list)
|
||||||
|
|
||||||
|
|
||||||
@ -1296,7 +1357,7 @@ COPYRIGHT
|
|||||||
|
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
||||||
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
||||||
dot(5), ledger(1)
|
dot(5), ledger(1)
|
||||||
|
|
||||||
@ -1304,4 +1365,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger 1.14.99 March 2019 hledger_journal(5)
|
hledger 1.15 August 2019 hledger_journal(5)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
.TH "hledger_timeclock" "5" "March 2019" "hledger 1.14.99" "hledger User Manuals"
|
.TH "hledger_timeclock" "5" "August 2019" "hledger 1.15" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -4,8 +4,8 @@ stdin.
|
|||||||
|
|
||||||
File: hledger_timeclock.info, Node: Top, Up: (dir)
|
File: hledger_timeclock.info, Node: Top, Up: (dir)
|
||||||
|
|
||||||
hledger_timeclock(5) hledger 1.14.99
|
hledger_timeclock(5) hledger 1.15
|
||||||
************************************
|
*********************************
|
||||||
|
|
||||||
hledger can read timeclock files. As with Ledger, these are (a subset
|
hledger can read timeclock files. As with Ledger, these are (a subset
|
||||||
of) timeclock.el's format, containing clock-in and clock-out entries as
|
of) timeclock.el's format, containing clock-in and clock-out entries as
|
||||||
|
|||||||
@ -78,4 +78,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger 1.14.99 March 2019 hledger_timeclock(5)
|
hledger 1.15 August 2019 hledger_timeclock(5)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
.TH "hledger_timedot" "5" "March 2019" "hledger 1.14.99" "hledger User Manuals"
|
.TH "hledger_timedot" "5" "August 2019" "hledger 1.15" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -4,8 +4,8 @@ stdin.
|
|||||||
|
|
||||||
File: hledger_timedot.info, Node: Top, Next: FILE FORMAT, Up: (dir)
|
File: hledger_timedot.info, Node: Top, Next: FILE FORMAT, Up: (dir)
|
||||||
|
|
||||||
hledger_timedot(5) hledger 1.14.99
|
hledger_timedot(5) hledger 1.15
|
||||||
**********************************
|
*******************************
|
||||||
|
|
||||||
Timedot is a plain text format for logging dated, categorised quantities
|
Timedot is a plain text format for logging dated, categorised quantities
|
||||||
(of time, usually), supported by hledger. It is convenient for
|
(of time, usually), supported by hledger. It is convenient for
|
||||||
@ -111,7 +111,7 @@ $ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
|
|||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top76
|
Node: Top76
|
||||||
Node: FILE FORMAT814
|
Node: FILE FORMAT808
|
||||||
Ref: #file-format915
|
Ref: #file-format909
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
@ -124,4 +124,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger 1.14.99 March 2019 hledger_timedot(5)
|
hledger 1.15 August 2019 hledger_timedot(5)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
.TH "hledger-ui" "1" "March 2019" "hledger-ui 1.14.99" "hledger User Manuals"
|
.TH "hledger-ui" "1" "August 2019" "hledger-ui 1.15" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -118,7 +118,7 @@ multiperiod/multicolumn report by year
|
|||||||
.TP
|
.TP
|
||||||
.B \f[C]-p --period=PERIODEXP\f[R]
|
.B \f[C]-p --period=PERIODEXP\f[R]
|
||||||
set start date, end date, and/or reporting interval all at once using
|
set start date, end date, and/or reporting interval all at once using
|
||||||
period expressions syntax (overrides the flags above)
|
period expressions syntax
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]--date2\f[R]
|
.B \f[C]--date2\f[R]
|
||||||
match the secondary date instead (see command help for other effects)
|
match the secondary date instead (see command help for other effects)
|
||||||
@ -426,6 +426,9 @@ Symptoms include: unresponsive UI, periodic resetting of the cursor
|
|||||||
position, momentary display of parse errors, high CPU usage eventually
|
position, momentary display of parse errors, high CPU usage eventually
|
||||||
subsiding, and possibly a small but persistent build-up of CPU usage
|
subsiding, and possibly a small but persistent build-up of CPU usage
|
||||||
until the program is restarted.
|
until the program is restarted.
|
||||||
|
.PP
|
||||||
|
Also, if you are viewing files mounted from another machine,
|
||||||
|
\f[C]--watch\f[R] requires that both machine clocks are roughly in step.
|
||||||
|
|
||||||
|
|
||||||
.SH "REPORTING BUGS"
|
.SH "REPORTING BUGS"
|
||||||
|
|||||||
@ -3,8 +3,8 @@ This is hledger-ui.info, produced by makeinfo version 6.5 from stdin.
|
|||||||
|
|
||||||
File: hledger-ui.info, Node: Top, Next: OPTIONS, Up: (dir)
|
File: hledger-ui.info, Node: Top, Next: OPTIONS, Up: (dir)
|
||||||
|
|
||||||
hledger-ui(1) hledger-ui 1.14.99
|
hledger-ui(1) hledger-ui 1.15
|
||||||
********************************
|
*****************************
|
||||||
|
|
||||||
hledger-ui is hledger's curses-style interface, providing an efficient
|
hledger-ui is hledger's curses-style interface, providing an efficient
|
||||||
full-window text UI for viewing accounts and transactions, and some
|
full-window text UI for viewing accounts and transactions, and some
|
||||||
@ -117,7 +117,7 @@ the data.
|
|||||||
'-p --period=PERIODEXP'
|
'-p --period=PERIODEXP'
|
||||||
|
|
||||||
set start date, end date, and/or reporting interval all at once
|
set start date, end date, and/or reporting interval all at once
|
||||||
using period expressions syntax (overrides the flags above)
|
using period expressions syntax
|
||||||
'--date2'
|
'--date2'
|
||||||
|
|
||||||
match the secondary date instead (see command help for other
|
match the secondary date instead (see command help for other
|
||||||
@ -399,19 +399,19 @@ to cancel the reload attempt.)
|
|||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top71
|
Node: Top71
|
||||||
Node: OPTIONS1107
|
Node: OPTIONS1101
|
||||||
Ref: #options1204
|
Ref: #options1198
|
||||||
Node: KEYS4623
|
Node: KEYS4589
|
||||||
Ref: #keys4718
|
Ref: #keys4684
|
||||||
Node: SCREENS7974
|
Node: SCREENS7940
|
||||||
Ref: #screens8059
|
Ref: #screens8025
|
||||||
Node: Accounts screen8149
|
Node: Accounts screen8115
|
||||||
Ref: #accounts-screen8277
|
Ref: #accounts-screen8243
|
||||||
Node: Register screen10493
|
Node: Register screen10459
|
||||||
Ref: #register-screen10648
|
Ref: #register-screen10614
|
||||||
Node: Transaction screen12644
|
Node: Transaction screen12610
|
||||||
Ref: #transaction-screen12802
|
Ref: #transaction-screen12768
|
||||||
Node: Error screen13672
|
Node: Error screen13638
|
||||||
Ref: #error-screen13794
|
Ref: #error-screen13760
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
@ -114,7 +114,7 @@ OPTIONS
|
|||||||
|
|
||||||
-p --period=PERIODEXP
|
-p --period=PERIODEXP
|
||||||
set start date, end date, and/or reporting interval all at once
|
set start date, end date, and/or reporting interval all at once
|
||||||
using period expressions syntax (overrides the flags above)
|
using period expressions syntax
|
||||||
|
|
||||||
--date2
|
--date2
|
||||||
match the secondary date instead (see command help for other
|
match the secondary date instead (see command help for other
|
||||||
@ -381,10 +381,13 @@ BUGS
|
|||||||
siding, and possibly a small but persistent build-up of CPU usage until
|
siding, and possibly a small but persistent build-up of CPU usage until
|
||||||
the program is restarted.
|
the program is restarted.
|
||||||
|
|
||||||
|
Also, if you are viewing files mounted from another machine, --watch
|
||||||
|
requires that both machine clocks are roughly in step.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
REPORTING BUGS
|
REPORTING BUGS
|
||||||
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
||||||
or hledger mail list)
|
or hledger mail list)
|
||||||
|
|
||||||
|
|
||||||
@ -398,7 +401,7 @@ COPYRIGHT
|
|||||||
|
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
||||||
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
||||||
dot(5), ledger(1)
|
dot(5), ledger(1)
|
||||||
|
|
||||||
@ -406,4 +409,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger-ui 1.14.99 March 2019 hledger-ui(1)
|
hledger-ui 1.15 August 2019 hledger-ui(1)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
.TH "hledger-web" "1" "March 2019" "hledger-web 1.14.99" "hledger User Manuals"
|
.TH "hledger-web" "1" "August 2019" "hledger-web 1.15" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -54,6 +54,10 @@ Note: if invoking hledger-web as a hledger subcommand, write
|
|||||||
.B \f[C]--serve\f[R]
|
.B \f[C]--serve\f[R]
|
||||||
serve and log requests, don\[aq]t browse or auto-exit
|
serve and log requests, don\[aq]t browse or auto-exit
|
||||||
.TP
|
.TP
|
||||||
|
.B \f[C]--serve-api\f[R]
|
||||||
|
like --serve, but serve only the JSON web API, without the server-side
|
||||||
|
web UI
|
||||||
|
.TP
|
||||||
.B \f[C]--host=IPADDR\f[R]
|
.B \f[C]--host=IPADDR\f[R]
|
||||||
listen on this IP address (default: 127.0.0.1)
|
listen on this IP address (default: 127.0.0.1)
|
||||||
.TP
|
.TP
|
||||||
@ -128,7 +132,7 @@ multiperiod/multicolumn report by year
|
|||||||
.TP
|
.TP
|
||||||
.B \f[C]-p --period=PERIODEXP\f[R]
|
.B \f[C]-p --period=PERIODEXP\f[R]
|
||||||
set start date, end date, and/or reporting interval all at once using
|
set start date, end date, and/or reporting interval all at once using
|
||||||
period expressions syntax (overrides the flags above)
|
period expressions syntax
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]--date2\f[R]
|
.B \f[C]--date2\f[R]
|
||||||
match the secondary date instead (see command help for other effects)
|
match the secondary date instead (see command help for other effects)
|
||||||
@ -194,6 +198,8 @@ open in a browser window, and will exit after two minutes of inactivity
|
|||||||
(no requests and no browser windows viewing it).
|
(no requests and no browser windows viewing it).
|
||||||
With \f[C]--serve\f[R], it just runs the web app without exiting, and
|
With \f[C]--serve\f[R], it just runs the web app without exiting, and
|
||||||
logs requests to the console.
|
logs requests to the console.
|
||||||
|
With \f[C]--serve-api\f[R], only the JSON web api (see below) is served,
|
||||||
|
with the usual HTML server-side web UI disabled.
|
||||||
.PP
|
.PP
|
||||||
By default the server listens on IP address 127.0.0.1, accessible only
|
By default the server listens on IP address 127.0.0.1, accessible only
|
||||||
to local requests.
|
to local requests.
|
||||||
@ -276,6 +282,9 @@ edit it directly, outside of hledger-web), and it will show the new data
|
|||||||
when you reload the page or navigate to a new page.
|
when you reload the page or navigate to a new page.
|
||||||
If a change makes a file unparseable, hledger-web will display an error
|
If a change makes a file unparseable, hledger-web will display an error
|
||||||
message until the file has been fixed.
|
message until the file has been fixed.
|
||||||
|
.PP
|
||||||
|
(Note: if you are viewing files mounted from another machine, make sure
|
||||||
|
that both machine clocks are roughly in step.)
|
||||||
.SH JSON API
|
.SH JSON API
|
||||||
.PP
|
.PP
|
||||||
In addition to the web UI, hledger-web provides some API routes that
|
In addition to the web UI, hledger-web provides some API routes that
|
||||||
@ -329,6 +338,10 @@ And here\[aq]s how to test adding that with curl:
|
|||||||
$ curl -s http://127.0.0.1:5000/add -X PUT -H \[aq]Content-Type: application/json\[aq] --data-binary \[at]txn.pretty.json; echo
|
$ curl -s http://127.0.0.1:5000/add -X PUT -H \[aq]Content-Type: application/json\[aq] --data-binary \[at]txn.pretty.json; echo
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
|
.PP
|
||||||
|
By default, both the server-side HTML UI and the JSON API are served.
|
||||||
|
Running with \f[C]--serve-api\f[R] disables the former, useful if you
|
||||||
|
only want to serve the API.
|
||||||
.SH ENVIRONMENT
|
.SH ENVIRONMENT
|
||||||
.PP
|
.PP
|
||||||
\f[B]LEDGER_FILE\f[R] The journal file path when not specified with
|
\f[B]LEDGER_FILE\f[R] The journal file path when not specified with
|
||||||
|
|||||||
@ -3,8 +3,8 @@ This is hledger-web.info, produced by makeinfo version 6.5 from stdin.
|
|||||||
|
|
||||||
File: hledger-web.info, Node: Top, Next: OPTIONS, Up: (dir)
|
File: hledger-web.info, Node: Top, Next: OPTIONS, Up: (dir)
|
||||||
|
|
||||||
hledger-web(1) hledger-web 1.14.99
|
hledger-web(1) hledger-web 1.15
|
||||||
**********************************
|
*******************************
|
||||||
|
|
||||||
hledger-web is hledger's web interface. It starts a simple web
|
hledger-web is hledger's web interface. It starts a simple web
|
||||||
application for browsing and adding transactions, and optionally opens
|
application for browsing and adding transactions, and optionally opens
|
||||||
@ -50,6 +50,10 @@ before options, as shown in the synopsis above.
|
|||||||
'--serve'
|
'--serve'
|
||||||
|
|
||||||
serve and log requests, don't browse or auto-exit
|
serve and log requests, don't browse or auto-exit
|
||||||
|
'--serve-api'
|
||||||
|
|
||||||
|
like -serve, but serve only the JSON web API, without the
|
||||||
|
server-side web UI
|
||||||
'--host=IPADDR'
|
'--host=IPADDR'
|
||||||
|
|
||||||
listen on this IP address (default: 127.0.0.1)
|
listen on this IP address (default: 127.0.0.1)
|
||||||
@ -127,7 +131,7 @@ before options, as shown in the synopsis above.
|
|||||||
'-p --period=PERIODEXP'
|
'-p --period=PERIODEXP'
|
||||||
|
|
||||||
set start date, end date, and/or reporting interval all at once
|
set start date, end date, and/or reporting interval all at once
|
||||||
using period expressions syntax (overrides the flags above)
|
using period expressions syntax
|
||||||
'--date2'
|
'--date2'
|
||||||
|
|
||||||
match the secondary date instead (see command help for other
|
match the secondary date instead (see command help for other
|
||||||
@ -193,7 +197,9 @@ also opens it in your default web browser if possible. In this mode the
|
|||||||
web app will keep running for as long as you have it open in a browser
|
web app will keep running for as long as you have it open in a browser
|
||||||
window, and will exit after two minutes of inactivity (no requests and
|
window, and will exit after two minutes of inactivity (no requests and
|
||||||
no browser windows viewing it). With '--serve', it just runs the web
|
no browser windows viewing it). With '--serve', it just runs the web
|
||||||
app without exiting, and logs requests to the console.
|
app without exiting, and logs requests to the console. With
|
||||||
|
'--serve-api', only the JSON web api (see below) is served, with the
|
||||||
|
usual HTML server-side web UI disabled.
|
||||||
|
|
||||||
By default the server listens on IP address 127.0.0.1, accessible
|
By default the server listens on IP address 127.0.0.1, accessible
|
||||||
only to local requests. You can use '--host' to change this, eg '--host
|
only to local requests. You can use '--host' to change this, eg '--host
|
||||||
@ -282,6 +288,9 @@ when you reload the page or navigate to a new page. If a change makes a
|
|||||||
file unparseable, hledger-web will display an error message until the
|
file unparseable, hledger-web will display an error message until the
|
||||||
file has been fixed.
|
file has been fixed.
|
||||||
|
|
||||||
|
(Note: if you are viewing files mounted from another machine, make
|
||||||
|
sure that both machine clocks are roughly in step.)
|
||||||
|
|
||||||
|
|
||||||
File: hledger-web.info, Node: JSON API, Prev: RELOADING, Up: Top
|
File: hledger-web.info, Node: JSON API, Prev: RELOADING, Up: Top
|
||||||
|
|
||||||
@ -325,18 +334,22 @@ $ python -m json.tool <txn.json >txn.pretty.json # optional: make human-readabl
|
|||||||
|
|
||||||
$ curl -s http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.pretty.json; echo
|
$ curl -s http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.pretty.json; echo
|
||||||
|
|
||||||
|
By default, both the server-side HTML UI and the JSON API are served.
|
||||||
|
Running with '--serve-api' disables the former, useful if you only want
|
||||||
|
to serve the API.
|
||||||
|
|
||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top72
|
Node: Top72
|
||||||
Node: OPTIONS1361
|
Node: OPTIONS1355
|
||||||
Ref: #options1466
|
Ref: #options1460
|
||||||
Node: PERMISSIONS6556
|
Node: PERMISSIONS6739
|
||||||
Ref: #permissions6695
|
Ref: #permissions6878
|
||||||
Node: EDITING UPLOADING DOWNLOADING7907
|
Node: EDITING UPLOADING DOWNLOADING8090
|
||||||
Ref: #editing-uploading-downloading8088
|
Ref: #editing-uploading-downloading8271
|
||||||
Node: RELOADING8922
|
Node: RELOADING9105
|
||||||
Ref: #reloading9056
|
Ref: #reloading9239
|
||||||
Node: JSON API9366
|
Node: JSON API9672
|
||||||
Ref: #json-api9460
|
Ref: #json-api9766
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
@ -46,6 +46,10 @@ OPTIONS
|
|||||||
--serve
|
--serve
|
||||||
serve and log requests, don't browse or auto-exit
|
serve and log requests, don't browse or auto-exit
|
||||||
|
|
||||||
|
--serve-api
|
||||||
|
like --serve, but serve only the JSON web API, without the
|
||||||
|
server-side web UI
|
||||||
|
|
||||||
--host=IPADDR
|
--host=IPADDR
|
||||||
listen on this IP address (default: 127.0.0.1)
|
listen on this IP address (default: 127.0.0.1)
|
||||||
|
|
||||||
@ -53,22 +57,22 @@ OPTIONS
|
|||||||
listen on this TCP port (default: 5000)
|
listen on this TCP port (default: 5000)
|
||||||
|
|
||||||
--base-url=URL
|
--base-url=URL
|
||||||
set the base url (default: http://IPADDR:PORT). You would
|
set the base url (default: http://IPADDR:PORT). You would
|
||||||
change this when sharing over the network, or integrating within
|
change this when sharing over the network, or integrating within
|
||||||
a larger website.
|
a larger website.
|
||||||
|
|
||||||
--file-url=URL
|
--file-url=URL
|
||||||
set the static files url (default: BASEURL/static). hledger-web
|
set the static files url (default: BASEURL/static). hledger-web
|
||||||
normally serves static files itself, but if you wanted to serve
|
normally serves static files itself, but if you wanted to serve
|
||||||
them from another server for efficiency, you would set the url
|
them from another server for efficiency, you would set the url
|
||||||
with this.
|
with this.
|
||||||
|
|
||||||
--capabilities=CAP[,CAP..]
|
--capabilities=CAP[,CAP..]
|
||||||
enable the view, add, and/or manage capabilities (default:
|
enable the view, add, and/or manage capabilities (default:
|
||||||
view,add)
|
view,add)
|
||||||
|
|
||||||
--capabilities-header=HTTPHEADER
|
--capabilities-header=HTTPHEADER
|
||||||
read capabilities to enable from a HTTP header, like X-Sand-
|
read capabilities to enable from a HTTP header, like X-Sand-
|
||||||
storm-Permissions (default: disabled)
|
storm-Permissions (default: disabled)
|
||||||
|
|
||||||
hledger input options:
|
hledger input options:
|
||||||
@ -78,7 +82,7 @@ OPTIONS
|
|||||||
$LEDGER_FILE or $HOME/.hledger.journal)
|
$LEDGER_FILE or $HOME/.hledger.journal)
|
||||||
|
|
||||||
--rules-file=RULESFILE
|
--rules-file=RULESFILE
|
||||||
Conversion rules file to use when reading CSV (default:
|
Conversion rules file to use when reading CSV (default:
|
||||||
FILE.rules)
|
FILE.rules)
|
||||||
|
|
||||||
--separator=CHAR
|
--separator=CHAR
|
||||||
@ -119,11 +123,11 @@ OPTIONS
|
|||||||
multiperiod/multicolumn report by year
|
multiperiod/multicolumn report by year
|
||||||
|
|
||||||
-p --period=PERIODEXP
|
-p --period=PERIODEXP
|
||||||
set start date, end date, and/or reporting interval all at once
|
set start date, end date, and/or reporting interval all at once
|
||||||
using period expressions syntax (overrides the flags above)
|
using period expressions syntax
|
||||||
|
|
||||||
--date2
|
--date2
|
||||||
match the secondary date instead (see command help for other
|
match the secondary date instead (see command help for other
|
||||||
effects)
|
effects)
|
||||||
|
|
||||||
-U --unmarked
|
-U --unmarked
|
||||||
@ -142,21 +146,21 @@ OPTIONS
|
|||||||
hide/aggregate accounts or postings more than NUM levels deep
|
hide/aggregate accounts or postings more than NUM levels deep
|
||||||
|
|
||||||
-E --empty
|
-E --empty
|
||||||
show items with zero amount, normally hidden (and vice-versa in
|
show items with zero amount, normally hidden (and vice-versa in
|
||||||
hledger-ui/hledger-web)
|
hledger-ui/hledger-web)
|
||||||
|
|
||||||
-B --cost
|
-B --cost
|
||||||
convert amounts to their cost at transaction time (using the
|
convert amounts to their cost at transaction time (using the
|
||||||
transaction price, if any)
|
transaction price, if any)
|
||||||
|
|
||||||
-V --value
|
-V --value
|
||||||
convert amounts to their market value on the report end date
|
convert amounts to their market value on the report end date
|
||||||
(using the most recent applicable market price, if any)
|
(using the most recent applicable market price, if any)
|
||||||
|
|
||||||
--auto apply automated posting rules to modify transactions.
|
--auto apply automated posting rules to modify transactions.
|
||||||
|
|
||||||
--forecast
|
--forecast
|
||||||
apply periodic transaction rules to generate future transac-
|
apply periodic transaction rules to generate future transac-
|
||||||
tions, to 6 months from now or report end date.
|
tions, to 6 months from now or report end date.
|
||||||
|
|
||||||
When a reporting option appears more than once in the command line, the
|
When a reporting option appears more than once in the command line, the
|
||||||
@ -176,39 +180,41 @@ OPTIONS
|
|||||||
show debug output (levels 1-9, default: 1)
|
show debug output (levels 1-9, default: 1)
|
||||||
|
|
||||||
A @FILE argument will be expanded to the contents of FILE, which should
|
A @FILE argument will be expanded to the contents of FILE, which should
|
||||||
contain one command line option/argument per line. (To prevent this,
|
contain one command line option/argument per line. (To prevent this,
|
||||||
insert a -- argument before.)
|
insert a -- argument before.)
|
||||||
|
|
||||||
By default, hledger-web starts the web app in "transient mode" and also
|
By default, hledger-web starts the web app in "transient mode" and also
|
||||||
opens it in your default web browser if possible. In this mode the web
|
opens it in your default web browser if possible. In this mode the web
|
||||||
app will keep running for as long as you have it open in a browser win-
|
app will keep running for as long as you have it open in a browser win-
|
||||||
dow, and will exit after two minutes of inactivity (no requests and no
|
dow, and will exit after two minutes of inactivity (no requests and no
|
||||||
browser windows viewing it). With --serve, it just runs the web app
|
browser windows viewing it). With --serve, it just runs the web app
|
||||||
without exiting, and logs requests to the console.
|
without exiting, and logs requests to the console. With --serve-api,
|
||||||
|
only the JSON web api (see below) is served, with the usual HTML
|
||||||
|
server-side web UI disabled.
|
||||||
|
|
||||||
By default the server listens on IP address 127.0.0.1, accessible only
|
By default the server listens on IP address 127.0.0.1, accessible only
|
||||||
to local requests. You can use --host to change this, eg --host
|
to local requests. You can use --host to change this, eg --host
|
||||||
0.0.0.0 to listen on all configured addresses.
|
0.0.0.0 to listen on all configured addresses.
|
||||||
|
|
||||||
Similarly, use --port to set a TCP port other than 5000, eg if you are
|
Similarly, use --port to set a TCP port other than 5000, eg if you are
|
||||||
running multiple hledger-web instances.
|
running multiple hledger-web instances.
|
||||||
|
|
||||||
You can use --base-url to change the protocol, hostname, port and path
|
You can use --base-url to change the protocol, hostname, port and path
|
||||||
that appear in hyperlinks, useful eg for integrating hledger-web within
|
that appear in hyperlinks, useful eg for integrating hledger-web within
|
||||||
a larger website. The default is http://HOST:PORT/ using the server's
|
a larger website. The default is http://HOST:PORT/ using the server's
|
||||||
configured host address and TCP port (or http://HOST if PORT is 80).
|
configured host address and TCP port (or http://HOST if PORT is 80).
|
||||||
|
|
||||||
With --file-url you can set a different base url for static files, eg
|
With --file-url you can set a different base url for static files, eg
|
||||||
for better caching or cookie-less serving on high performance websites.
|
for better caching or cookie-less serving on high performance websites.
|
||||||
|
|
||||||
PERMISSIONS
|
PERMISSIONS
|
||||||
By default, hledger-web allows anyone who can reach it to view the
|
By default, hledger-web allows anyone who can reach it to view the
|
||||||
journal and to add new transactions, but not to change existing data.
|
journal and to add new transactions, but not to change existing data.
|
||||||
|
|
||||||
You can restrict who can reach it by
|
You can restrict who can reach it by
|
||||||
|
|
||||||
o setting the IP address it listens on (see --host above). By default
|
o setting the IP address it listens on (see --host above). By default
|
||||||
it listens on 127.0.0.1, accessible to all users on the local
|
it listens on 127.0.0.1, accessible to all users on the local
|
||||||
machine.
|
machine.
|
||||||
|
|
||||||
o putting it behind an authenticating proxy, using eg apache or nginx
|
o putting it behind an authenticating proxy, using eg apache or nginx
|
||||||
@ -218,47 +224,50 @@ PERMISSIONS
|
|||||||
You can restrict what the users who reach it can do, by
|
You can restrict what the users who reach it can do, by
|
||||||
|
|
||||||
o using the --capabilities=CAP[,CAP..] flag when you start it, enabling
|
o using the --capabilities=CAP[,CAP..] flag when you start it, enabling
|
||||||
one or more of the following capabilities. The default value is
|
one or more of the following capabilities. The default value is
|
||||||
view,add:
|
view,add:
|
||||||
|
|
||||||
o view - allows viewing the journal file and all included files
|
o view - allows viewing the journal file and all included files
|
||||||
|
|
||||||
o add - allows adding new transactions to the main journal file
|
o add - allows adding new transactions to the main journal file
|
||||||
|
|
||||||
o manage - allows editing, uploading or downloading the main or
|
o manage - allows editing, uploading or downloading the main or
|
||||||
included files
|
included files
|
||||||
|
|
||||||
o using the --capabilities-header=HTTPHEADER flag to specify a HTTP
|
o using the --capabilities-header=HTTPHEADER flag to specify a HTTP
|
||||||
header from which it will read capabilities to enable. hledger-web
|
header from which it will read capabilities to enable. hledger-web
|
||||||
on Sandstorm uses the X-Sandstorm-Permissions header to integrate
|
on Sandstorm uses the X-Sandstorm-Permissions header to integrate
|
||||||
with Sandstorm's permissions. This is disabled by default.
|
with Sandstorm's permissions. This is disabled by default.
|
||||||
|
|
||||||
EDITING, UPLOADING, DOWNLOADING
|
EDITING, UPLOADING, DOWNLOADING
|
||||||
If you enable the manage capability mentioned above, you'll see a new
|
If you enable the manage capability mentioned above, you'll see a new
|
||||||
"spanner" button to the right of the search form. Clicking this will
|
"spanner" button to the right of the search form. Clicking this will
|
||||||
let you edit, upload, or download the journal file or any files it
|
let you edit, upload, or download the journal file or any files it
|
||||||
includes.
|
includes.
|
||||||
|
|
||||||
Note, unlike any other hledger command, in this mode you (or any visi-
|
Note, unlike any other hledger command, in this mode you (or any visi-
|
||||||
tor) can alter or wipe the data files.
|
tor) can alter or wipe the data files.
|
||||||
|
|
||||||
Normally whenever a file is changed in this way, hledger-web saves a
|
Normally whenever a file is changed in this way, hledger-web saves a
|
||||||
numbered backup (assuming file permissions allow it, the disk is not
|
numbered backup (assuming file permissions allow it, the disk is not
|
||||||
full, etc.) hledger-web is not aware of version control systems, cur-
|
full, etc.) hledger-web is not aware of version control systems, cur-
|
||||||
rently; if you use one, you'll have to arrange to commit the changes
|
rently; if you use one, you'll have to arrange to commit the changes
|
||||||
yourself (eg with a cron job or a file watcher like entr).
|
yourself (eg with a cron job or a file watcher like entr).
|
||||||
|
|
||||||
Changes which would leave the journal file(s) unparseable or non-valid
|
Changes which would leave the journal file(s) unparseable or non-valid
|
||||||
(eg with failing balance assertions) are prevented. (Probably. This
|
(eg with failing balance assertions) are prevented. (Probably. This
|
||||||
needs re-testing.)
|
needs re-testing.)
|
||||||
|
|
||||||
RELOADING
|
RELOADING
|
||||||
hledger-web detects changes made to the files by other means (eg if you
|
hledger-web detects changes made to the files by other means (eg if you
|
||||||
edit it directly, outside of hledger-web), and it will show the new
|
edit it directly, outside of hledger-web), and it will show the new
|
||||||
data when you reload the page or navigate to a new page. If a change
|
data when you reload the page or navigate to a new page. If a change
|
||||||
makes a file unparseable, hledger-web will display an error message
|
makes a file unparseable, hledger-web will display an error message
|
||||||
until the file has been fixed.
|
until the file has been fixed.
|
||||||
|
|
||||||
|
(Note: if you are viewing files mounted from another machine, make sure
|
||||||
|
that both machine clocks are roughly in step.)
|
||||||
|
|
||||||
JSON API
|
JSON API
|
||||||
In addition to the web UI, hledger-web provides some API routes that
|
In addition to the web UI, hledger-web provides some API routes that
|
||||||
serve JSON in response to GET requests. Currently these are same ones
|
serve JSON in response to GET requests. Currently these are same ones
|
||||||
@ -297,6 +306,10 @@ JSON API
|
|||||||
|
|
||||||
$ curl -s http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.pretty.json; echo
|
$ curl -s http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.pretty.json; echo
|
||||||
|
|
||||||
|
By default, both the server-side HTML UI and the JSON API are served.
|
||||||
|
Running with --serve-api disables the former, useful if you only want
|
||||||
|
to serve the API.
|
||||||
|
|
||||||
ENVIRONMENT
|
ENVIRONMENT
|
||||||
LEDGER_FILE The journal file path when not specified with -f. Default:
|
LEDGER_FILE The journal file path when not specified with -f. Default:
|
||||||
~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour-
|
~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour-
|
||||||
@ -345,4 +358,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger-web 1.14.99 March 2019 hledger-web(1)
|
hledger-web 1.15 August 2019 hledger-web(1)
|
||||||
|
|||||||
@ -20,6 +20,7 @@ Transactions last 7 days : 0 (0.0 per day)
|
|||||||
Payees/descriptions : 5
|
Payees/descriptions : 5
|
||||||
Accounts : 8 (depth 3)
|
Accounts : 8 (depth 3)
|
||||||
Commodities : 1 ($)
|
Commodities : 1 ($)
|
||||||
|
Market prices : 12 ($)
|
||||||
|
|
||||||
This command also supports output destination and output format
|
This command also supports output destination and output format
|
||||||
selection.
|
selection.
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
.\"t
|
.\"t
|
||||||
|
|
||||||
.TH "hledger" "1" "March 2019" "hledger 1.14.99" "hledger User Manuals"
|
.TH "hledger" "1" "August 2019" "hledger 1.15" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -218,7 +218,7 @@ multiperiod/multicolumn report by year
|
|||||||
.TP
|
.TP
|
||||||
.B \f[C]-p --period=PERIODEXP\f[R]
|
.B \f[C]-p --period=PERIODEXP\f[R]
|
||||||
set start date, end date, and/or reporting interval all at once using
|
set start date, end date, and/or reporting interval all at once using
|
||||||
period expressions syntax (overrides the flags above)
|
period expressions syntax
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]--date2\f[R]
|
.B \f[C]--date2\f[R]
|
||||||
match the secondary date instead (see command help for other effects)
|
match the secondary date instead (see command help for other effects)
|
||||||
@ -455,7 +455,7 @@ turn:
|
|||||||
.PP
|
.PP
|
||||||
.TS
|
.TS
|
||||||
tab(@);
|
tab(@);
|
||||||
lw(10.3n) lw(33.5n) lw(26.2n).
|
lw(7.6n) lw(31.2n) lw(31.2n).
|
||||||
T{
|
T{
|
||||||
Reader:
|
Reader:
|
||||||
T}@T{
|
T}@T{
|
||||||
@ -622,9 +622,20 @@ You can specify a start and/or end date using \f[C]-b/--begin\f[R],
|
|||||||
\f[C]-e/--end\f[R], \f[C]-p/--period\f[R] or a \f[C]date:\f[R] query
|
\f[C]-e/--end\f[R], \f[C]-p/--period\f[R] or a \f[C]date:\f[R] query
|
||||||
(described below).
|
(described below).
|
||||||
All of these accept the smart date syntax.
|
All of these accept the smart date syntax.
|
||||||
One important thing to be aware of when specifying end dates: as in
|
.PP
|
||||||
Ledger, end dates are exclusive, so you need to write the date
|
Some notes:
|
||||||
|
.IP \[bu] 2
|
||||||
|
As in Ledger, end dates are exclusive, so you need to write the date
|
||||||
\f[I]after\f[R] the last day you want to include.
|
\f[I]after\f[R] the last day you want to include.
|
||||||
|
.IP \[bu] 2
|
||||||
|
As noted in reporting options: among start/end dates specified with
|
||||||
|
\f[I]options\f[R], the last (i.e.
|
||||||
|
right-most) option takes precedence.
|
||||||
|
.IP \[bu] 2
|
||||||
|
The effective report start and end dates are the intersection of the
|
||||||
|
start/end dates from options and that from \f[C]date:\f[R] queries.
|
||||||
|
That is, \f[C]date:2019-01 date:2019 -p\[aq]2000 to 2030\[aq]\f[R]
|
||||||
|
yields January 2019, the smallest common time span.
|
||||||
.PP
|
.PP
|
||||||
Examples:
|
Examples:
|
||||||
.PP
|
.PP
|
||||||
@ -679,7 +690,7 @@ The basic intervals can be selected with one of \f[C]-D/--daily\f[R],
|
|||||||
\f[C]-W/--weekly\f[R], \f[C]-M/--monthly\f[R], \f[C]-Q/--quarterly\f[R],
|
\f[C]-W/--weekly\f[R], \f[C]-M/--monthly\f[R], \f[C]-Q/--quarterly\f[R],
|
||||||
or \f[C]-Y/--yearly\f[R].
|
or \f[C]-Y/--yearly\f[R].
|
||||||
More complex intervals may be specified with a period expression.
|
More complex intervals may be specified with a period expression.
|
||||||
Report intervals can not be specified with a query, currently.
|
Report intervals can not be specified with a query.
|
||||||
.SS Period expressions
|
.SS Period expressions
|
||||||
.PP
|
.PP
|
||||||
The \f[C]-p/--period\f[R] option accepts period expressions, a shorthand
|
The \f[C]-p/--period\f[R] option accepts period expressions, a shorthand
|
||||||
@ -993,18 +1004,33 @@ $ hledger balance --pivot member acct:.
|
|||||||
-2 EUR
|
-2 EUR
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.SS Cost
|
.SS Valuation
|
||||||
|
.SS -B: Cost
|
||||||
.PP
|
.PP
|
||||||
The \f[C]-B/--cost\f[R] flag converts amounts to their cost at
|
The \f[C]-B/--cost\f[R] flag converts amounts to their cost (or selling
|
||||||
transaction time, if they have a transaction price specified.
|
price) at transaction time, if they have a transaction price specified.
|
||||||
.SS Market value
|
This flag is equivalent to \f[C]--value=cost\f[R], described below.
|
||||||
|
.SS -V: Market value
|
||||||
.PP
|
.PP
|
||||||
The \f[C]-V/--market\f[R] flag converts reported amounts to their market
|
The \f[C]-V/--market\f[R] flag converts reported amounts to their market
|
||||||
value in another commodity.
|
value in a default valuation commodity, using the historical market
|
||||||
It uses the commodity referenced in the latest market price (P
|
prices in effect on a default valuation date.
|
||||||
directive) dated on or before the valuation date.
|
.PP
|
||||||
The default valuation date is today.
|
For single period reports, the valuation date is today.
|
||||||
For example:
|
For multiperiod reports, it is the last day of each subperiod.
|
||||||
|
.PP
|
||||||
|
The valuation commodity will be the one referenced in the latest
|
||||||
|
applicable market price dated on or before the valuation date.
|
||||||
|
If most of your P declarations lead to a single home currency, this will
|
||||||
|
usually be what you want.
|
||||||
|
.PP
|
||||||
|
Unlike the similar flag in Ledger, it does not infer market prices from
|
||||||
|
transaction prices.
|
||||||
|
In hledger, -B uses transaction prices, -V and -X use market prices.
|
||||||
|
.PP
|
||||||
|
It is equivalent to \f[C]--value=now\f[R] or \f[C]--value=end\f[R].
|
||||||
|
.PP
|
||||||
|
Here\[aq]s a quick example:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
@ -1048,52 +1074,79 @@ $ hledger -f t.j bal -N euros -V
|
|||||||
$103.00 assets:euros
|
$103.00 assets:euros
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
|
.SS -X: Market value in specified commodity
|
||||||
.PP
|
.PP
|
||||||
Ledger users: Ledger\[aq]s -V also infers market prices from journal
|
The \f[C]-X/--exchange\f[R] option is like \f[C]-V/--market\f[R] except
|
||||||
entries, but we don\[aq]t do that.
|
it takes a commodity symbol argument, so that you can select a different
|
||||||
hledger\[aq]s -V uses only market prices declared explicitly, with P
|
target commodity.
|
||||||
directives.
|
It is similar to the same option in Ledger, with the same caveat
|
||||||
(Mnemonic: -B/--cost uses transaction prices, -V/--market uses market
|
mentioned for \f[C]-V\f[R]/\f[C]--value\f[R] above.
|
||||||
prices.)
|
It is equivalent to \f[C]--value=now,COMM\f[R] or
|
||||||
.SS More control over valuation
|
\f[C]--value=end,COMM\f[R]; for more details, read on.
|
||||||
|
.SS --value
|
||||||
.PP
|
.PP
|
||||||
\f[I](experimental, added 201905)\f[R]
|
\f[I](experimental, added 201905)\f[R]
|
||||||
.PP
|
.PP
|
||||||
You can control valuation more precisely with the \f[C]--value\f[R]
|
\f[C]-B\f[R], \f[C]-V\f[R] and \f[C]-X\f[R] are special cases of the
|
||||||
option.
|
more general \f[C]--value\f[R] option:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
--value=TYPE which type of valuation should be done ? cost|end|now|YYYY-MM-DD
|
--value=TYPE[,COMM] TYPE is cost, end, now or YYYY-MM-DD.
|
||||||
|
COMM is an optional commodity symbol.
|
||||||
|
Shows amounts converted to:
|
||||||
|
- cost commodity using transaction prices (then optionally to COMM using market prices at period end(s))
|
||||||
|
- default valuation commodity (or COMM) using market prices at period end(s)
|
||||||
|
- default valuation commodity (or COMM) using current market prices
|
||||||
|
- default valuation commodity (or COMM) using market prices at some date
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
|
.SS Valuation type
|
||||||
.PP
|
.PP
|
||||||
The argument is one of the keywords shown, or their first letter, or a
|
TYPE is one of these keywords, or their first letter, or a date (which
|
||||||
custom date.
|
must be 8 digits with \f[C]-\f[R] or \f[C]/\f[R] or \f[C].\f[R]
|
||||||
The precise effect of the keywords is command-specific, but here is
|
separators):
|
||||||
their general meaning:
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]--value=cost\f[R] (or \f[C]c\f[R])
|
.B \f[C]--value=cost\f[R]
|
||||||
Convert amounts to cost, using the prices recorded in transactions.
|
Convert amounts to cost, using the prices recorded in transactions.
|
||||||
\f[C]-B\f[R]/\f[C]--cost\f[R] does this.
|
\f[C]-B\f[R]/\f[C]--cost\f[R] is equivalent to this.
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]--value=end\f[R] (or \f[C]e\f[R])
|
.B \f[C]--value=end\f[R]
|
||||||
Convert amounts to their value in default valuation commodity using
|
Convert amounts to their value in default valuation commodity using
|
||||||
market prices on the last day of the report period (or of each subperiod
|
market prices on the last day of the report period (or of each subperiod
|
||||||
in a multiperiod report).
|
in a multiperiod report).
|
||||||
When no report period is specified, uses the journal\[aq]s last
|
When no report period is specified, uses the journal\[aq]s last
|
||||||
transaction date.
|
transaction date.
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]--value=now\f[R] (or \f[C]n\f[R])
|
.B \f[C]--value=now\f[R]
|
||||||
Convert amounts to their value in default valuation commodity using
|
Convert amounts to their value in default valuation commodity using
|
||||||
current market prices (as of when report is generated).
|
current market prices (as of when report is generated).
|
||||||
\f[C]-V\f[R]/\f[C]--market\f[R] does this.
|
\f[C]-V\f[R]/\f[C]--market\f[R] is equivalent to this.
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]--value=YYYY-MM-DD\f[R]
|
.B \f[C]--value=YYYY-MM-DD\f[R]
|
||||||
Convert amounts to their value in default valuation commodity using
|
Convert amounts to their value in default valuation commodity using
|
||||||
market prices on the given date (which must be 8 digits with \f[C]-\f[R]
|
market prices on this date.
|
||||||
or \f[C]/\f[R] or \f[C].\f[R] separators).
|
|
||||||
Eg \f[C]--value=2019-04-25\f[R].
|
Eg \f[C]--value=2019-04-25\f[R].
|
||||||
|
.SS Valuation commodity
|
||||||
|
.PP
|
||||||
|
The default valuation commodity is the commodity mentioned in the most
|
||||||
|
recent applicable market price declaration.
|
||||||
|
When all your price declarations lead to a single home currency, this
|
||||||
|
will usually do what you want.
|
||||||
|
.PP
|
||||||
|
To select a different valuation commodity: write the commodity symbol
|
||||||
|
after the valuation type, separated by a comma (eg:
|
||||||
|
\f[B]\f[CB]--value=now,EUR\f[B]\f[R]).
|
||||||
|
This will use, in this preferred order:
|
||||||
|
.IP \[bu] 2
|
||||||
|
declared prices (from source commodity to valuation commodity)
|
||||||
|
.IP \[bu] 2
|
||||||
|
reverse prices (declared prices from valuation to source commodity,
|
||||||
|
inverted)
|
||||||
|
.IP \[bu] 2
|
||||||
|
indirect prices (prices calculated from the shortest chain of declared
|
||||||
|
or reverse prices from source to valuation commodity).
|
||||||
|
.SS --value examples
|
||||||
.PP
|
.PP
|
||||||
Here are the effects of \f[C]--value\f[R] as seen with \f[C]print\f[R]:
|
Here are the effects of \f[C]--value\f[R] as seen with \f[C]print\f[R]:
|
||||||
.IP
|
.IP
|
||||||
@ -1192,6 +1245,56 @@ $ hledger -f- print --value=2000-01-15
|
|||||||
(a) 1 B
|
(a) 1 B
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
|
.PP
|
||||||
|
You may need to explicitly set a commodity\[aq]s display style, when
|
||||||
|
reverse prices are used.
|
||||||
|
Eg this output might be surprising:
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
P 2000-01-01 A 2B
|
||||||
|
|
||||||
|
2000-01-01
|
||||||
|
a 1B
|
||||||
|
b
|
||||||
|
\f[R]
|
||||||
|
.fi
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
$ hledger print -x -X A
|
||||||
|
2000/01/01
|
||||||
|
a 0
|
||||||
|
b 0
|
||||||
|
\f[R]
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Explanation: because there\[aq]s no amount or commodity directive
|
||||||
|
specifying a display style for A, 0.5A gets the default style, which
|
||||||
|
shows no decimal digits.
|
||||||
|
Because the displayed amount looks like zero, the commodity symbol and
|
||||||
|
minus sign are not displayed either.
|
||||||
|
Adding a commodity directive sets a more useful display style for A:
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
P 2000-01-01 A 2B
|
||||||
|
commodity 0.00A
|
||||||
|
|
||||||
|
2000-01-01
|
||||||
|
a 1B
|
||||||
|
b
|
||||||
|
\f[R]
|
||||||
|
.fi
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
$ hledger print -X A
|
||||||
|
2000/01/01
|
||||||
|
a 0.50A
|
||||||
|
b -0.50A
|
||||||
|
\f[R]
|
||||||
|
.fi
|
||||||
.SS Effect of --value on reports
|
.SS Effect of --value on reports
|
||||||
.PP
|
.PP
|
||||||
Below is how \f[C]--value\f[R] affects each of hledger\[aq]s reports,
|
Below is how \f[C]--value\f[R] affects each of hledger\[aq]s reports,
|
||||||
@ -1333,38 +1436,7 @@ T}@T{
|
|||||||
market value at DATE of sum/average of postings
|
market value at DATE of sum/average of postings
|
||||||
T}
|
T}
|
||||||
.TE
|
.TE
|
||||||
.SS Some useful value reports
|
.SS Combining -B, -V, -X, --value
|
||||||
.PP
|
|
||||||
Here are some probably useful reports - please send suggestions if you
|
|
||||||
find out more:
|
|
||||||
.PP
|
|
||||||
.TS
|
|
||||||
tab(@);
|
|
||||||
lw(15.9n) lw(27.6n) lw(26.5n).
|
|
||||||
T{
|
|
||||||
Command:
|
|
||||||
T}@T{
|
|
||||||
Description of report:
|
|
||||||
T}@T{
|
|
||||||
Could answer:
|
|
||||||
T}
|
|
||||||
_
|
|
||||||
T{
|
|
||||||
\f[C]hledger bs -M --value=p\f[R]
|
|
||||||
T}@T{
|
|
||||||
Monthly historical value of assets/liabilities
|
|
||||||
T}@T{
|
|
||||||
How are my investments performing ?
|
|
||||||
T}
|
|
||||||
T{
|
|
||||||
\f[C]hledger is -M --value=t\f[R]
|
|
||||||
T}@T{
|
|
||||||
Monthly contemporaneous value of revenues/expenses
|
|
||||||
T}@T{
|
|
||||||
How much foreign currency have I been spending ?
|
|
||||||
T}
|
|
||||||
.TE
|
|
||||||
.SS Combining -B, -V, --value
|
|
||||||
.PP
|
.PP
|
||||||
The rightmost of these flags wins.
|
The rightmost of these flags wins.
|
||||||
.SS Output destination
|
.SS Output destination
|
||||||
@ -1708,6 +1780,10 @@ Starting the next transaction (. or ctrl-D/ctrl-C to quit)
|
|||||||
Date [2015/05/22]: <CTRL-D> $
|
Date [2015/05/22]: <CTRL-D> $
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
|
.PP
|
||||||
|
On Microsoft Windows, the add command makes sure that no part of the
|
||||||
|
file path ends with a period, as it can cause data loss on that platform
|
||||||
|
(cf #1056).
|
||||||
.SS balance
|
.SS balance
|
||||||
.PP
|
.PP
|
||||||
balance, bal, b
|
balance, bal, b
|
||||||
@ -2497,6 +2573,10 @@ assertions will depend on these flags.
|
|||||||
Likewise, if you run this command with --auto, the balance assertions
|
Likewise, if you run this command with --auto, the balance assertions
|
||||||
will probably always require --auto.
|
will probably always require --auto.
|
||||||
.PP
|
.PP
|
||||||
|
When account balances have cost information (transaction prices), the
|
||||||
|
closing/opening transactions will preserve it, so that eg balance -B
|
||||||
|
reports will not be affected.
|
||||||
|
.PP
|
||||||
Examples:
|
Examples:
|
||||||
.PP
|
.PP
|
||||||
Carrying asset/liability balances into a new file for 2019, all from
|
Carrying asset/liability balances into a new file for 2019, all from
|
||||||
@ -3256,6 +3336,7 @@ Transactions last 7 days : 0 (0.0 per day)
|
|||||||
Payees/descriptions : 5
|
Payees/descriptions : 5
|
||||||
Accounts : 8 (depth 3)
|
Accounts : 8 (depth 3)
|
||||||
Commodities : 1 ($)
|
Commodities : 1 ($)
|
||||||
|
Market prices : 12 ($)
|
||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
@ -3272,6 +3353,7 @@ With a TAGREGEX argument, only tag names matching the regular expression
|
|||||||
(case insensitive) are shown.
|
(case insensitive) are shown.
|
||||||
With QUERY arguments, only transactions matching the query are
|
With QUERY arguments, only transactions matching the query are
|
||||||
considered.
|
considered.
|
||||||
|
With --values flag, the tags\[aq] unique values are listed instead.
|
||||||
.SS test
|
.SS test
|
||||||
.PP
|
.PP
|
||||||
test
|
test
|
||||||
|
|||||||
@ -3,8 +3,8 @@ This is hledger.info, produced by makeinfo version 6.5 from stdin.
|
|||||||
|
|
||||||
File: hledger.info, Node: Top, Next: EXAMPLES, Up: (dir)
|
File: hledger.info, Node: Top, Next: EXAMPLES, Up: (dir)
|
||||||
|
|
||||||
hledger(1) hledger 1.14.99
|
hledger(1) hledger 1.15
|
||||||
**************************
|
***********************
|
||||||
|
|
||||||
This is hledger's command-line interface (there are also curses and web
|
This is hledger's command-line interface (there are also curses and web
|
||||||
interfaces). Its basic function is to read a plain text file describing
|
interfaces). Its basic function is to read a plain text file describing
|
||||||
@ -130,9 +130,7 @@ File: hledger.info, Node: OPTIONS, Next: QUERIES, Prev: EXAMPLES, Up: Top
|
|||||||
* Period expressions::
|
* Period expressions::
|
||||||
* Depth limiting::
|
* Depth limiting::
|
||||||
* Pivoting::
|
* Pivoting::
|
||||||
* Cost::
|
* Valuation::
|
||||||
* Market value::
|
|
||||||
* Combining -B -V --value::
|
|
||||||
* Output destination::
|
* Output destination::
|
||||||
* Output format::
|
* Output format::
|
||||||
* Regular expressions::
|
* Regular expressions::
|
||||||
@ -209,7 +207,7 @@ by most hledger commands, run 'hledger -h'.
|
|||||||
'-p --period=PERIODEXP'
|
'-p --period=PERIODEXP'
|
||||||
|
|
||||||
set start date, end date, and/or reporting interval all at once
|
set start date, end date, and/or reporting interval all at once
|
||||||
using period expressions syntax (overrides the flags above)
|
using period expressions syntax
|
||||||
'--date2'
|
'--date2'
|
||||||
|
|
||||||
match the secondary date instead (see command help for other
|
match the secondary date instead (see command help for other
|
||||||
@ -455,16 +453,16 @@ be one of several other formats, listed below. hledger detects the
|
|||||||
format automatically based on the file extension, or if that is not
|
format automatically based on the file extension, or if that is not
|
||||||
recognised, by trying each built-in "reader" in turn:
|
recognised, by trying each built-in "reader" in turn:
|
||||||
|
|
||||||
Reader: Reads: Used for file extensions:
|
Reader: Reads: Used for file extensions:
|
||||||
----------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
'journal' hledger's journal format, also '.journal' '.j'
|
'journal'hledger's journal format, also '.journal' '.j' '.hledger'
|
||||||
some Ledger journals '.hledger' '.ledger'
|
some Ledger journals '.ledger'
|
||||||
'timeclock' timeclock files (precise time '.timeclock'
|
'timeclock'timeclock files (precise time '.timeclock'
|
||||||
logging)
|
logging)
|
||||||
'timedot' timedot files (approximate time '.timedot'
|
'timedot'timedot files (approximate '.timedot'
|
||||||
logging)
|
time logging)
|
||||||
'csv' comma-separated values (data '.csv'
|
'csv' comma-separated values (data '.csv'
|
||||||
interchange)
|
interchange)
|
||||||
|
|
||||||
If needed (eg to ensure correct error messages when a file has the
|
If needed (eg to ensure correct error messages when a file has the
|
||||||
"wrong" extension), you can force a specific reader/format by prepending
|
"wrong" extension), you can force a specific reader/format by prepending
|
||||||
@ -530,9 +528,18 @@ the journal.
|
|||||||
Often you will want to see a shorter time span, such as the current
|
Often you will want to see a shorter time span, such as the current
|
||||||
month. You can specify a start and/or end date using '-b/--begin',
|
month. You can specify a start and/or end date using '-b/--begin',
|
||||||
'-e/--end', '-p/--period' or a 'date:' query (described below). All of
|
'-e/--end', '-p/--period' or a 'date:' query (described below). All of
|
||||||
these accept the smart date syntax. One important thing to be aware of
|
these accept the smart date syntax.
|
||||||
when specifying end dates: as in Ledger, end dates are exclusive, so you
|
|
||||||
need to write the date _after_ the last day you want to include.
|
Some notes:
|
||||||
|
|
||||||
|
* As in Ledger, end dates are exclusive, so you need to write the
|
||||||
|
date _after_ the last day you want to include.
|
||||||
|
* As noted in reporting options: among start/end dates specified with
|
||||||
|
_options_, the last (i.e. right-most) option takes precedence.
|
||||||
|
* The effective report start and end dates are the intersection of
|
||||||
|
the start/end dates from options and that from 'date:' queries.
|
||||||
|
That is, 'date:2019-01 date:2019 -p'2000 to 2030'' yields January
|
||||||
|
2019, the smallest common time span.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
@ -556,7 +563,7 @@ balance and activity will divide their reports into multiple subperiods.
|
|||||||
The basic intervals can be selected with one of '-D/--daily',
|
The basic intervals can be selected with one of '-D/--daily',
|
||||||
'-W/--weekly', '-M/--monthly', '-Q/--quarterly', or '-Y/--yearly'. More
|
'-W/--weekly', '-M/--monthly', '-Q/--quarterly', or '-Y/--yearly'. More
|
||||||
complex intervals may be specified with a period expression. Report
|
complex intervals may be specified with a period expression. Report
|
||||||
intervals can not be specified with a query, currently.
|
intervals can not be specified with a query.
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: Period expressions, Next: Depth limiting, Prev: Report intervals, Up: OPTIONS
|
File: hledger.info, Node: Period expressions, Next: Depth limiting, Prev: Report intervals, Up: OPTIONS
|
||||||
@ -679,7 +686,7 @@ less detail. This flag has the same effect as a 'depth:' query argument
|
|||||||
(so '-2', '--depth=2' or 'depth:2' are basically equivalent).
|
(so '-2', '--depth=2' or 'depth:2' are basically equivalent).
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: Pivoting, Next: Cost, Prev: Depth limiting, Up: OPTIONS
|
File: hledger.info, Node: Pivoting, Next: Valuation, Prev: Depth limiting, Up: OPTIONS
|
||||||
|
|
||||||
2.14 Pivoting
|
2.14 Pivoting
|
||||||
=============
|
=============
|
||||||
@ -736,24 +743,54 @@ $ hledger balance --pivot member acct:.
|
|||||||
-2 EUR
|
-2 EUR
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: Cost, Next: Market value, Prev: Pivoting, Up: OPTIONS
|
File: hledger.info, Node: Valuation, Next: Output destination, Prev: Pivoting, Up: OPTIONS
|
||||||
|
|
||||||
2.15 Cost
|
2.15 Valuation
|
||||||
=========
|
==============
|
||||||
|
|
||||||
The '-B/--cost' flag converts amounts to their cost at transaction time,
|
* Menu:
|
||||||
if they have a transaction price specified.
|
|
||||||
|
* -B Cost::
|
||||||
|
* -V Market value::
|
||||||
|
* -X Market value in specified commodity::
|
||||||
|
* --value::
|
||||||
|
* Combining -B -V -X --value::
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: Market value, Next: Combining -B -V --value, Prev: Cost, Up: OPTIONS
|
File: hledger.info, Node: -B Cost, Next: -V Market value, Up: Valuation
|
||||||
|
|
||||||
2.16 Market value
|
2.15.1 -B: Cost
|
||||||
=================
|
---------------
|
||||||
|
|
||||||
|
The '-B/--cost' flag converts amounts to their cost (or selling price)
|
||||||
|
at transaction time, if they have a transaction price specified. This
|
||||||
|
flag is equivalent to '--value=cost', described below.
|
||||||
|
|
||||||
|
|
||||||
|
File: hledger.info, Node: -V Market value, Next: -X Market value in specified commodity, Prev: -B Cost, Up: Valuation
|
||||||
|
|
||||||
|
2.15.2 -V: Market value
|
||||||
|
-----------------------
|
||||||
|
|
||||||
The '-V/--market' flag converts reported amounts to their market value
|
The '-V/--market' flag converts reported amounts to their market value
|
||||||
in another commodity. It uses the commodity referenced in the latest
|
in a default valuation commodity, using the historical market prices in
|
||||||
market price (P directive) dated on or before the valuation date. The
|
effect on a default valuation date.
|
||||||
default valuation date is today. For example:
|
|
||||||
|
For single period reports, the valuation date is today. For
|
||||||
|
multiperiod reports, it is the last day of each subperiod.
|
||||||
|
|
||||||
|
The valuation commodity will be the one referenced in the latest
|
||||||
|
applicable market price dated on or before the valuation date. If most
|
||||||
|
of your P declarations lead to a single home currency, this will usually
|
||||||
|
be what you want.
|
||||||
|
|
||||||
|
Unlike the similar flag in Ledger, it does not infer market prices
|
||||||
|
from transaction prices. In hledger, -B uses transaction prices, -V and
|
||||||
|
-X use market prices.
|
||||||
|
|
||||||
|
It is equivalent to '--value=now' or '--value=end'.
|
||||||
|
|
||||||
|
Here's a quick example:
|
||||||
|
|
||||||
# one euro is worth this many dollars from nov 1
|
# one euro is worth this many dollars from nov 1
|
||||||
P 2016/11/01 € $1.10
|
P 2016/11/01 € $1.10
|
||||||
@ -782,55 +819,101 @@ specified, defaults to today)
|
|||||||
$ hledger -f t.j bal -N euros -V
|
$ hledger -f t.j bal -N euros -V
|
||||||
$103.00 assets:euros
|
$103.00 assets:euros
|
||||||
|
|
||||||
Ledger users: Ledger's -V also infers market prices from journal
|
|
||||||
entries, but we don't do that. hledger's -V uses only market prices
|
File: hledger.info, Node: -X Market value in specified commodity, Next: --value, Prev: -V Market value, Up: Valuation
|
||||||
declared explicitly, with P directives. (Mnemonic: -B/-cost uses
|
|
||||||
transaction prices, -V/-market uses market prices.)
|
|
||||||
|
|
||||||
* Menu:
|
2.15.3 -X: Market value in specified commodity
|
||||||
|
----------------------------------------------
|
||||||
|
|
||||||
* More control over valuation::
|
The '-X/--exchange' option is like '-V/--market' except it takes a
|
||||||
* Effect of --value on reports::
|
commodity symbol argument, so that you can select a different target
|
||||||
* Some useful value reports::
|
commodity. It is similar to the same option in Ledger, with the same
|
||||||
|
caveat mentioned for '-V'/'--value' above. It is equivalent to
|
||||||
|
'--value=now,COMM' or '--value=end,COMM'; for more details, read on.
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: More control over valuation, Next: Effect of --value on reports, Up: Market value
|
File: hledger.info, Node: --value, Next: Combining -B -V -X --value, Prev: -X Market value in specified commodity, Up: Valuation
|
||||||
|
|
||||||
2.16.1 More control over valuation
|
2.15.4 -value
|
||||||
----------------------------------
|
-------------
|
||||||
|
|
||||||
_(experimental, added 201905)_
|
_(experimental, added 201905)_
|
||||||
|
|
||||||
You can control valuation more precisely with the '--value' option.
|
'-B', '-V' and '-X' are special cases of the more general '--value'
|
||||||
|
option:
|
||||||
|
|
||||||
--value=TYPE which type of valuation should be done ? cost|end|now|YYYY-MM-DD
|
--value=TYPE[,COMM] TYPE is cost, end, now or YYYY-MM-DD.
|
||||||
|
COMM is an optional commodity symbol.
|
||||||
|
Shows amounts converted to:
|
||||||
|
- cost commodity using transaction prices (then optionally to COMM using market prices at period end(s))
|
||||||
|
- default valuation commodity (or COMM) using market prices at period end(s)
|
||||||
|
- default valuation commodity (or COMM) using current market prices
|
||||||
|
- default valuation commodity (or COMM) using market prices at some date
|
||||||
|
|
||||||
The argument is one of the keywords shown, or their first letter, or
|
* Menu:
|
||||||
a custom date. The precise effect of the keywords is command-specific,
|
|
||||||
but here is their general meaning:
|
|
||||||
|
|
||||||
'--value=cost' (or 'c')
|
* Valuation type::
|
||||||
|
* Valuation commodity::
|
||||||
|
* --value examples::
|
||||||
|
* Effect of --value on reports::
|
||||||
|
|
||||||
|
|
||||||
|
File: hledger.info, Node: Valuation type, Next: Valuation commodity, Up: --value
|
||||||
|
|
||||||
|
2.15.4.1 Valuation type
|
||||||
|
.......................
|
||||||
|
|
||||||
|
TYPE is one of these keywords, or their first letter, or a date (which
|
||||||
|
must be 8 digits with '-' or '/' or '.' separators):
|
||||||
|
|
||||||
|
'--value=cost'
|
||||||
|
|
||||||
Convert amounts to cost, using the prices recorded in transactions.
|
Convert amounts to cost, using the prices recorded in transactions.
|
||||||
'-B'/'--cost' does this.
|
'-B'/'--cost' is equivalent to this.
|
||||||
'--value=end' (or 'e')
|
'--value=end'
|
||||||
|
|
||||||
Convert amounts to their value in default valuation commodity using
|
Convert amounts to their value in default valuation commodity using
|
||||||
market prices on the last day of the report period (or of each
|
market prices on the last day of the report period (or of each
|
||||||
subperiod in a multiperiod report). When no report period is
|
subperiod in a multiperiod report). When no report period is
|
||||||
specified, uses the journal's last transaction date.
|
specified, uses the journal's last transaction date.
|
||||||
'--value=now' (or 'n')
|
'--value=now'
|
||||||
|
|
||||||
Convert amounts to their value in default valuation commodity using
|
Convert amounts to their value in default valuation commodity using
|
||||||
current market prices (as of when report is generated).
|
current market prices (as of when report is generated).
|
||||||
'-V'/'--market' does this.
|
'-V'/'--market' is equivalent to this.
|
||||||
'--value=YYYY-MM-DD'
|
'--value=YYYY-MM-DD'
|
||||||
|
|
||||||
Convert amounts to their value in default valuation commodity using
|
Convert amounts to their value in default valuation commodity using
|
||||||
market prices on the given date (which must be 8 digits with '-' or
|
market prices on this date. Eg '--value=2019-04-25'.
|
||||||
'/' or '.' separators). Eg '--value=2019-04-25'.
|
|
||||||
|
|
||||||
Here are the effects of '--value' as seen with 'print':
|
|
||||||
|
File: hledger.info, Node: Valuation commodity, Next: --value examples, Prev: Valuation type, Up: --value
|
||||||
|
|
||||||
|
2.15.4.2 Valuation commodity
|
||||||
|
............................
|
||||||
|
|
||||||
|
The default valuation commodity is the commodity mentioned in the most
|
||||||
|
recent applicable market price declaration. When all your price
|
||||||
|
declarations lead to a single home currency, this will usually do what
|
||||||
|
you want.
|
||||||
|
|
||||||
|
To select a different valuation commodity: write the commodity symbol
|
||||||
|
after the valuation type, separated by a comma (eg:
|
||||||
|
*'--value=now,EUR'*). This will use, in this preferred order:
|
||||||
|
|
||||||
|
* declared prices (from source commodity to valuation commodity)
|
||||||
|
* reverse prices (declared prices from valuation to source commodity,
|
||||||
|
inverted)
|
||||||
|
* indirect prices (prices calculated from the shortest chain of
|
||||||
|
declared or reverse prices from source to valuation commodity).
|
||||||
|
|
||||||
|
|
||||||
|
File: hledger.info, Node: --value examples, Next: Effect of --value on reports, Prev: Valuation commodity, Up: --value
|
||||||
|
|
||||||
|
2.15.4.3 -value examples
|
||||||
|
........................
|
||||||
|
|
||||||
|
Here are the effects of '--value' as seen with 'print':
|
||||||
|
|
||||||
P 2000-01-01 A 1 B
|
P 2000-01-01 A 1 B
|
||||||
P 2000-02-01 A 2 B
|
P 2000-02-01 A 2 B
|
||||||
@ -905,11 +988,43 @@ $ hledger -f- print --value=2000-01-15
|
|||||||
2000/03/01
|
2000/03/01
|
||||||
(a) 1 B
|
(a) 1 B
|
||||||
|
|
||||||
|
You may need to explicitly set a commodity's display style, when
|
||||||
File: hledger.info, Node: Effect of --value on reports, Next: Some useful value reports, Prev: More control over valuation, Up: Market value
|
reverse prices are used. Eg this output might be surprising:
|
||||||
|
|
||||||
2.16.2 Effect of -value on reports
|
P 2000-01-01 A 2B
|
||||||
----------------------------------
|
|
||||||
|
2000-01-01
|
||||||
|
a 1B
|
||||||
|
b
|
||||||
|
|
||||||
|
$ hledger print -x -X A
|
||||||
|
2000/01/01
|
||||||
|
a 0
|
||||||
|
b 0
|
||||||
|
|
||||||
|
Explanation: because there's no amount or commodity directive
|
||||||
|
specifying a display style for A, 0.5A gets the default style, which
|
||||||
|
shows no decimal digits. Because the displayed amount looks like zero,
|
||||||
|
the commodity symbol and minus sign are not displayed either. Adding a
|
||||||
|
commodity directive sets a more useful display style for A:
|
||||||
|
|
||||||
|
P 2000-01-01 A 2B
|
||||||
|
commodity 0.00A
|
||||||
|
|
||||||
|
2000-01-01
|
||||||
|
a 1B
|
||||||
|
b
|
||||||
|
|
||||||
|
$ hledger print -X A
|
||||||
|
2000/01/01
|
||||||
|
a 0.50A
|
||||||
|
b -0.50A
|
||||||
|
|
||||||
|
|
||||||
|
File: hledger.info, Node: Effect of --value on reports, Prev: --value examples, Up: --value
|
||||||
|
|
||||||
|
2.15.4.4 Effect of -value on reports
|
||||||
|
....................................
|
||||||
|
|
||||||
Below is how '--value' affects each of hledger's reports, currently.
|
Below is how '--value' affects each of hledger's reports, currently.
|
||||||
You're not expected to remember all this, but when troubleshooting a
|
You're not expected to remember all this, but when troubleshooting a
|
||||||
@ -962,33 +1077,17 @@ totals/averagesof the end of sum/average of DATE of
|
|||||||
values postings
|
values postings
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: Some useful value reports, Prev: Effect of --value on reports, Up: Market value
|
File: hledger.info, Node: Combining -B -V -X --value, Prev: --value, Up: Valuation
|
||||||
|
|
||||||
2.16.3 Some useful value reports
|
2.15.5 Combining -B, -V, -X, -value
|
||||||
--------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
Here are some probably useful reports - please send suggestions if you
|
|
||||||
find out more:
|
|
||||||
|
|
||||||
Command: Description of report: Could answer:
|
|
||||||
---------------------------------------------------------------------------
|
|
||||||
'hledger bs -M Monthly historical value How are my investments
|
|
||||||
--value=p' of assets/liabilities performing ?
|
|
||||||
'hledger is -M Monthly contemporaneous How much foreign currency
|
|
||||||
--value=t' value of revenues/expenses have I been spending ?
|
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: Combining -B -V --value, Next: Output destination, Prev: Market value, Up: OPTIONS
|
|
||||||
|
|
||||||
2.17 Combining -B, -V, -value
|
|
||||||
=============================
|
|
||||||
|
|
||||||
The rightmost of these flags wins.
|
The rightmost of these flags wins.
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: Output destination, Next: Output format, Prev: Combining -B -V --value, Up: OPTIONS
|
File: hledger.info, Node: Output destination, Next: Output format, Prev: Valuation, Up: OPTIONS
|
||||||
|
|
||||||
2.18 Output destination
|
2.16 Output destination
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
Some commands (print, register, stats, the balance commands) can write
|
Some commands (print, register, stats, the balance commands) can write
|
||||||
@ -1001,7 +1100,7 @@ $ hledger balance -o FILE # write to FILE
|
|||||||
|
|
||||||
File: hledger.info, Node: Output format, Next: Regular expressions, Prev: Output destination, Up: OPTIONS
|
File: hledger.info, Node: Output format, Next: Regular expressions, Prev: Output destination, Up: OPTIONS
|
||||||
|
|
||||||
2.19 Output format
|
2.17 Output format
|
||||||
==================
|
==================
|
||||||
|
|
||||||
Some commands can write their output in other formats. Eg print and
|
Some commands can write their output in other formats. Eg print and
|
||||||
@ -1015,7 +1114,7 @@ $ hledger balance -o FILE.csv # write CSV to FILE.csv
|
|||||||
|
|
||||||
File: hledger.info, Node: Regular expressions, Prev: Output format, Up: OPTIONS
|
File: hledger.info, Node: Regular expressions, Prev: Output format, Up: OPTIONS
|
||||||
|
|
||||||
2.20 Regular expressions
|
2.18 Regular expressions
|
||||||
========================
|
========================
|
||||||
|
|
||||||
hledger uses regular expressions in a number of places:
|
hledger uses regular expressions in a number of places:
|
||||||
@ -1328,6 +1427,10 @@ Saved.
|
|||||||
Starting the next transaction (. or ctrl-D/ctrl-C to quit)
|
Starting the next transaction (. or ctrl-D/ctrl-C to quit)
|
||||||
Date [2015/05/22]: <CTRL-D> $
|
Date [2015/05/22]: <CTRL-D> $
|
||||||
|
|
||||||
|
On Microsoft Windows, the add command makes sure that no part of the
|
||||||
|
file path ends with a period, as it can cause data loss on that platform
|
||||||
|
(cf #1056).
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: balance, Next: balancesheet, Prev: add, Up: COMMANDS
|
File: hledger.info, Node: balance, Next: balancesheet, Prev: add, Up: COMMANDS
|
||||||
|
|
||||||
@ -2055,6 +2158,10 @@ balance assertions will depend on these flags. Likewise, if you run
|
|||||||
this command with -auto, the balance assertions will probably always
|
this command with -auto, the balance assertions will probably always
|
||||||
require -auto.
|
require -auto.
|
||||||
|
|
||||||
|
When account balances have cost information (transaction prices), the
|
||||||
|
closing/opening transactions will preserve it, so that eg balance -B
|
||||||
|
reports will not be affected.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
Carrying asset/liability balances into a new file for 2019, all from
|
Carrying asset/liability balances into a new file for 2019, all from
|
||||||
@ -2713,6 +2820,7 @@ Transactions last 7 days : 0 (0.0 per day)
|
|||||||
Payees/descriptions : 5
|
Payees/descriptions : 5
|
||||||
Accounts : 8 (depth 3)
|
Accounts : 8 (depth 3)
|
||||||
Commodities : 1 ($)
|
Commodities : 1 ($)
|
||||||
|
Market prices : 12 ($)
|
||||||
|
|
||||||
This command also supports output destination and output format
|
This command also supports output destination and output format
|
||||||
selection.
|
selection.
|
||||||
@ -2727,7 +2835,8 @@ tags
|
|||||||
List all the tag names used in the journal. With a TAGREGEX argument,
|
List all the tag names used in the journal. With a TAGREGEX argument,
|
||||||
only tag names matching the regular expression (case insensitive) are
|
only tag names matching the regular expression (case insensitive) are
|
||||||
shown. With QUERY arguments, only transactions matching the query are
|
shown. With QUERY arguments, only transactions matching the query are
|
||||||
considered.
|
considered. With -values flag, the tags' unique values are listed
|
||||||
|
instead.
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: test, Prev: tags, Up: COMMANDS
|
File: hledger.info, Node: test, Prev: tags, Up: COMMANDS
|
||||||
@ -2931,168 +3040,176 @@ hledger-check.hs checks more powerful account balance assertions.
|
|||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top68
|
Node: Top68
|
||||||
Node: EXAMPLES1891
|
Node: EXAMPLES1885
|
||||||
Ref: #examples1991
|
Ref: #examples1985
|
||||||
Node: OPTIONS3637
|
Node: OPTIONS3631
|
||||||
Ref: #options3739
|
Ref: #options3733
|
||||||
Node: General options4178
|
Node: General options4132
|
||||||
Ref: #general-options4303
|
Ref: #general-options4257
|
||||||
Node: Command options6985
|
Node: Command options6911
|
||||||
Ref: #command-options7136
|
Ref: #command-options7062
|
||||||
Node: Command arguments7534
|
Node: Command arguments7460
|
||||||
Ref: #command-arguments7688
|
Ref: #command-arguments7614
|
||||||
Node: Argument files7809
|
Node: Argument files7735
|
||||||
Ref: #argument-files7985
|
Ref: #argument-files7911
|
||||||
Node: Special characters in arguments and queries8251
|
Node: Special characters in arguments and queries8177
|
||||||
Ref: #special-characters-in-arguments-and-queries8485
|
Ref: #special-characters-in-arguments-and-queries8411
|
||||||
Node: More escaping8936
|
Node: More escaping8862
|
||||||
Ref: #more-escaping9098
|
Ref: #more-escaping9024
|
||||||
Node: Even more escaping9394
|
Node: Even more escaping9320
|
||||||
Ref: #even-more-escaping9588
|
Ref: #even-more-escaping9514
|
||||||
Node: Less escaping10259
|
Node: Less escaping10185
|
||||||
Ref: #less-escaping10421
|
Ref: #less-escaping10347
|
||||||
Node: Command line tips10666
|
Node: Command line tips10592
|
||||||
Ref: #command-line-tips10852
|
Ref: #command-line-tips10778
|
||||||
Node: Unicode characters11229
|
Node: Unicode characters11155
|
||||||
Ref: #unicode-characters11385
|
Ref: #unicode-characters11311
|
||||||
Node: Input files12797
|
Node: Input files12723
|
||||||
Ref: #input-files12933
|
Ref: #input-files12859
|
||||||
Node: Smart dates14903
|
Node: Smart dates14788
|
||||||
Ref: #smart-dates15044
|
Ref: #smart-dates14929
|
||||||
Node: Report start & end date16450
|
Node: Report start & end date16335
|
||||||
Ref: #report-start-end-date16622
|
Ref: #report-start-end-date16507
|
||||||
Node: Report intervals17688
|
Node: Report intervals17931
|
||||||
Ref: #report-intervals17853
|
Ref: #report-intervals18096
|
||||||
Node: Period expressions18254
|
Node: Period expressions18486
|
||||||
Ref: #period-expressions18414
|
Ref: #period-expressions18646
|
||||||
Node: Depth limiting22371
|
Node: Depth limiting22603
|
||||||
Ref: #depth-limiting22515
|
Ref: #depth-limiting22747
|
||||||
Node: Pivoting22857
|
Node: Pivoting23089
|
||||||
Ref: #pivoting22975
|
Ref: #pivoting23212
|
||||||
Node: Cost24651
|
Node: Valuation24888
|
||||||
Ref: #cost24759
|
Ref: #valuation25017
|
||||||
Node: Market value24877
|
Node: -B Cost25145
|
||||||
Ref: #market-value25016
|
Ref: #b-cost25256
|
||||||
Node: More control over valuation26257
|
Node: -V Market value25454
|
||||||
Ref: #more-control-over-valuation26442
|
Ref: #v-market-value25628
|
||||||
Node: Effect of --value on reports28897
|
Node: -X Market value in specified commodity27034
|
||||||
Ref: #effect-of---value-on-reports29116
|
Ref: #x-market-value-in-specified-commodity27254
|
||||||
Node: Some useful value reports31807
|
Node: --value27594
|
||||||
Ref: #some-useful-value-reports31986
|
Ref: #value27759
|
||||||
Node: Combining -B -V --value32484
|
Node: Valuation type28560
|
||||||
Ref: #combining--b--v---value32661
|
Ref: #valuation-type28696
|
||||||
Node: Output destination32697
|
Node: Valuation commodity29581
|
||||||
Ref: #output-destination32863
|
Ref: #valuation-commodity29752
|
||||||
Node: Output format33146
|
Node: --value examples30452
|
||||||
Ref: #output-format33298
|
Ref: #value-examples30629
|
||||||
Node: Regular expressions33683
|
Node: Effect of --value on reports32612
|
||||||
Ref: #regular-expressions33820
|
Ref: #effect-of---value-on-reports32785
|
||||||
Node: QUERIES35181
|
Node: Combining -B -V -X --value35476
|
||||||
Ref: #queries35283
|
Ref: #combining--b--v--x---value35638
|
||||||
Node: COMMANDS39245
|
Node: Output destination35674
|
||||||
Ref: #commands39357
|
Ref: #output-destination35826
|
||||||
Node: accounts40358
|
Node: Output format36109
|
||||||
Ref: #accounts40456
|
Ref: #output-format36261
|
||||||
Node: activity41155
|
Node: Regular expressions36646
|
||||||
Ref: #activity41265
|
Ref: #regular-expressions36783
|
||||||
Node: add41648
|
Node: QUERIES38144
|
||||||
Ref: #add41747
|
Ref: #queries38246
|
||||||
Node: balance44334
|
Node: COMMANDS42208
|
||||||
Ref: #balance44445
|
Ref: #commands42320
|
||||||
Node: Classic balance report45887
|
Node: accounts43321
|
||||||
Ref: #classic-balance-report46060
|
Ref: #accounts43419
|
||||||
Node: Customising the classic balance report47429
|
Node: activity44118
|
||||||
Ref: #customising-the-classic-balance-report47657
|
Ref: #activity44228
|
||||||
Node: Colour support49733
|
Node: add44611
|
||||||
Ref: #colour-support49900
|
Ref: #add44710
|
||||||
Node: Flat mode50073
|
Node: balance47455
|
||||||
Ref: #flat-mode50221
|
Ref: #balance47566
|
||||||
Node: Depth limited balance reports50634
|
Node: Classic balance report49008
|
||||||
Ref: #depth-limited-balance-reports50834
|
Ref: #classic-balance-report49181
|
||||||
Node: Multicolumn balance report51290
|
Node: Customising the classic balance report50550
|
||||||
Ref: #multicolumn-balance-report51488
|
Ref: #customising-the-classic-balance-report50778
|
||||||
Node: Budget report56802
|
Node: Colour support52854
|
||||||
Ref: #budget-report56945
|
Ref: #colour-support53021
|
||||||
Node: Nested budgets62147
|
Node: Flat mode53194
|
||||||
Ref: #nested-budgets62259
|
Ref: #flat-mode53342
|
||||||
Ref: #output-format-165739
|
Node: Depth limited balance reports53755
|
||||||
Node: balancesheet65817
|
Ref: #depth-limited-balance-reports53955
|
||||||
Ref: #balancesheet65953
|
Node: Multicolumn balance report54411
|
||||||
Node: balancesheetequity67268
|
Ref: #multicolumn-balance-report54609
|
||||||
Ref: #balancesheetequity67417
|
Node: Budget report59923
|
||||||
Node: cashflow67978
|
Ref: #budget-report60066
|
||||||
Ref: #cashflow68106
|
Node: Nested budgets65268
|
||||||
Node: check-dates69134
|
Ref: #nested-budgets65380
|
||||||
Ref: #check-dates69261
|
Ref: #output-format-168860
|
||||||
Node: check-dupes69540
|
Node: balancesheet68938
|
||||||
Ref: #check-dupes69664
|
Ref: #balancesheet69074
|
||||||
Node: close69957
|
Node: balancesheetequity70389
|
||||||
Ref: #close70065
|
Ref: #balancesheetequity70538
|
||||||
Node: files73479
|
Node: cashflow71099
|
||||||
Ref: #files73580
|
Ref: #cashflow71227
|
||||||
Node: help73727
|
Node: check-dates72255
|
||||||
Ref: #help73827
|
Ref: #check-dates72382
|
||||||
Node: import74920
|
Node: check-dupes72661
|
||||||
Ref: #import75034
|
Ref: #check-dupes72785
|
||||||
Node: Importing balance assignments75822
|
Node: close73078
|
||||||
Ref: #importing-balance-assignments75970
|
Ref: #close73186
|
||||||
Node: incomestatement76619
|
Node: files76773
|
||||||
Ref: #incomestatement76753
|
Ref: #files76874
|
||||||
Node: prices78089
|
Node: help77021
|
||||||
Ref: #prices78204
|
Ref: #help77121
|
||||||
Node: print78483
|
Node: import78214
|
||||||
Ref: #print78593
|
Ref: #import78328
|
||||||
Node: print-unique83086
|
Node: Importing balance assignments79116
|
||||||
Ref: #print-unique83212
|
Ref: #importing-balance-assignments79264
|
||||||
Node: register83497
|
Node: incomestatement79913
|
||||||
Ref: #register83624
|
Ref: #incomestatement80047
|
||||||
Node: Custom register output87796
|
Node: prices81383
|
||||||
Ref: #custom-register-output87925
|
Ref: #prices81498
|
||||||
Node: register-match89187
|
Node: print81777
|
||||||
Ref: #register-match89321
|
Ref: #print81887
|
||||||
Node: rewrite89672
|
Node: print-unique86380
|
||||||
Ref: #rewrite89787
|
Ref: #print-unique86506
|
||||||
Node: Re-write rules in a file91642
|
Node: register86791
|
||||||
Ref: #re-write-rules-in-a-file91776
|
Ref: #register86918
|
||||||
Node: Diff output format92986
|
Node: Custom register output91090
|
||||||
Ref: #diff-output-format93155
|
Ref: #custom-register-output91219
|
||||||
Node: rewrite vs print --auto94247
|
Node: register-match92481
|
||||||
Ref: #rewrite-vs.-print---auto94426
|
Ref: #register-match92615
|
||||||
Node: roi94982
|
Node: rewrite92966
|
||||||
Ref: #roi95080
|
Ref: #rewrite93081
|
||||||
Node: stats96092
|
Node: Re-write rules in a file94936
|
||||||
Ref: #stats96191
|
Ref: #re-write-rules-in-a-file95070
|
||||||
Node: tags96945
|
Node: Diff output format96280
|
||||||
Ref: #tags97043
|
Ref: #diff-output-format96449
|
||||||
Node: test97273
|
Node: rewrite vs print --auto97541
|
||||||
Ref: #test97357
|
Ref: #rewrite-vs.-print---auto97720
|
||||||
Node: ADD-ON COMMANDS98118
|
Node: roi98276
|
||||||
Ref: #add-on-commands98228
|
Ref: #roi98374
|
||||||
Node: Official add-ons99516
|
Node: stats99386
|
||||||
Ref: #official-add-ons99656
|
Ref: #stats99485
|
||||||
Node: api99744
|
Node: tags100273
|
||||||
Ref: #api99833
|
Ref: #tags100371
|
||||||
Node: ui99885
|
Node: test100665
|
||||||
Ref: #ui99984
|
Ref: #test100749
|
||||||
Node: web100042
|
Node: ADD-ON COMMANDS101510
|
||||||
Ref: #web100131
|
Ref: #add-on-commands101620
|
||||||
Node: Third party add-ons100177
|
Node: Official add-ons102908
|
||||||
Ref: #third-party-add-ons100352
|
Ref: #official-add-ons103048
|
||||||
Node: diff100488
|
Node: api103136
|
||||||
Ref: #diff100585
|
Ref: #api103225
|
||||||
Node: iadd100684
|
Node: ui103277
|
||||||
Ref: #iadd100798
|
Ref: #ui103376
|
||||||
Node: interest100881
|
Node: web103434
|
||||||
Ref: #interest101002
|
Ref: #web103523
|
||||||
Node: irr101097
|
Node: Third party add-ons103569
|
||||||
Ref: #irr101195
|
Ref: #third-party-add-ons103744
|
||||||
Node: Experimental add-ons101326
|
Node: diff103880
|
||||||
Ref: #experimental-add-ons101478
|
Ref: #diff103977
|
||||||
Node: autosync101759
|
Node: iadd104076
|
||||||
Ref: #autosync101870
|
Ref: #iadd104190
|
||||||
Node: chart102109
|
Node: interest104273
|
||||||
Ref: #chart102228
|
Ref: #interest104394
|
||||||
Node: check102299
|
Node: irr104489
|
||||||
Ref: #check102401
|
Ref: #irr104587
|
||||||
|
Node: Experimental add-ons104718
|
||||||
|
Ref: #experimental-add-ons104870
|
||||||
|
Node: autosync105151
|
||||||
|
Ref: #autosync105262
|
||||||
|
Node: chart105501
|
||||||
|
Ref: #chart105620
|
||||||
|
Node: check105691
|
||||||
|
Ref: #check105793
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user