lib: mapJournalTransactions, mapJournalPostings, mapTransactionPostings
This commit is contained in:
parent
5a13bc632d
commit
76542458e6
@ -35,6 +35,10 @@ module Hledger.Data.Journal (
|
||||
filterTransactionAmounts,
|
||||
filterTransactionPostings,
|
||||
filterPostingAmount,
|
||||
-- * Mapping
|
||||
mapJournalTransactions,
|
||||
mapJournalPostings,
|
||||
mapTransactionPostings,
|
||||
-- * Querying
|
||||
journalAccountNamesUsed,
|
||||
journalAccountNamesImplied,
|
||||
@ -403,6 +407,17 @@ filterPostingAmount q p@Posting{pamount=Mixed as} = p{pamount=Mixed $ filter (q
|
||||
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}
|
||||
|
||||
-- | 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}
|
||||
|
||||
{-
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Loading…
Reference in New Issue
Block a user