lib: show pending posting flags when rendering a transaction (fix #563)

This affects hledger-ui's transaction screen, print, hledger-rewrite etc.
A pending flag on postings is now displayed, just like a cleared flag.
Also there will now be a space between flag and account name.
And it's slightly better at aligning amounts, due to now considering
virtual posting parentheses/brackets or something.
This commit is contained in:
Simon Michael 2017-06-04 17:41:42 -07:00
parent cd70bb1a86
commit 1adc636554
3 changed files with 13 additions and 10 deletions

View File

@ -212,14 +212,17 @@ postingAsLines elideamount onelineamounts ps p = concat [
++ newlinecomments
| postingblock <- postingblocks]
where
postingblocks = [map rstrip $ lines $ concatTopPadded [account, " ", amount, assertion, samelinecomment] | amount <- shownAmounts]
postingblocks = [map rstrip $ lines $ concatTopPadded [statusandaccount, " ", amount, assertion, samelinecomment] | amount <- shownAmounts]
assertion = maybe "" ((" = " ++) . showAmountWithZeroCommodity) $ pbalanceassertion p
account =
indent $
showstatus p ++ fitString (Just acctwidth) Nothing False True (showAccountName Nothing (ptype p) (paccount p))
statusandaccount = indent $ fitString (Just $ minwidth) Nothing False True $ pstatusandacct p
where
showstatus p = if pstatus p == Cleared then "* " else ""
acctwidth = maximum $ map (textWidth . paccount) ps
-- pad to the maximum account name width, to keep amounts aligned
minwidth = maximum $ map (textWidth . T.pack . pacctstr) ps
pstatusandacct p' = pstatusprefix p' ++ pacctstr p'
pstatusprefix p' | null s = ""
| otherwise = s ++ " "
where s = show $ pstatus p'
pacctstr p' = showAccountName Nothing (ptype p') (paccount p')
-- currently prices are considered part of the amount string when right-aligning amounts
shownAmounts

View File

@ -70,15 +70,15 @@
>>>
2017/04/24 * 09:00-09:25
(assets:unbilled:client1) 0.42h
(assets:to bill:client1) 42.00 CAD
(assets:to bill:client1) 42.00 CAD
2017/04/25 * 10:00-11:15
(assets:unbilled:client1) 1.25h
(assets:to bill:client1) 125.00 CAD
(assets:to bill:client1) 125.00 CAD
2017/04/25 * 14:00-15:32
(assets:unbilled:client2) 1.54h
(assets:to bill:client2) 231.00 CAD
(assets:to bill:client2) 231.00 CAD
>>>2
>>>=0

View File

@ -116,7 +116,7 @@ alias E=F
>>>
2011/01/01
[E:x] 1
[E:x] 1
[x:A:x]
>>>2