    {-# LANGUAGE QuasiQuotes, RecordWildCards, NoCPP #-}
    {-|

    The @balancesheet@ command prints a simple balance sheet.

    -}

    module Hledger.Cli.Balancesheet (
      balancesheetmode
     ,balancesheet
     ,tests_Hledger_Cli_Balancesheet
    ) where

    import Data.String.Here
    import System.Console.CmdArgs.Explicit
    import Test.HUnit

    import Hledger
    import Hledger.Cli.CliOptions
    import Hledger.Cli.BalanceView

    bsBV = BalanceView {
             bvmode     = "balancesheet",
             bvaliases  = ["bs"],
             bvhelp     = [here|This command displays a simple balance sheet, showing historical ending
    balances of asset and liability accounts (ignoring any report begin date).
    It assumes that these accounts are under a top-level `asset` or `liability`
    account (plural forms also  allowed).
              |],
             bvtitle    = "Balance Sheet",
             bvqueries  = [ ("Assets"     , journalAssetAccountQuery),
                            ("Liabilities", journalLiabilityAccountQuery)
                          ],
             bvtype     = HistoricalBalance
          }

    balancesheetmode :: Mode RawOpts
    balancesheetmode = balanceviewmode bsBV

    balancesheet :: CliOpts -> Journal -> IO ()
    balancesheet = balanceviewReport bsBV

    tests_Hledger_Cli_Balancesheet :: Test
    tests_Hledger_Cli_Balancesheet = TestList
     [
     ]