imp: journal: support decimal-mark directive in journal files
To match csv-rule and override amount-style as described in https://github.com/simonmichael/hledger/issues/1670
This commit is contained in:
		
							parent
							
								
									66b969a74c
								
							
						
					
					
						commit
						fb817ffa55
					
				| @ -246,6 +246,7 @@ directivep = (do | ||||
|    ,defaultcommoditydirectivep | ||||
|    ,commodityconversiondirectivep | ||||
|    ,ignoredpricecommoditydirectivep | ||||
|    ,decimalmarkdirectivep | ||||
|    ] | ||||
|   ) <?> "directive" | ||||
| 
 | ||||
| @ -317,6 +318,7 @@ includedirectivep = do | ||||
|       jparsedefaultyear      = jparsedefaultyear j | ||||
|       ,jparsedefaultcommodity = jparsedefaultcommodity j | ||||
|       ,jparseparentaccounts   = jparseparentaccounts j | ||||
|       ,jparsedecimalmark      = jparsedecimalmark j | ||||
|       ,jparsealiases          = jparsealiases j | ||||
|       ,jcommodities           = jcommodities j | ||||
|       -- ,jparsetransactioncount = jparsetransactioncount j | ||||
| @ -599,6 +601,18 @@ commodityconversiondirectivep = do | ||||
|   lift restofline | ||||
|   return () | ||||
| 
 | ||||
| -- | Read a valid decimal mark from the decimal-mark directive e.g | ||||
| -- | ||||
| -- decimal-mark , | ||||
| decimalmarkdirectivep :: JournalParser m () | ||||
| decimalmarkdirectivep = do | ||||
|   string "decimal-mark" <?> "decimal mark" | ||||
|   lift skipNonNewlineSpaces1 | ||||
|   mark <- satisfy isDecimalMark | ||||
|   modify' $ \j -> j{jparsedecimalmark=Just mark} | ||||
|   lift restofline | ||||
|   return () | ||||
| 
 | ||||
| --- *** transactions | ||||
| 
 | ||||
| -- | Parse a transaction modifier (auto postings) rule. | ||||
|  | ||||
							
								
								
									
										4
									
								
								hledger/test/journal/commas.journal
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								hledger/test/journal/commas.journal
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| decimal-mark , | ||||
| 2021-05-01 YANDEX.PLUS | ||||
|     Assets:Yandex            -199,00 RUB | ||||
|     Expenses:Unknown:RUB | ||||
							
								
								
									
										22
									
								
								hledger/test/journal/directive-decimal-mark.test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								hledger/test/journal/directive-decimal-mark.test
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | ||||
| # 1. Commas specified as decimal mark | ||||
| $ hledger -f commas.journal bal | ||||
|          -199,00 RUB  Assets:Yandex | ||||
|           199,00 RUB  Expenses:Unknown:RUB | ||||
| -------------------- | ||||
|                    0   | ||||
| >=0 | ||||
| 
 | ||||
| # 2. Include file with different decimal mark | ||||
| < | ||||
| commodity 1000.00 RUB | ||||
| include commas.journal | ||||
| 2021-05-19 MTS Phone | ||||
|     Assets:Yandex         -100.5 RUB | ||||
|     Expenses:Phone         100.5 RUB | ||||
| $ hledger -f - bal | ||||
|          -299.50 RUB  Assets:Yandex | ||||
|           100.50 RUB  Expenses:Phone | ||||
|           199.00 RUB  Expenses:Unknown:RUB | ||||
| -------------------- | ||||
|                    0   | ||||
| >=0 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user