hledger/hledger-lib/Hledger/Data
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
..
JournalChecks imp!: check ordereddates: drop --date2 support; check primary dates only 2024-04-26 18:59:45 -10:00
Account.hs !dev: lib: Allow Account to store date-indexed balances. 2025-06-04 23:10:00 -10:00
AccountName.hs imp: queries: Allow regular expression depth queries 2024-12-03 08:33:21 -10:00
Amount.hs !dev: lib: Allow Account to store date-indexed balances. 2025-06-04 23:10:00 -10:00
BalanceData.hs !dev: lib: Allow Account to store date-indexed balances. 2025-06-04 23:10:00 -10:00
Balancing.hs Always check added transaction, even if no immediate assertion 2025-05-31 23:19:47 -10:00
Currency.hs lib: add Hledger.Data.Currency, currencySymbolToCode, currencyCodeToSymbol 2024-10-11 14:56:03 -10:00
Dates.hs fix: make a few more error messages consistent, hiding call stack [#2367] 2025-06-03 10:10:04 -10:00
Errors.hs imp: check commodities: also check commodities used in P directives [#2280] 2024-11-02 15:03:57 -10:00
Journal.hs !dev: lib: Allow Account to store date-indexed balances. 2025-06-04 23:10:00 -10:00
JournalChecks.hs imp:print: clean up special tags; show them more often with --verbose-tags 2024-11-16 14:40:03 -10:00
Json.hs !dev: lib: Allow Account to store date-indexed balances. 2025-06-04 23:10:00 -10:00
Ledger.hs !dev: lib: Allow Account to store date-indexed balances. 2025-06-04 23:10:00 -10:00
Period.hs fix: show a week period beginning in the previous year correctly [#2304] 2024-12-20 10:41:47 -10:00
PeriodData.hs !dev: lib: Allow Account to store date-indexed balances. 2025-06-04 23:10:00 -10:00
PeriodicTransaction.hs imp:print: clean up special tags; show them more often with --verbose-tags 2024-11-16 14:40:03 -10:00
Posting.hs ;dev: make doctest happy on ghc-8.10.7 2025-03-31 16:18:09 -10:00
RawOptions.hs lib: add dropRawOpt, cliOptsDropArgs 2025-01-21 22:02:05 -10:00
StringFormat.hs dev: lib, cli, bin: enable/fix name shadowing warnings 2022-08-23 12:16:15 +01:00
Timeclock.hs feat: timeclock: Add support for multiple clocked in sessions (#2141) 2025-04-03 11:19:18 -10:00
Transaction.hs imp:print: --invert now also negates balance assertion/assignment amounts [#2314] 2025-01-29 09:47:29 -10:00
TransactionModifier.hs imp:print: clean up special tags; show them more often with --verbose-tags 2024-11-16 14:40:03 -10:00
Types.hs !dev: lib: Allow Account to store date-indexed balances. 2025-06-04 23:10:00 -10:00
Valuation.hs imp:lib:Hledger.Utils.Debug: simpler, more consistent dbg* names 2025-05-21 22:54:00 -10:00