lib: refactor
This commit is contained in:
parent
79812f974a
commit
3b2a9eaba4
@ -367,10 +367,7 @@ data Account = Account {
|
|||||||
-- Assets and expenses are normally positive (debit), while liabilities, equity
|
-- Assets and expenses are normally positive (debit), while liabilities, equity
|
||||||
-- and income are normally negative (credit).
|
-- and income are normally negative (credit).
|
||||||
-- https://en.wikipedia.org/wiki/Normal_balance
|
-- https://en.wikipedia.org/wiki/Normal_balance
|
||||||
data NormalSign =
|
data NormalSign = NormallyPositive | NormallyNegative deriving (Show, Data, Eq)
|
||||||
NormallyPositive -- ^ normally debit - assets, expenses...
|
|
||||||
| NormallyNegative -- ^ normally credit - liabilities, equity, income...
|
|
||||||
deriving (Show, Data, Eq)
|
|
||||||
|
|
||||||
-- | A Ledger has the journal it derives from, and the accounts
|
-- | A Ledger has the journal it derives from, and the accounts
|
||||||
-- derived from that. Accounts are accessible both list-wise and
|
-- derived from that. Accounts are accessible both list-wise and
|
||||||
|
|||||||
@ -45,6 +45,26 @@ data CompoundBalanceCommandSpec = CompoundBalanceCommandSpec {
|
|||||||
cbctype :: BalanceType -- ^ the type of "balance" this report shows (overrides command line flags)
|
cbctype :: BalanceType -- ^ the type of "balance" this report shows (overrides command line flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- | A compound balance report has:
|
||||||
|
--
|
||||||
|
-- * an overall title
|
||||||
|
--
|
||||||
|
-- * the period (date span) of each column
|
||||||
|
--
|
||||||
|
-- * one or more named multi balance reports, with columns corresponding to the above
|
||||||
|
--
|
||||||
|
-- * a list of overall totals for each column, and their grand total and average
|
||||||
|
--
|
||||||
|
-- It is used in compound balance report commands like balancesheet,
|
||||||
|
-- cashflow and incomestatement.
|
||||||
|
type CompoundBalanceReport =
|
||||||
|
( String
|
||||||
|
, [DateSpan]
|
||||||
|
, [(String, MultiBalanceReport)]
|
||||||
|
, ([MixedAmount], MixedAmount, MixedAmount)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
-- | Generate a cmdargs option-parsing mode from a compound balance command
|
-- | Generate a cmdargs option-parsing mode from a compound balance command
|
||||||
-- specification.
|
-- specification.
|
||||||
compoundBalanceCommandMode :: CompoundBalanceCommandSpec -> Mode RawOpts
|
compoundBalanceCommandMode :: CompoundBalanceCommandSpec -> Mode RawOpts
|
||||||
@ -212,25 +232,6 @@ compoundBalanceCommandSingleColumnReport ropts userq j subreporttitle subreportq
|
|||||||
| otherwise = balanceReport ropts' q j
|
| otherwise = balanceReport ropts' q j
|
||||||
subreportstr = intercalate "\n" [subreporttitle <> ":", balanceReportAsText ropts r]
|
subreportstr = intercalate "\n" [subreporttitle <> ":", balanceReportAsText ropts r]
|
||||||
|
|
||||||
-- | A compound balance report has:
|
|
||||||
--
|
|
||||||
-- * an overall title
|
|
||||||
--
|
|
||||||
-- * the period (date span) of each column
|
|
||||||
--
|
|
||||||
-- * one or more named multi balance reports, with columns corresponding to the above
|
|
||||||
--
|
|
||||||
-- * a list of overall totals for each column, and their grand total and average
|
|
||||||
--
|
|
||||||
-- It is used in compound balance report commands like balancesheet,
|
|
||||||
-- cashflow and incomestatement.
|
|
||||||
type CompoundBalanceReport =
|
|
||||||
( String
|
|
||||||
, [DateSpan]
|
|
||||||
, [(String, MultiBalanceReport)]
|
|
||||||
, ([MixedAmount], MixedAmount, MixedAmount)
|
|
||||||
)
|
|
||||||
|
|
||||||
-- | Run one subreport for a compound balance command in multi-column mode.
|
-- | Run one subreport for a compound balance command in multi-column mode.
|
||||||
-- This returns a MultiBalanceReport.
|
-- This returns a MultiBalanceReport.
|
||||||
compoundBalanceSubreport :: ReportOpts -> Query -> Journal -> (Journal -> Query) -> Maybe NormalSign -> MultiBalanceReport
|
compoundBalanceSubreport :: ReportOpts -> Query -> Journal -> (Journal -> Query) -> Maybe NormalSign -> MultiBalanceReport
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user