hledger/hledger
Stephen Morgan 80cf1d1995 !dev: lib: Allow Account to store date-indexed balances.
This upgrades Account to enable it to store a multiperiod balance, with
a separate balance for each date period. This enables it do the hard
work in MultiBalanceReport.

Some new types are created to enable convenient operation of accounts.
- `BalanceData` is a type which stores an exclusive balance, inclusive
  balance, and number of postings. This was previously directly stored
  in Account, but is now factored into a separate data type.
- `PeriodData` is a container which stores date-indexed data, as well as
  pre-period data. In post cases, this represents the report spans,
  along with the historical data.
- Account becomes polymorphic, allowing customisation of the type of
  data it stores. This will usually be `BalanceData`, but in
  `BudgetReport` it can use `These BalanceData BalanceData` to store
  both actuals and budgets in the same structure. The data structure
  changes to contain a `PeriodData`, allowing multiperiod accounts.

Some minor changes are made to behaviour for consistency:
- --declared treats parent accounts consistently.
- --flat --empty ensures that implied accounts with no postings are not displayed, but
  accounts with zero balance and actual postings are.
2025-06-04 23:10:00 -10:00
..
app dev:cli: merge Hledger.Cli.Main with Hledger.Cli 2023-10-04 10:03:35 +01:00
bench ;dev: fix hledger/bench/bench.hs 2025-02-27 07:32:44 -10:00
embeddedfiles dev: remove the dead link: hledger/embeddedfiles/hledger-journal.md 2024-10-05 15:08:02 -10:00
Hledger imp:cli: simplify flag group titles 2025-06-04 15:25:27 -10:00
shell-completion ;doc:shell completions: mention zsh; cleanups 2025-02-21 17:16:40 -10:00
test !dev: lib: Allow Account to store date-indexed balances. 2025-06-04 23:10:00 -10:00
.date.m4 ;doc: update embedded manuals 2025-06-04 07:31:18 -10:00
.ghci tools: .ghci for each package, sets shorter prompt 2016-04-15 16:06:45 -07:00
.version ;pkg: set version to 1.43.99 2025-06-04 07:31:12 -10:00
.version.m4 ;pkg: set version to 1.43.99 2025-06-04 07:31:12 -10:00
CHANGES.md ;doc:changelogs/relnotes: add some missing issue numbers 2025-06-04 09:24:55 -10:00
dir-entry.texi ;fix: doc: info: avoid directory paths in directory metadata (#1594) 2021-07-14 09:07:56 -10:00
hledger.1 ;doc: update embedded manuals 2025-06-04 16:51:48 -10:00
hledger.cabal ;cabal: update cabal files 2025-06-04 07:31:13 -10:00
hledger.info ;doc: update embedded manuals 2025-06-04 16:51:48 -10:00
hledger.m4.md ;doc: COMMANDS: mention general options 2025-06-04 17:13:42 -10:00
hledger.txt ;doc: update embedded manuals 2025-06-04 16:51:48 -10:00
LICENSE ;pkg: simplify LICENSE (try to fix github license detection) 2025-03-31 19:12:38 -10:00
package.yaml ;pkg: set version to 1.43.99 2025-06-04 07:31:12 -10:00
README.md ;doc: more tweaks to package readmes, hackage descriptions 2020-03-22 10:49:02 -07:00
Setup.hs Revert "remove Setup.hs files again, fixing a yesod devel warning" 2014-05-24 13:39:09 -07:00

hledger

The command-line interface for the hledger accounting system. Its basic function is to read a plain text file describing financial transactions and produce useful reports.

See also: the project README and home page.