;lib: cleanups
This commit is contained in:
		
							parent
							
								
									eeb178f86a
								
							
						
					
					
						commit
						d738ca8c60
					
				| @ -115,7 +115,7 @@ multiBalanceReportWith ropts q j priceoracle = report | |||||||
|     colps    = dbg'' "colps"  $ getPostingsByColumn ropts reportq j reportspan |     colps    = dbg'' "colps"  $ getPostingsByColumn ropts reportq j reportspan | ||||||
|     colspans = dbg "colspans" $ M.keys colps |     colspans = dbg "colspans" $ M.keys colps | ||||||
| 
 | 
 | ||||||
|     -- Postprocess the report, negating balances and taking percentages if needed |     -- Generate and postprocess the report, negating balances and taking percentages if needed | ||||||
|     report = dbg' "report" $ generateMultiBalanceReport ropts reportq j priceoracle reportspan colspans colps |     report = dbg' "report" $ generateMultiBalanceReport ropts reportq j priceoracle reportspan colspans colps | ||||||
| 
 | 
 | ||||||
| -- | Generate a compound balance report from a list of CBCSubreportSpec. This | -- | Generate a compound balance report from a list of CBCSubreportSpec. This | ||||||
| @ -280,21 +280,8 @@ calculateColSpans ropts reportspan days = | |||||||
|     matchedspan = dbg "matchedspan" $ daysSpan days |     matchedspan = dbg "matchedspan" $ daysSpan days | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| -- | Calculate account balance changes in each column. | -- | Gather the account balance changes into a regular matrix | ||||||
| -- | -- including the accounts from all columns. | ||||||
| -- In each column, gather the accounts that have postings and their change amount. |  | ||||||
| acctChangesFromPostings :: ReportOpts -> Query -> [Posting] -> HashMap ClippedAccountName Account |  | ||||||
| acctChangesFromPostings ropts q ps = HM.fromList [(aname a, a) | a <- as] |  | ||||||
|   where |  | ||||||
|     as = filterAccounts . drop 1 $ accountsFromPostings ps |  | ||||||
|     filterAccounts = case accountlistmode_ ropts of |  | ||||||
|         ALTree -> filter ((depthq `matchesAccount`) . aname)      -- exclude deeper balances |  | ||||||
|         ALFlat -> clipAccountsAndAggregate (queryDepth depthq) .  -- aggregate deeper balances at the depth limit. |  | ||||||
|                       filter ((0<) . anumpostings) |  | ||||||
|     depthq = dbg "depthq" $ filterQuery queryIsDepth q |  | ||||||
| 
 |  | ||||||
| -- | Gather the account balance changes into a regular matrix including the accounts |  | ||||||
| -- from all columns |  | ||||||
| calculateAccountChanges :: ReportOpts -> Query -> [DateSpan] | calculateAccountChanges :: ReportOpts -> Query -> [DateSpan] | ||||||
|                         -> Map DateSpan [Posting] |                         -> Map DateSpan [Posting] | ||||||
|                         -> HashMap ClippedAccountName (Map DateSpan Account) |                         -> HashMap ClippedAccountName (Map DateSpan Account) | ||||||
| @ -310,6 +297,20 @@ calculateAccountChanges ropts q colspans colps | |||||||
| 
 | 
 | ||||||
|     elided = HM.singleton "..." $ M.fromList [(span, nullacct) | span <- colspans] |     elided = HM.singleton "..." $ M.fromList [(span, nullacct) | span <- colspans] | ||||||
| 
 | 
 | ||||||
|  | -- | Given a set of postings, eg for a single report column, gather | ||||||
|  | -- the accounts that have postings and calculate the change amount for | ||||||
|  | -- each. Accounts and amounts will be depth-clipped appropriately if | ||||||
|  | -- a depth limit is in effect. | ||||||
|  | acctChangesFromPostings :: ReportOpts -> Query -> [Posting] -> HashMap ClippedAccountName Account | ||||||
|  | acctChangesFromPostings ropts q ps = HM.fromList [(aname a, a) | a <- as] | ||||||
|  |   where | ||||||
|  |     as = filterAccounts . drop 1 $ accountsFromPostings ps | ||||||
|  |     filterAccounts = case accountlistmode_ ropts of | ||||||
|  |         ALTree -> filter ((depthq `matchesAccount`) . aname)      -- exclude deeper balances | ||||||
|  |         ALFlat -> clipAccountsAndAggregate (queryDepth depthq) .  -- aggregate deeper balances at the depth limit. | ||||||
|  |                       filter ((0<) . anumpostings) | ||||||
|  |     depthq = dbg "depthq" $ filterQuery queryIsDepth q | ||||||
|  | 
 | ||||||
| -- | Accumulate and value amounts, as specified by the report options. | -- | Accumulate and value amounts, as specified by the report options. | ||||||
| -- | -- | ||||||
| -- Makes sure all report columns have an entry. | -- Makes sure all report columns have an entry. | ||||||
| @ -358,7 +359,7 @@ accumValueAmounts ropts j priceoracle colspans startbals acctchanges = | |||||||
|     zeros = M.fromList [(span, nullacct) | span <- colspans] |     zeros = M.fromList [(span, nullacct) | span <- colspans] | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| -- | Group a date-separated list of postings into a regular matrix with rows | -- | Lay out a set of postings grouped by date span into a regular matrix with rows | ||||||
| -- given by AccountName and columns by DateSpan, then generate a MultiBalanceReport | -- given by AccountName and columns by DateSpan, then generate a MultiBalanceReport | ||||||
| -- from the columns. | -- from the columns. | ||||||
| generateMultiBalanceReport :: ReportOpts -> Query -> Journal -> PriceOracle | generateMultiBalanceReport :: ReportOpts -> Query -> Journal -> PriceOracle | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user