diff --git a/hledger-lib/Hledger/Data/Journal.hs b/hledger-lib/Hledger/Data/Journal.hs index 710be6859..913f17022 100644 --- a/hledger-lib/Hledger/Data/Journal.hs +++ b/hledger-lib/Hledger/Data/Journal.hs @@ -38,9 +38,8 @@ module Hledger.Data.Journal ( filterTransactionPostings, filterPostingAmount, -- * Mapping - mapJournalTransactions, - mapJournalPostings, - mapTransactionPostings, + journalMapTransactions, + journalMapPostings, journalMapPostingAmounts, -- * Querying journalAccountNamesUsed, @@ -445,20 +444,16 @@ filterTransactionPostings :: Query -> Transaction -> Transaction filterTransactionPostings q t@Transaction{tpostings=ps} = t{tpostings=filter (q `matchesPosting`) ps} -- | Apply a transformation to a journal's transactions. -mapJournalTransactions :: (Transaction -> Transaction) -> Journal -> Journal -mapJournalTransactions f j@Journal{jtxns=ts} = j{jtxns=map f ts} +journalMapTransactions :: (Transaction -> Transaction) -> Journal -> Journal +journalMapTransactions f j@Journal{jtxns=ts} = j{jtxns=map f ts} -- | Apply a transformation to a journal's postings. -mapJournalPostings :: (Posting -> Posting) -> Journal -> Journal -mapJournalPostings f j@Journal{jtxns=ts} = j{jtxns=map (mapTransactionPostings f) ts} - --- | Apply a transformation to a transaction's postings. -mapTransactionPostings :: (Posting -> Posting) -> Transaction -> Transaction -mapTransactionPostings f t@Transaction{tpostings=ps} = t{tpostings=map f ps} +journalMapPostings :: (Posting -> Posting) -> Journal -> Journal +journalMapPostings f j@Journal{jtxns=ts} = j{jtxns=map (transactionMapPostings f) ts} -- | Apply a transformation to a journal's posting amounts. journalMapPostingAmounts :: (Amount -> Amount) -> Journal -> Journal -journalMapPostingAmounts f = mapJournalPostings (postingTransformAmount (mapMixedAmount f)) +journalMapPostingAmounts f = journalMapPostings (postingTransformAmount (mapMixedAmount f)) {- ------------------------------------------------------------------------------- diff --git a/hledger-lib/Hledger/Data/Transaction.hs b/hledger-lib/Hledger/Data/Transaction.hs index 40927ccdc..5ffa9c44e 100644 --- a/hledger-lib/Hledger/Data/Transaction.hs +++ b/hledger-lib/Hledger/Data/Transaction.hs @@ -36,6 +36,7 @@ module Hledger.Data.Transaction ( transactionApplyValuation, transactionToCost, transactionApplyAliases, + transactionMapPostings, -- nonzerobalanceerror, -- * date operations transactionDate2, @@ -617,6 +618,11 @@ transactionApplyAliases aliases t = Right ps -> Right $ txnTieKnot $ t{tpostings=ps} Left err -> Left err +-- | Apply a transformation to a transaction's postings. +transactionMapPostings :: (Posting -> Posting) -> Transaction -> Transaction +transactionMapPostings f t@Transaction{tpostings=ps} = t{tpostings=map f ps} + +-- | Apply a transformation to a transaction's posting amounts. -- tests tests_Transaction :: TestTree