;lib: rename some budget report helpers
The new names are of course verbose, but more consistent and revealing.
This commit is contained in:
parent
372c9724a8
commit
4a74680a22
@ -612,7 +612,7 @@ journalCheckBalanceAssertions = either Just (const Nothing) . journalBalanceTran
|
|||||||
-- WARN tricky algorithm and code ahead.
|
-- WARN tricky algorithm and code ahead.
|
||||||
--
|
--
|
||||||
-- Code overview as of 20190219, this could/should be simplified/documented more:
|
-- Code overview as of 20190219, this could/should be simplified/documented more:
|
||||||
-- parseAndFinaliseJournal['] (Cli/Utils.hs), journalAddForecast (Common.hs), budgetJournal (BudgetReport.hs), tests (BalanceReport.hs)
|
-- parseAndFinaliseJournal['] (Cli/Utils.hs), journalAddForecast (Common.hs), journalAddBudgetGoalTransactions (BudgetReport.hs), tests (BalanceReport.hs)
|
||||||
-- journalBalanceTransactions
|
-- journalBalanceTransactions
|
||||||
-- runST
|
-- runST
|
||||||
-- runExceptT
|
-- runExceptT
|
||||||
|
|||||||
@ -72,7 +72,7 @@ type BudgetDisplayCell = ((String, Int), Maybe ((String, Int), Maybe (String, In
|
|||||||
-- | Calculate budget goals from all periodic transactions,
|
-- | Calculate budget goals from all periodic transactions,
|
||||||
-- actual balance changes from the regular transactions,
|
-- actual balance changes from the regular transactions,
|
||||||
-- and compare these to get a 'BudgetReport'.
|
-- and compare these to get a 'BudgetReport'.
|
||||||
-- Unbudgeted accounts may be hidden or renamed (see budgetRollup).
|
-- Unbudgeted accounts may be hidden or renamed (see journalWithBudgetAccountNames).
|
||||||
budgetReport :: ReportSpec -> Bool -> DateSpan -> Journal -> BudgetReport
|
budgetReport :: ReportSpec -> Bool -> DateSpan -> Journal -> BudgetReport
|
||||||
budgetReport rspec assrt reportspan j = dbg4 "sortedbudgetreport" budgetreport
|
budgetReport rspec assrt reportspan j = dbg4 "sortedbudgetreport" budgetreport
|
||||||
where
|
where
|
||||||
@ -88,12 +88,8 @@ budgetReport rspec assrt reportspan j = dbg4 "sortedbudgetreport" budgetreport
|
|||||||
concatMap tpostings $
|
concatMap tpostings $
|
||||||
concatMap (`runPeriodicTransaction` reportspan) $
|
concatMap (`runPeriodicTransaction` reportspan) $
|
||||||
jperiodictxns j
|
jperiodictxns j
|
||||||
actualj =
|
actualj = journalWithBudgetAccountNames budgetedaccts showunbudgeted j
|
||||||
dbg5With (("account names adjusted for budget report:\n"++).pshow.journalAccountNamesUsed) $
|
budgetj = journalAddBudgetGoalTransactions assrt ropts reportspan j
|
||||||
budgetRollUp budgetedaccts showunbudgeted j
|
|
||||||
budgetj =
|
|
||||||
-- dbg5With (("actual txns:\n"++).pshow.jtxns) $
|
|
||||||
budgetJournal assrt ropts reportspan j
|
|
||||||
actualreport@(PeriodicReport actualspans _ _) =
|
actualreport@(PeriodicReport actualspans _ _) =
|
||||||
dbg5 "actualreport" $ multiBalanceReport rspec{rsOpts=ropts{empty_=True}} actualj
|
dbg5 "actualreport" $ multiBalanceReport rspec{rsOpts=ropts{empty_=True}} actualj
|
||||||
budgetgoalreport@(PeriodicReport _ budgetgoalitems budgetgoaltotals) =
|
budgetgoalreport@(PeriodicReport _ budgetgoalitems budgetgoaltotals) =
|
||||||
@ -107,11 +103,12 @@ budgetReport rspec assrt reportspan j = dbg4 "sortedbudgetreport" budgetreport
|
|||||||
budgetreport = combineBudgetAndActual ropts j budgetgoalreport' actualreport
|
budgetreport = combineBudgetAndActual ropts j budgetgoalreport' actualreport
|
||||||
|
|
||||||
-- | Use all periodic transactions in the journal to generate
|
-- | Use all periodic transactions in the journal to generate
|
||||||
-- budget transactions in the specified report period.
|
-- budget goal transactions in the specified report period.
|
||||||
-- Budget transactions are similar to forecast transactions except
|
-- Budget goal transactions are similar to forecast transactions except
|
||||||
-- their purpose is to define balance change goals, per account and period.
|
-- their purpose and effect is to define balance change goals, per account and period,
|
||||||
budgetJournal :: Bool -> ReportOpts -> DateSpan -> Journal -> Journal
|
-- for BudgetReport.
|
||||||
budgetJournal assrt _ropts reportspan j =
|
journalAddBudgetGoalTransactions :: Bool -> ReportOpts -> DateSpan -> Journal -> Journal
|
||||||
|
journalAddBudgetGoalTransactions assrt _ropts reportspan j =
|
||||||
either error' id $ journalBalanceTransactions assrt j{ jtxns = budgetts } -- PARTIAL:
|
either error' id $ journalBalanceTransactions assrt j{ jtxns = budgetts } -- PARTIAL:
|
||||||
where
|
where
|
||||||
budgetspan = dbg3 "budget span" $ reportspan
|
budgetspan = dbg3 "budget span" $ reportspan
|
||||||
@ -130,10 +127,12 @@ budgetJournal assrt _ropts reportspan j =
|
|||||||
--
|
--
|
||||||
-- 2. subaccounts with no budget goal are merged with their closest parent account
|
-- 2. subaccounts with no budget goal are merged with their closest parent account
|
||||||
-- with a budget goal, so that only budgeted accounts are shown.
|
-- with a budget goal, so that only budgeted accounts are shown.
|
||||||
-- This can be disabled by --empty.
|
-- This can be disabled by -E/--empty.
|
||||||
--
|
--
|
||||||
budgetRollUp :: [AccountName] -> Bool -> Journal -> Journal
|
journalWithBudgetAccountNames :: [AccountName] -> Bool -> Journal -> Journal
|
||||||
budgetRollUp budgetedaccts showunbudgeted j = j { jtxns = remapTxn <$> jtxns j }
|
journalWithBudgetAccountNames budgetedaccts showunbudgeted j =
|
||||||
|
dbg5With (("budget account names: "++).pshow.journalAccountNamesUsed) $
|
||||||
|
j { jtxns = remapTxn <$> jtxns j }
|
||||||
where
|
where
|
||||||
remapTxn = mapPostings (map remapPosting)
|
remapTxn = mapPostings (map remapPosting)
|
||||||
where
|
where
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user