Merge pull request #126 from adept/master
Fix for assigning multiple fields in CSV parsing
This commit is contained in:
		
						commit
						d913ee96f7
					
				| @ -623,9 +623,9 @@ showRecord r = "the CSV record is:       "++intercalate ", " (map show r) | ||||
| getEffectiveAssignment :: CsvRules -> CsvRecord -> JournalFieldName -> Maybe FieldTemplate | ||||
| getEffectiveAssignment rules record f = lastMay $ assignmentsFor f | ||||
|   where | ||||
|     assignmentsFor f = map snd $ toplevelassignments ++ conditionalassignments | ||||
|     assignmentsFor f = map snd $ filter ((==f).fst) $ toplevelassignments ++ conditionalassignments | ||||
|       where | ||||
|         toplevelassignments    = filter ((==f).fst) $ rassignments rules | ||||
|         toplevelassignments    = rassignments rules | ||||
|         conditionalassignments = concatMap snd $ filter blockMatches $ blocksAssigning f | ||||
|           where | ||||
|             blocksAssigning f = filter (any ((==f).fst) . snd) $ rconditionalblocks rules | ||||
|  | ||||
| @ -35,3 +35,12 @@ | ||||
| # >>>2 /using conversion rules file.*t.rules/ | ||||
| # >>>=0 | ||||
| 
 | ||||
| # 4. handle conditions assigning multiple fields | ||||
|  rm -rf t.rules$$; printf 'fields date, description, amount\ndate-format %%d/%%Y/%%m\ncurrency $\naccount1 assets:myacct\nif Flubber\n  account2 acct\n  comment cmt' >t.rules$$; echo '10/2009/09,Flubber Co,50' | hledgerdev -f- print --rules-file t.rules$$; rm -rf t.rules$$ | ||||
| >>> | ||||
| 2009/09/10 Flubber Co    ;cmt | ||||
|     acct                   $-50 | ||||
|     assets:myacct           $50 | ||||
| 
 | ||||
| >>>2 /using conversion rules file.*t.rules/ | ||||
| >>>=0 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user