mirror of
https://github.com/simonmichael/hledger.git
synced 2025-01-07 11:19:32 +03:00
35 lines
973 B
Haskell
35 lines
973 B
Haskell
{-# LANGUAGE RecordWildCards, DeriveDataTypeable, FlexibleInstances #-}
|
|
{-|
|
|
|
|
Account balance history report.
|
|
|
|
-}
|
|
|
|
module Hledger.Reports.BalanceHistoryReport (
|
|
accountBalanceHistory
|
|
|
|
-- -- * Tests
|
|
-- tests_Hledger_Reports_BalanceReport
|
|
)
|
|
where
|
|
|
|
import Data.Time.Calendar
|
|
-- import Test.HUnit
|
|
|
|
import Hledger.Data
|
|
import Hledger.Query
|
|
import Hledger.Reports.ReportOptions
|
|
import Hledger.Reports.TransactionsReports
|
|
|
|
|
|
-- | Get the historical running inclusive balance of a particular account,
|
|
-- from earliest to latest posting date.
|
|
accountBalanceHistory :: ReportOpts -> Journal -> Account -> [(Day, MixedAmount)]
|
|
accountBalanceHistory ropts j a = [(getdate t, bal) | (t,_,_,_,_,bal) <- items]
|
|
where
|
|
(_,items) = journalTransactionsReport ropts j acctquery
|
|
inclusivebal = True
|
|
acctquery = Acct $ (if inclusivebal then accountNameToAccountRegex else accountNameToAccountOnlyRegex) $ aname a
|
|
getdate = if date2_ ropts then transactionDate2 else tdate
|
|
|