print: csv: show proper txn index, rename to "txnidx"
This commit is contained in:
parent
2585c1eedf
commit
332a19ccd8
@ -14,7 +14,6 @@ module Hledger.Cli.Print (
|
||||
)
|
||||
where
|
||||
|
||||
import Data.List
|
||||
import Data.Text (Text)
|
||||
import qualified Data.Text as T
|
||||
import System.Console.CmdArgs.Explicit
|
||||
@ -106,16 +105,18 @@ entriesReportAsText items = concatMap showTransactionUnelided items
|
||||
-- ]
|
||||
|
||||
entriesReportAsCsv :: EntriesReport -> CSV
|
||||
entriesReportAsCsv items =
|
||||
concat $
|
||||
([["nth","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","status","posting-comment"]]:).snd $
|
||||
mapAccumL (\n e -> (n + 1, transactionToCSV n e)) 0 items
|
||||
entriesReportAsCsv txns =
|
||||
["txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","status","posting-comment"] :
|
||||
concatMap transactionToCSV txns
|
||||
|
||||
transactionToCSV :: Integer -> Transaction -> CSV
|
||||
transactionToCSV n t =
|
||||
map (\p -> show n:date:date2:status:code:description:comment:p)
|
||||
-- | Generate one CSV record per posting, duplicating the common transaction fields.
|
||||
-- The txnidx field (transaction index) allows postings to be grouped back into transactions.
|
||||
transactionToCSV :: Transaction -> CSV
|
||||
transactionToCSV t =
|
||||
map (\p -> show idx:date:date2:status:code:description:comment:p)
|
||||
(concatMap postingToCSV $ tpostings t)
|
||||
where
|
||||
idx = tindex t
|
||||
description = T.unpack $ tdescription t
|
||||
date = showDate (tdate t)
|
||||
date2 = maybe "" showDate (tdate2 t)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user