mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-08 07:09:28 +03:00
bugfix for #514, is and cf are now period reports, and bs, as a snapshot report, is treated as a special case
This commit is contained in:
parent
3dab20c654
commit
f5a530d620
@ -27,11 +27,13 @@ import Hledger.Cli.CliOptions
|
||||
-- | Describes a view for the balance, which can consist of multiple
|
||||
-- separate named queries that are aggregated and totaled.
|
||||
data BalanceView = BalanceView {
|
||||
bvmode :: String, -- ^ command line mode of the view
|
||||
bvaliases :: [String], -- ^ command line aliases
|
||||
bvhelp :: String, -- ^ command line help message
|
||||
bvtitle :: String, -- ^ title of the view
|
||||
bvqueries :: [(String, Journal -> Query)] -- ^ named queries that make up the view
|
||||
bvmode :: String, -- ^ command line mode of the view
|
||||
bvaliases :: [String], -- ^ command line aliases
|
||||
bvhelp :: String, -- ^ command line help message
|
||||
bvtitle :: String, -- ^ title of the view
|
||||
bvqueries :: [(String, Journal -> Query)], -- ^ named queries that make up the view
|
||||
bvsnapshot :: Bool -- ^ whether or not the view is a snapshot,
|
||||
-- ignoring begin date in reporting period
|
||||
}
|
||||
|
||||
balanceviewmode :: BalanceView -> Mode RawOpts
|
||||
@ -52,14 +54,14 @@ balanceviewmode BalanceView{..} = (defCommandMode $ bvmode : bvaliases) {
|
||||
|
||||
balanceviewQueryReport
|
||||
:: ReportOpts
|
||||
-> Day
|
||||
-> Query
|
||||
-> Journal
|
||||
-> String
|
||||
-> (Journal -> Query)
|
||||
-> ([String], Sum MixedAmount)
|
||||
balanceviewQueryReport ropts currDay j t q = ([view], Sum amt)
|
||||
balanceviewQueryReport ropts q0 j t q = ([view], Sum amt)
|
||||
where
|
||||
q' = And [queryFromOpts currDay (withoutBeginDate ropts), q j]
|
||||
q' = And [q0, q j]
|
||||
rep@(_ , amt) = balanceReport ropts q' j
|
||||
view = intercalate "\n" [t <> ":", balanceReportAsText ropts rep]
|
||||
|
||||
@ -67,8 +69,10 @@ balanceviewQueryReport ropts currDay j t q = ([view], Sum amt)
|
||||
balanceviewReport :: BalanceView -> CliOpts -> Journal -> IO ()
|
||||
balanceviewReport BalanceView{..} CliOpts{reportopts_=ropts} j = do
|
||||
currDay <- getCurrentDay
|
||||
let (views, amt) =
|
||||
foldMap (uncurry (balanceviewQueryReport ropts currDay j))
|
||||
let q0 | bvsnapshot = queryFromOpts currDay (withoutBeginDate ropts)
|
||||
| otherwise = queryFromOpts currDay ropts
|
||||
(views, amt) =
|
||||
foldMap (uncurry (balanceviewQueryReport ropts q0 j))
|
||||
bvqueries
|
||||
mapM_ putStrLn (bvtitle : "" : views)
|
||||
|
||||
|
@ -19,13 +19,14 @@ import Hledger.Cli.CliOptions
|
||||
import Hledger.Cli.BalanceView
|
||||
|
||||
bsBV = BalanceView {
|
||||
bvmode = "balancesheet",
|
||||
bvaliases = ["bs"],
|
||||
bvhelp = "show a balance sheet",
|
||||
bvtitle = "Balance Sheet",
|
||||
bvqueries = [ ("Assets" , journalAssetAccountQuery),
|
||||
("Liabilities", journalLiabilityAccountQuery)
|
||||
]
|
||||
bvmode = "balancesheet",
|
||||
bvaliases = ["bs"],
|
||||
bvhelp = "show a balance sheet",
|
||||
bvtitle = "Balance Sheet",
|
||||
bvqueries = [ ("Assets" , journalAssetAccountQuery),
|
||||
("Liabilities", journalLiabilityAccountQuery)
|
||||
],
|
||||
bvsnapshot = True
|
||||
}
|
||||
|
||||
balancesheetmode :: Mode RawOpts
|
||||
|
@ -22,11 +22,12 @@ import Hledger.Cli.CliOptions
|
||||
import Hledger.Cli.BalanceView
|
||||
|
||||
cfBV = BalanceView {
|
||||
bvmode = "cashflow",
|
||||
bvaliases = ["cf"],
|
||||
bvhelp = "show a cashflow statement",
|
||||
bvtitle = "Cashflow Statement",
|
||||
bvqueries = [("Cash flows", journalCashAccountQuery)]
|
||||
bvmode = "cashflow",
|
||||
bvaliases = ["cf"],
|
||||
bvhelp = "show a cashflow statement",
|
||||
bvtitle = "Cashflow Statement",
|
||||
bvqueries = [("Cash flows", journalCashAccountQuery)],
|
||||
bvsnapshot = False
|
||||
}
|
||||
|
||||
cashflowmode :: Mode RawOpts
|
||||
|
@ -19,13 +19,14 @@ import Hledger.Cli.CliOptions
|
||||
import Hledger.Cli.BalanceView
|
||||
|
||||
isBV = BalanceView {
|
||||
bvmode = "incomestatement",
|
||||
bvaliases = ["is"],
|
||||
bvhelp = "show an income statement",
|
||||
bvtitle = "Income Statement",
|
||||
bvqueries = [ ("Revenues", journalIncomeAccountQuery),
|
||||
("Expenses", journalExpenseAccountQuery)
|
||||
]
|
||||
bvmode = "incomestatement",
|
||||
bvaliases = ["is"],
|
||||
bvhelp = "show an income statement",
|
||||
bvtitle = "Income Statement",
|
||||
bvqueries = [ ("Revenues", journalIncomeAccountQuery),
|
||||
("Expenses", journalExpenseAccountQuery)
|
||||
],
|
||||
bvsnapshot = False
|
||||
}
|
||||
|
||||
incomestatementmode :: Mode RawOpts
|
||||
|
Loading…
Reference in New Issue
Block a user