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 |    ,defaultcommoditydirectivep | ||||||
|    ,commodityconversiondirectivep |    ,commodityconversiondirectivep | ||||||
|    ,ignoredpricecommoditydirectivep |    ,ignoredpricecommoditydirectivep | ||||||
|  |    ,decimalmarkdirectivep | ||||||
|    ] |    ] | ||||||
|   ) <?> "directive" |   ) <?> "directive" | ||||||
| 
 | 
 | ||||||
| @ -317,6 +318,7 @@ includedirectivep = do | |||||||
|       jparsedefaultyear      = jparsedefaultyear j |       jparsedefaultyear      = jparsedefaultyear j | ||||||
|       ,jparsedefaultcommodity = jparsedefaultcommodity j |       ,jparsedefaultcommodity = jparsedefaultcommodity j | ||||||
|       ,jparseparentaccounts   = jparseparentaccounts j |       ,jparseparentaccounts   = jparseparentaccounts j | ||||||
|  |       ,jparsedecimalmark      = jparsedecimalmark j | ||||||
|       ,jparsealiases          = jparsealiases j |       ,jparsealiases          = jparsealiases j | ||||||
|       ,jcommodities           = jcommodities j |       ,jcommodities           = jcommodities j | ||||||
|       -- ,jparsetransactioncount = jparsetransactioncount j |       -- ,jparsetransactioncount = jparsetransactioncount j | ||||||
| @ -599,6 +601,18 @@ commodityconversiondirectivep = do | |||||||
|   lift restofline |   lift restofline | ||||||
|   return () |   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 | --- *** transactions | ||||||
| 
 | 
 | ||||||
| -- | Parse a transaction modifier (auto postings) rule. | -- | 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