fix: web: Handle non-regular postings in the add transaction form. (#1058)
This commit is contained in:
		
							parent
							
								
									04c35e1519
								
							
						
					
					
						commit
						4cb631c0f2
					
				| @ -152,7 +152,10 @@ validatePostings acctRes amtRes = let | ||||
|   zipRow (Left e) (Left e') = Left (Just e, Just e') | ||||
|   zipRow (Left e) (Right _) = Left (Just e, Nothing) | ||||
|   zipRow (Right _) (Left e) = Left (Nothing, Just e) | ||||
|   zipRow (Right acct) (Right amt) = Right (nullposting {paccount = acct, pamount = mixedAmount amt}) | ||||
|   zipRow (Right acct') (Right amt) = Right (nullposting {paccount = acct, ptype = atype, pamount = mixedAmount amt}) | ||||
|     where | ||||
|       acct = accountNameWithoutPostingType acct' | ||||
|       atype = accountNamePostingType acct' | ||||
| 
 | ||||
|   errorToFormMsg = first (("Invalid value: " <>) . T.pack . | ||||
|                           foldl (\s a -> s <> parseErrorTextPretty a) "" . | ||||
| @ -160,7 +163,7 @@ validatePostings acctRes amtRes = let | ||||
|   checkAccount = errorToFormMsg . runParser (accountnamep <* eof) "" . T.strip | ||||
|   checkAmount = errorToFormMsg . runParser (evalStateT (amountp <* eof) nulljournal) "" . T.strip | ||||
| 
 | ||||
|   -- Add errors to forms with zero or one rows if the form is not a FormMissing | ||||
|   -- Add errors to forms with zero rows if the form is not a FormMissing | ||||
|   result :: [(Text, Text, Either (Maybe Text, Maybe Text) Posting)] | ||||
|   result = case (acctRes, amtRes) of | ||||
|     (FormMissing, FormMissing) -> postings | ||||
| @ -168,7 +171,6 @@ validatePostings acctRes amtRes = let | ||||
|       [] -> [ ("", "", Left (Just "Missing account", Just "Missing amount")) | ||||
|            , ("", "", Left (Just "Missing account", Nothing)) | ||||
|            ] | ||||
|       [x] -> [x, ("", "", Left (Just "Missing account", Nothing))] | ||||
|       xs -> xs | ||||
| 
 | ||||
|   -- Prepare rows for rendering - resolve Eithers into error messages and pad to | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user