From 0a8212bda3f6018c159eff1a01ae26df531bcf21 Mon Sep 17 00:00:00 2001 From: Mykola Orliuk Date: Wed, 25 Jan 2017 23:56:10 +0200 Subject: [PATCH] equity: generate assertions --- bin/hledger-equity.hs | 16 ++++++++++++++-- tests/bin/equity.test | 28 ++++++++++++++-------------- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/bin/hledger-equity.hs b/bin/hledger-equity.hs index fa5430cf1..99ca61967 100755 --- a/bin/hledger-equity.hs +++ b/bin/hledger-equity.hs @@ -73,10 +73,22 @@ main = do q = queryFromOpts today ropts_ (acctbals,_) = balanceReport ropts_ q j balancingamt = negate $ sum $ map (\(_,_,_,b) -> normaliseMixedAmountSquashPricesForDisplay b) acctbals - ps = [posting{paccount=a, pamount=normaliseMixedAmountSquashPricesForDisplay b} | (a,_,_,b) <- acctbals] + ps = [posting{paccount=a + ,pamount=mixed [b] + ,pbalanceassertion=Just b + } + |(a,_,_,mb) <- acctbals + ,b <- amounts $ normaliseMixedAmountSquashPricesForDisplay mb + ] ++ [posting{paccount="equity:opening balances", pamount=balancingamt}] enddate = fromMaybe today $ queryEndDate (date2_ ropts_) q - nps = [posting{paccount=a, pamount=negate $ normaliseMixedAmountSquashPricesForDisplay b} | (a,_,_,b) <- acctbals] + nps = [posting{paccount=a + ,pamount=mixed [negate b] + ,pbalanceassertion=Just b{aquantity=0} + } + |(a,_,_,mb) <- acctbals + ,b <- amounts $ normaliseMixedAmountSquashPricesForDisplay mb + ] ++ [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 bee32f40c..b07d009b1 100644 --- a/tests/bin/equity.test +++ b/tests/bin/equity.test @@ -21,15 +21,15 @@ runghc ../../bin/hledger-equity.hs -f- -p 2016 assets liabilities assets:cash >>> 2016/12/31 closing balances - assets:bank $-80 - assets:cash $-10 - liabilities $-25 + assets:bank $-80 = $0 + assets:cash $-10 = $0 + liabilities $-25 = $0 equity:closing balances 2017/01/01 opening balances - assets:bank $80 - assets:cash $10 - liabilities $25 + assets:bank $80 = $80 + assets:cash $10 = $10 + liabilities $25 = $25 equity:opening balances >>>=0 @@ -59,13 +59,13 @@ Y2016 liabilities:employer >>> 2016/12/31 closing balances - assets:bank -5,733.00 EUR - liabilities:employer -1.00 EUR + assets:bank -5,733.00 EUR = 0.00 EUR + liabilities:employer -1.00 EUR = 0.00 EUR equity:closing balances 2017/01/01 opening balances - assets:bank 5,733.00 EUR - liabilities:employer 1.00 EUR + assets:bank 5,733.00 EUR = 5,733.00 EUR + liabilities:employer 1.00 EUR = 1.00 EUR equity:opening balances >>>=0 @@ -91,13 +91,13 @@ runghc ../../bin/hledger-equity.hs -f- -p 2016 assets liabilities assets:cash >>> 2016/12/31 closing balances - assets:bank $20 - assets:cash $-15 + assets:bank $20 = $0 + assets:cash $-15 = $0 equity:closing balances 2017/01/01 opening balances - assets:bank $-20 - assets:cash $15 + assets:bank $-20 = $-20 + assets:cash $15 = $15 equity:opening balances >>>=0