hledger-lib-1.40: A library providing the core functionality of hledger
Safe HaskellSafe-Inferred
LanguageHaskell2010

Hledger.Data.JournalChecks

Description

Various additional validation checks that can be performed on a Journal. Some are called as part of reading a file in strict mode, others can be called only via the check command.

Synopsis

Documentation

journalStrictChecks :: Journal -> Either String () Source #

Run the extra -s/--strict checks on a journal, in order of priority, returning the first error message if any of them fail.

journalCheckAccounts :: Journal -> Either String () Source #

Check that all the journal's postings are to accounts with account directives, returning an error message otherwise.

journalCheckBalanceAssertions :: Journal -> Either String () Source #

Check all balance assertions in the journal and return an error message if any of them fail. (Technically, this also tries to balance the journal and can return balancing failure errors; ensure the journal is already balanced (with journalBalanceTransactions) to avoid this.)

journalCheckCommodities :: Journal -> Either String () Source #

Check that all the commodities used in this journal's postings have been declared by commodity directives, returning an error message otherwise.

journalCheckPayees :: Journal -> Either String () Source #

Check that all the journal's transactions have payees declared with payee directives, returning an error message otherwise.

journalCheckPairedConversionPostings :: Journal -> Either String () Source #

In each tranaction, check that any conversion postings occur in adjacent pairs.

journalCheckRecentAssertions :: Day -> Journal -> Either String () Source #

Check that accounts with balance assertions have no posting more than maxlag days after their latest balance assertion. Today's date is provided for error messages.

journalCheckTags :: Journal -> Either String () Source #

Check that all the journal's tags (on accounts, transactions, postings..) have been declared with tag directives, returning an error message otherwise.