This commit is contained in:
		
							parent
							
								
									a57c1bde08
								
							
						
					
					
						commit
						1866d2375d
					
				| @ -26,7 +26,8 @@ module Hledger.Reports.BalanceReport ( | |||||||
| ) | ) | ||||||
| where | where | ||||||
| 
 | 
 | ||||||
| import Data.List (sort) | import Data.List | ||||||
|  | import Data.Ord | ||||||
| import Data.Maybe | import Data.Maybe | ||||||
| import Data.Time.Calendar | import Data.Time.Calendar | ||||||
| import Test.HUnit | import Test.HUnit | ||||||
| @ -169,17 +170,23 @@ amountValue j d a = | |||||||
|                 } |                 } | ||||||
|     Nothing -> a |     Nothing -> a | ||||||
| 
 | 
 | ||||||
| -- | Find the market value, if known, of one unit of this commodity on | -- | Find the market value, if known, of one unit of this commodity (A) on | ||||||
| -- the given date, in the commodity in which it has most recently been | -- the given valuation date, in the commodity (B) mentioned in the latest | ||||||
| -- market-priced (ie the commodity mentioned in the most recent | -- applicable market price. The latest applicable market price is the market | ||||||
| -- applicable market price directive before this date). | -- price directive for commodity A with the latest date that is on or before | ||||||
|  | -- the valuation date; or if there are multiple such prices with the same date, | ||||||
|  | -- the last parsed. | ||||||
| commodityValue :: Journal -> Day -> CommoditySymbol -> Maybe Amount | commodityValue :: Journal -> Day -> CommoditySymbol -> Maybe Amount | ||||||
| commodityValue j d c | commodityValue j valuationdate c | ||||||
|     | null applicableprices = dbg Nothing |     | null applicableprices = dbg Nothing | ||||||
|     | otherwise             = dbg $ Just $ mpamount $ last applicableprices |     | otherwise             = dbg $ Just $ mpamount $ last applicableprices | ||||||
|   where |   where | ||||||
|     applicableprices = [p | p <- sort $ jmarketprices j, mpcommodity p == c, mpdate p <= d] |  | ||||||
|     dbg = dbg8 ("using market price for "++T.unpack c) |     dbg = dbg8 ("using market price for "++T.unpack c) | ||||||
|  |     applicableprices = | ||||||
|  |       [p | p <- sortBy (comparing mpdate) $ jmarketprices j | ||||||
|  |       , mpcommodity p == c | ||||||
|  |       , mpdate p <= valuationdate | ||||||
|  |       ] | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user