Tolerate spaces in amount fields in CSV files

This commit is contained in:
Eric Mertens 2021-03-23 20:00:37 -07:00 committed by Simon Michael
parent b6e20dea13
commit 48d558fc7a

View File

@ -1182,6 +1182,8 @@ type CsvAmountString = Text
-- "" -- ""
simplifySign :: CsvAmountString -> CsvAmountString simplifySign :: CsvAmountString -> CsvAmountString
simplifySign amtstr simplifySign amtstr
| Just (' ',t) <- T.uncons amtstr = simplifySign t
| Just (t,' ') <- T.unsnoc amtstr = simplifySign t
| Just ('(',t) <- T.uncons amtstr, Just (amt,')') <- T.unsnoc t = simplifySign $ negateStr amt | Just ('(',t) <- T.uncons amtstr, Just (amt,')') <- T.unsnoc t = simplifySign $ negateStr amt
| Just ('-',b) <- T.uncons amtstr, Just ('(',t) <- T.uncons b, Just (amt,')') <- T.unsnoc t = simplifySign amt | Just ('-',b) <- T.uncons amtstr, Just ('(',t) <- T.uncons b, Just (amt,')') <- T.unsnoc t = simplifySign amt
| Just ('-',m) <- T.uncons amtstr, Just ('-',amt) <- T.uncons m = amt | Just ('-',m) <- T.uncons amtstr, Just ('-',amt) <- T.uncons m = amt