close: add --close-to, --open-from to choose account names
This commit is contained in:
		
							parent
							
								
									4faefcfab2
								
							
						
					
					
						commit
						4ab5896902
					
				@ -11,16 +11,22 @@ import Control.Monad (when)
 | 
				
			|||||||
import Data.Function (on)
 | 
					import Data.Function (on)
 | 
				
			||||||
import Data.List (groupBy)
 | 
					import Data.List (groupBy)
 | 
				
			||||||
import Data.Maybe
 | 
					import Data.Maybe
 | 
				
			||||||
 | 
					import qualified Data.Text as T (pack)
 | 
				
			||||||
import Data.Time.Calendar
 | 
					import Data.Time.Calendar
 | 
				
			||||||
import System.Console.CmdArgs.Explicit as C
 | 
					import System.Console.CmdArgs.Explicit as C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Hledger
 | 
					import Hledger
 | 
				
			||||||
import Hledger.Cli.CliOptions
 | 
					import Hledger.Cli.CliOptions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					defclosingacct = "equity:closing balances"
 | 
				
			||||||
 | 
					defopeningacct = "equity:opening balances"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
closemode = hledgerCommandMode
 | 
					closemode = hledgerCommandMode
 | 
				
			||||||
  $(embedFileRelative "Hledger/Cli/Commands/Close.txt")
 | 
					  $(embedFileRelative "Hledger/Cli/Commands/Close.txt")
 | 
				
			||||||
  [flagNone ["opening"] (setboolopt "opening") "show just opening transaction"
 | 
					  [flagNone ["closing"] (setboolopt "closing") "show just closing transaction"
 | 
				
			||||||
  ,flagNone ["closing"] (setboolopt "closing") "show just closing transaction"
 | 
					  ,flagNone ["opening"] (setboolopt "opening") "show just opening transaction"
 | 
				
			||||||
 | 
					  ,flagReq  ["close-to"] (\s opts -> Right $ setopt "close-to" s opts) "ACCT" ("account to transfer closing balances to (default: "++defclosingacct++")")
 | 
				
			||||||
 | 
					  ,flagReq  ["open-from"] (\s opts -> Right $ setopt "open-from" s opts) "ACCT" ("account to transfer opening balances from (default: "++defopeningacct++")")
 | 
				
			||||||
  ]
 | 
					  ]
 | 
				
			||||||
  [generalflagsgroup1]
 | 
					  [generalflagsgroup1]
 | 
				
			||||||
  hiddenflags
 | 
					  hiddenflags
 | 
				
			||||||
@ -33,6 +39,8 @@ close CliOpts{rawopts_=rawopts, reportopts_=ropts} j = do
 | 
				
			|||||||
        case (boolopt "opening" rawopts, boolopt "closing" rawopts) of
 | 
					        case (boolopt "opening" rawopts, boolopt "closing" rawopts) of
 | 
				
			||||||
          (False, False) -> (True, True) -- by default show both opening and closing
 | 
					          (False, False) -> (True, True) -- by default show both opening and closing
 | 
				
			||||||
          (o, c) -> (o, c)
 | 
					          (o, c) -> (o, c)
 | 
				
			||||||
 | 
					      closingacct = T.pack $ fromMaybe defclosingacct $ maybestringopt "close-to" rawopts
 | 
				
			||||||
 | 
					      openingacct = T.pack $ fromMaybe defopeningacct $ maybestringopt "open-from" rawopts
 | 
				
			||||||
      ropts_ = ropts{balancetype_=HistoricalBalance, accountlistmode_=ALFlat}
 | 
					      ropts_ = ropts{balancetype_=HistoricalBalance, accountlistmode_=ALFlat}
 | 
				
			||||||
      q = queryFromOpts today ropts_
 | 
					      q = queryFromOpts today ropts_
 | 
				
			||||||
      openingdate = fromMaybe today $ queryEndDate False q
 | 
					      openingdate = fromMaybe today $ queryEndDate False q
 | 
				
			||||||
@ -61,7 +69,7 @@ close CliOpts{rawopts_=rawopts, reportopts_=ropts} j = do
 | 
				
			|||||||
                  -- The balancing posting to equity. Allow this one to have a multicommodity amount,
 | 
					                  -- The balancing posting to equity. Allow this one to have a multicommodity amount,
 | 
				
			||||||
                  -- and don't try to assert its balance.
 | 
					                  -- and don't try to assert its balance.
 | 
				
			||||||
                  ++
 | 
					                  ++
 | 
				
			||||||
                  [posting{paccount = "equity:closing balances"
 | 
					                  [posting{paccount = closingacct
 | 
				
			||||||
                          ,pamount  = negate balancingamt
 | 
					                          ,pamount  = negate balancingamt
 | 
				
			||||||
                          }
 | 
					                          }
 | 
				
			||||||
                  ]
 | 
					                  ]
 | 
				
			||||||
@ -82,7 +90,7 @@ close CliOpts{rawopts_=rawopts, reportopts_=ropts} j = do
 | 
				
			|||||||
                  , (b, mcommoditysum) <- bs'
 | 
					                  , (b, mcommoditysum) <- bs'
 | 
				
			||||||
                  ]
 | 
					                  ]
 | 
				
			||||||
                  ++
 | 
					                  ++
 | 
				
			||||||
                  [posting{paccount = "equity:opening balances"
 | 
					                  [posting{paccount = openingacct
 | 
				
			||||||
                          ,pamount  = balancingamt
 | 
					                          ,pamount  = balancingamt
 | 
				
			||||||
                          }
 | 
					                          }
 | 
				
			||||||
                  ]
 | 
					                  ]
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user