require a balanced entry to have just one commodity, for now

This commit is contained in:
Simon Michael 2008-10-15 07:00:47 +00:00
parent 3138046744
commit f99963786c
2 changed files with 5 additions and 2 deletions

View File

@ -39,7 +39,10 @@ showDate d = printf "%-10s" d
showDescription s = printf "%-20s" (elideRight 20 s)
isEntryBalanced :: Entry -> Bool
isEntryBalanced = isZeroAmount . sumLedgerTransactions . etransactions
isEntryBalanced (Entry {etransactions=ts}) = isZeroAmount sum && numcommodities==1
where
sum = sumLedgerTransactions ts
numcommodities = length $ nub $ map (commodity . tamount) ts
autofillEntry :: Entry -> Entry
autofillEntry e@(Entry {etransactions=ts}) = e{etransactions=autofillTransactions ts}

View File

@ -37,4 +37,4 @@ autofillTransactions ts =
balance t = if isnormal t then t else t{tamount = -(sumLedgerTransactions normals)}
sumLedgerTransactions :: [RawTransaction] -> Amount
sumLedgerTransactions = sum . map tamount
sumLedgerTransactions = sumAmounts . map tamount