clarify recent print changes a bit (#551)
This commit is contained in:
parent
4f712754e4
commit
c9e7bbdc7c
@ -96,6 +96,7 @@ posting = nullposting
|
||||
post :: AccountName -> Amount -> Posting
|
||||
post acct amt = posting {paccount=acct, pamount=Mixed [amt]}
|
||||
|
||||
-- Get the original posting, if any.
|
||||
originalPosting :: Posting -> Posting
|
||||
originalPosting p = fromMaybe p $ porigin p
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ A ledger-compatible @print@ command.
|
||||
module Hledger.Cli.Print (
|
||||
printmode
|
||||
,print'
|
||||
,entriesReportAsText
|
||||
-- ,entriesReportAsText
|
||||
,originalTransaction
|
||||
,tests_Hledger_Cli_Print
|
||||
)
|
||||
@ -46,17 +46,6 @@ printmode = (defCommandMode $ ["print"] ++ aliases) {
|
||||
}
|
||||
where aliases = []
|
||||
|
||||
showTransaction' :: CliOpts -> Transaction -> String
|
||||
showTransaction' opts
|
||||
| boolopt "explicit" $ rawopts_ opts = showTransactionUnelided
|
||||
| otherwise = showTransactionUnelided . originalTransaction
|
||||
|
||||
originalTransaction :: Transaction -> Transaction
|
||||
originalTransaction t = t { tpostings = map originalPosting' $ tpostings t } where
|
||||
-- We don't want plain original postings because print wouldn't issue alias
|
||||
-- directives. Thus we are going to print effective account name.
|
||||
originalPosting' p = (originalPosting p) { paccount = paccount p }
|
||||
|
||||
-- | Print journal transactions in standard format.
|
||||
print' :: CliOpts -> Journal -> IO ()
|
||||
print' opts j = do
|
||||
@ -71,14 +60,21 @@ printEntries opts@CliOpts{reportopts_=ropts} j = do
|
||||
fmt = outputFormatFromOpts opts
|
||||
(render, ropts') = case fmt of
|
||||
"csv" -> ((++"\n") . printCSV . entriesReportAsCsv, ropts{accountlistmode_=ALFlat})
|
||||
_ -> (entriesReportAsText' opts, ropts)
|
||||
_ -> (entriesReportAsText opts, ropts)
|
||||
writeOutput opts $ render $ entriesReport ropts' q j
|
||||
|
||||
entriesReportAsText :: EntriesReport -> String
|
||||
entriesReportAsText items = concatMap showTransactionUnelided items
|
||||
entriesReportAsText :: CliOpts -> EntriesReport -> String
|
||||
entriesReportAsText opts = concatMap (showTransactionUnelided . gettxn)
|
||||
where
|
||||
gettxn | boolopt "explicit" $ rawopts_ opts = id -- use the fully inferred/explicit txn
|
||||
| otherwise = originalTransaction -- use the original txn (more or less)
|
||||
|
||||
entriesReportAsText' :: CliOpts -> EntriesReport -> String
|
||||
entriesReportAsText' = concatMap . showTransaction'
|
||||
-- Replace this transaction's postings with the original postings if any, but keep the
|
||||
-- current possibly rewritten account names.
|
||||
originalTransaction t = t { tpostings = map originalPostingPreservingAccount $ tpostings t }
|
||||
|
||||
-- Get the original posting if any, but keep the current possibly rewritten account name.
|
||||
originalPostingPreservingAccount p = (originalPosting p) { paccount = paccount p }
|
||||
|
||||
-- XXX
|
||||
-- tests_showTransactions = [
|
||||
|
||||
Loading…
Reference in New Issue
Block a user