lib: apply canonical display styles to auto posting amounts too
This commit is contained in:
		
							parent
							
								
									fccd88149d
								
							
						
					
					
						commit
						b3711488a7
					
				| @ -274,9 +274,10 @@ finaliseJournal :: InputOpts -> FilePath -> Text -> Journal -> ExceptT String IO | |||||||
| finaliseJournal iopts f txt pj = do | finaliseJournal iopts f txt pj = do | ||||||
|   t <- liftIO getClockTime |   t <- liftIO getClockTime | ||||||
|   -- Infer and apply canonical styles for each commodity (or fail). |   -- Infer and apply canonical styles for each commodity (or fail). | ||||||
|   -- TODO: since #903's refactoring for hledger 1.12, |   -- This affects transaction balancing/assertions/assignments, so needs to be done early. | ||||||
|  |   -- (TODO: since #903's refactoring for hledger 1.12, | ||||||
|   -- journalApplyCommodityStyles here is seeing the |   -- journalApplyCommodityStyles here is seeing the | ||||||
|   -- transactions before they get reversesd to normal order. |   -- transactions before they get reversesd to normal order.) | ||||||
|   case journalApplyCommodityStyles pj of |   case journalApplyCommodityStyles pj of | ||||||
|     Left e    -> throwError e |     Left e    -> throwError e | ||||||
|     Right pj' -> either throwError return $ |     Right pj' -> either throwError return $ | ||||||
| @ -292,12 +293,15 @@ finaliseJournal iopts f txt pj = do | |||||||
|         else \j -> do  -- Either monad |         else \j -> do  -- Either monad | ||||||
|           -- Auto postings are active. |           -- Auto postings are active. | ||||||
|           -- Balance all transactions without checking balance assertions, |           -- Balance all transactions without checking balance assertions, | ||||||
|           -- then add the auto postings, then check balance assertions. |           j' <- journalBalanceTransactions False j | ||||||
|  |           -- then add the auto postings | ||||||
|           -- (Note adding auto postings after balancing means #893b fails; |           -- (Note adding auto postings after balancing means #893b fails; | ||||||
|           -- adding them before balancing probably means #893a, #928, #938 fail.) |           -- adding them before balancing probably means #893a, #928, #938 fail.) | ||||||
|           j' <- journalBalanceTransactions False j |  | ||||||
|           let j'' = journalModifyTransactions j' |           let j'' = journalModifyTransactions j' | ||||||
|           journalBalanceTransactions (not $ ignore_assertions_ iopts) j'' |           -- then apply commodity styles once more, to style the auto posting amounts. (XXX inefficient ?) | ||||||
|  |           j''' <- journalApplyCommodityStyles j'' | ||||||
|  |           -- then check balance assertions. | ||||||
|  |           journalBalanceTransactions (not $ ignore_assertions_ iopts) j''' | ||||||
| 
 | 
 | ||||||
| setYear :: Year -> JournalParser m () | setYear :: Year -> JournalParser m () | ||||||
| setYear y = modify' (\j -> j{jparsedefaultyear=Just y}) | setYear y = modify' (\j -> j{jparsedefaultyear=Just y}) | ||||||
|  | |||||||
| @ -1,5 +1,3 @@ | |||||||
| # Transaction modifier adding (unbalanced) tax postings. |  | ||||||
| # print. Auto-generated postings are inserted below the matched one. |  | ||||||
| < | < | ||||||
| = ^income | = ^income | ||||||
|   (liabilities:tax)  *.33  ; income tax |   (liabilities:tax)  *.33  ; income tax | ||||||
| @ -13,7 +11,7 @@ | |||||||
|     assets:cash             $20 |     assets:cash             $20 | ||||||
|     assets:bank |     assets:bank | ||||||
| 
 | 
 | ||||||
| # 1. print | # 1. print. Auto-generated postings are inserted below the matched one. | ||||||
| $ hledger print -f- --auto | $ hledger print -f- --auto | ||||||
| 2016-01-01 paycheck  ; modified: | 2016-01-01 paycheck  ; modified: | ||||||
|     income:remuneration           $-100 |     income:remuneration           $-100 | ||||||
| @ -327,3 +325,20 @@ $ hledger -f- register --auto | |||||||
| $ hledger -f- print -x --auto | $ hledger -f- print -x --auto | ||||||
| >2 /could not balance/ | >2 /could not balance/ | ||||||
| >=1 | >=1 | ||||||
|  | 
 | ||||||
|  | # 17. Commodity display styles are applied to auto posting amounts. | ||||||
|  | < | ||||||
|  | 2020-01-20 | ||||||
|  |   (a)    1 A | ||||||
|  | ; add an auto posting with decimal places | ||||||
|  | = | ||||||
|  |   (b)   *1.5 B | ||||||
|  | ; show B amounts with no decimal places | ||||||
|  | commodity 0. B | ||||||
|  | 
 | ||||||
|  | $ hledger -f- print --auto | ||||||
|  | 2020-01-20  ; modified: | ||||||
|  |     (a)             1 A | ||||||
|  |     (b)             2 B  ; generated-posting: = | ||||||
|  | 
 | ||||||
|  | >=0 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user