diff --git a/bin/hledger-equity.hs b/bin/hledger-equity.hs index 674ba42e5..db410ef76 100755 --- a/bin/hledger-equity.hs +++ b/bin/hledger-equity.hs @@ -70,11 +70,11 @@ main = do let ropts_ = ropts{accountlistmode_=ALFlat} q = queryFromOpts today ropts_ (acctbals,_) = balanceReport ropts_ q j - balancingamt = negate $ sum $ map (\(_,_,_,b) -> b) acctbals - ps = [posting{paccount=a, pamount=b} | (a,_,_,b) <- acctbals] + balancingamt = negate $ sum $ map (\(_,_,_,b) -> normaliseMixedAmountSquashPricesForDisplay b) acctbals + ps = [posting{paccount=a, pamount=normaliseMixedAmountSquashPricesForDisplay b} | (a,_,_,b) <- acctbals] ++ [posting{paccount="equity:opening balances", pamount=balancingamt}] enddate = fromMaybe today $ queryEndDate (date2_ ropts_) q - nps = [posting{paccount=a, pamount=negate b} | (a,_,_,b) <- acctbals] + nps = [posting{paccount=a, pamount=negate $ normaliseMixedAmountSquashPricesForDisplay b} | (a,_,_,b) <- acctbals] ++ [posting{paccount="equity:closing balances", pamount=negate balancingamt}] putStr $ showTransaction (nulltransaction{tdate=addDays (-1) enddate, tdescription="closing balances", tpostings=nps}) putStr $ showTransaction (nulltransaction{tdate=enddate, tdescription="opening balances", tpostings=ps}) diff --git a/tests/bin/equity.test b/tests/bin/equity.test index d45be4916..bee32f40c 100644 --- a/tests/bin/equity.test +++ b/tests/bin/equity.test @@ -34,6 +34,42 @@ runghc ../../bin/hledger-equity.hs -f- -p 2016 assets liabilities >>>=0 +# Test aggregation of postings with prices +runghc ../../bin/hledger-equity.hs -f- -p 2016 assets liabilities +<<< +Y2016 +01/31 + liabilities:employer $5,000.00 + income:salary + +02/05 + liabilities:employer -$5,000.00 @ 0.95 EUR + expenses:tax 1,852.50 EUR + assets:bank 2,897.00 EUR + liabilities:employer + +02/29 + liabilities:employer $5,000.00 + income:salary + +03/04 + liabilities:employer -$5,000.0 @ 0.93 EUR + expenses:tax 1,813.50 EUR + assets:bank 2,836.00 EUR + liabilities:employer +>>> +2016/12/31 closing balances + assets:bank -5,733.00 EUR + liabilities:employer -1.00 EUR + equity:closing balances + +2017/01/01 opening balances + assets:bank 5,733.00 EUR + liabilities:employer 1.00 EUR + equity:opening balances + +>>>=0 + # Verify effect of period runghc ../../bin/hledger-equity.hs -f- -p 2016 assets liabilities <<<