From 5e3c8aaaff7decb0e4dafc306bbc72ca4b73027e Mon Sep 17 00:00:00 2001 From: Nicholas Niro Date: Mon, 28 Aug 2017 16:18:01 -0400 Subject: [PATCH] Implemented the new Cli command 'balancesheetequity`. This new command shows the same information as balancesheet but also includes the Equity accounts (equity:). --- hledger/Hledger/Cli.hs | 2 ++ hledger/Hledger/Cli/Balancesheetequity.hs | 40 +++++++++++++++++++++++ hledger/Hledger/Cli/Main.hs | 4 +++ hledger/hledger.cabal | 1 + hledger/package.yaml | 1 + 5 files changed, 48 insertions(+) create mode 100644 hledger/Hledger/Cli/Balancesheetequity.hs diff --git a/hledger/Hledger/Cli.hs b/hledger/Hledger/Cli.hs index 8d8cd880e..08b137af0 100644 --- a/hledger/Hledger/Cli.hs +++ b/hledger/Hledger/Cli.hs @@ -14,6 +14,7 @@ module Hledger.Cli ( module Hledger.Cli.Add, module Hledger.Cli.Balance, module Hledger.Cli.Balancesheet, + module Hledger.Cli.Balancesheetequity, module Hledger.Cli.Cashflow, module Hledger.Cli.Help, module Hledger.Cli.Histogram, @@ -44,6 +45,7 @@ import Hledger.Cli.Accounts import Hledger.Cli.Add import Hledger.Cli.Balance import Hledger.Cli.Balancesheet +import Hledger.Cli.Balancesheetequity import Hledger.Cli.Cashflow import Hledger.Cli.Histogram import Hledger.Cli.Help diff --git a/hledger/Hledger/Cli/Balancesheetequity.hs b/hledger/Hledger/Cli/Balancesheetequity.hs new file mode 100644 index 000000000..144e85445 --- /dev/null +++ b/hledger/Hledger/Cli/Balancesheetequity.hs @@ -0,0 +1,40 @@ +{-# LANGUAGE QuasiQuotes, RecordWildCards, NoCPP #-} +{-| + +The @balancesheetequity@ command prints a simple balance sheet. + +-} + +module Hledger.Cli.Balancesheetequity ( + balancesheetequitymode + ,balancesheetequity +) where + +import Data.String.Here +import System.Console.CmdArgs.Explicit + +import Hledger +import Hledger.Cli.CliOptions +import Hledger.Cli.CompoundBalanceCommand + +balancesheetequitySpec = CompoundBalanceCommandSpec { + cbcname = "balancesheetequity", + cbcaliases = ["bse"], + cbchelp = [here|This command displays a simple balance sheet, showing historical ending +balances of asset, liability and equity accounts (ignoring any report begin date). +It assumes that these accounts are under a top-level `asset`, `liability` and `equity` +account (plural forms also allowed). + |], + cbctitle = "Balance Sheet With Equity", + cbcqueries = [ ("Assets" , journalAssetAccountQuery), + ("Liabilities", journalLiabilityAccountQuery), + ("Equity", journalEquityAccountQuery) + ], + cbctype = HistoricalBalance +} + +balancesheetequitymode :: Mode RawOpts +balancesheetequitymode = compoundBalanceCommandMode balancesheetequitySpec + +balancesheetequity :: CliOpts -> Journal -> IO () +balancesheetequity = compoundBalanceCommand balancesheetequitySpec diff --git a/hledger/Hledger/Cli/Main.hs b/hledger/Hledger/Cli/Main.hs index d9ec01d2a..e543ac0e5 100644 --- a/hledger/Hledger/Cli/Main.hs +++ b/hledger/Hledger/Cli/Main.hs @@ -58,6 +58,7 @@ import Hledger.Cli.Add import Hledger.Cli.Accounts import Hledger.Cli.Balance import Hledger.Cli.Balancesheet +import Hledger.Cli.Balancesheetequity import Hledger.Cli.Cashflow import Hledger.Cli.Help import Hledger.Cli.Histogram @@ -97,6 +98,7 @@ mainmode addons = defMode { ,addmode ,balancemode ,balancesheetmode + ,balancesheetequitymode ,cashflowmode ,helpmode ,incomestatementmode @@ -224,6 +226,7 @@ commandsListTemplate = [here|Commands available (COUNT): Standard reports: accounts show chart of accounts balancesheet (bs) show a balance sheet + balancesheetequity (bse) show a balance sheet with equity cashflow (cf) show a cashflow statement incomestatement (is) show an income statement transactions (txns) show transactions in some account @@ -376,6 +379,7 @@ main = do | cmd == "accounts" = withJournalDo opts accounts `orShowHelp` accountsmode | cmd == "balance" = withJournalDo opts balance `orShowHelp` balancemode | cmd == "balancesheet" = withJournalDo opts balancesheet `orShowHelp` balancesheetmode + | cmd == "balancesheetequity" = withJournalDo opts balancesheetequity `orShowHelp` balancesheetequitymode | cmd == "cashflow" = withJournalDo opts cashflow `orShowHelp` cashflowmode | cmd == "incomestatement" = withJournalDo opts incomestatement `orShowHelp` incomestatementmode | cmd == "print" = withJournalDo opts print' `orShowHelp` printmode diff --git a/hledger/hledger.cabal b/hledger/hledger.cabal index 7f71538a4..f0866e690 100644 --- a/hledger/hledger.cabal +++ b/hledger/hledger.cabal @@ -126,6 +126,7 @@ library Hledger.Cli.Accounts Hledger.Cli.Balance Hledger.Cli.Balancesheet + Hledger.Cli.Balancesheetequity Hledger.Cli.CompoundBalanceCommand Hledger.Cli.Cashflow Hledger.Cli.Help diff --git a/hledger/package.yaml b/hledger/package.yaml index 801ce9490..c30ab78b6 100644 --- a/hledger/package.yaml +++ b/hledger/package.yaml @@ -107,6 +107,7 @@ library: - Hledger.Cli.Accounts - Hledger.Cli.Balance - Hledger.Cli.Balancesheet + - Hledger.Cli.Balancesheetequity - Hledger.Cli.CompoundBalanceCommand - Hledger.Cli.Cashflow - Hledger.Cli.Help