convert: more useful --debug output, show csv record

This commit is contained in:
Simon Michael 2009-11-19 06:29:49 +00:00
parent b197693197
commit 43e327d05b

View File

@ -10,8 +10,8 @@ import Data.List.Split (splitOn)
import Options -- (Opt,Debug) import Options -- (Opt,Debug)
import Ledger.Types (Ledger,AccountName) import Ledger.Types (Ledger,AccountName)
import Ledger.Utils (strip) import Ledger.Utils (strip)
import System.IO (stderr, hPutStrLn) import System.IO (stderr, hPutStr)
import Text.CSV (parseCSVFromFile) import Text.CSV (parseCSVFromFile, printCSV)
import Text.Printf (printf) import Text.Printf (printf)
import Text.RegexPR (matchRegexPR) import Text.RegexPR (matchRegexPR)
import Data.Maybe import Data.Maybe
@ -60,7 +60,7 @@ print_ledger_txn debug (baseacct,fieldpositions,rules) csvrecord
| length csvrecord < maximum (map (fromMaybe 0) fieldpositions) + 1 = return () | length csvrecord < maximum (map (fromMaybe 0) fieldpositions) + 1 = return ()
| otherwise = | otherwise =
do do
when debug $ hPutStrLn stderr $ show csvrecord when debug $ hPutStr stderr $ printCSV [csvrecord]
let date = maybe "" (csvrecord !!) (fieldpositions !! 0) let date = maybe "" (csvrecord !!) (fieldpositions !! 0)
number = maybe "" (csvrecord !!) (fieldpositions !! 1) number = maybe "" (csvrecord !!) (fieldpositions !! 1)
description = maybe "" (csvrecord !!) (fieldpositions !! 2) description = maybe "" (csvrecord !!) (fieldpositions !! 2)
@ -70,7 +70,6 @@ print_ledger_txn debug (baseacct,fieldpositions,rules) csvrecord
unknownacct | (readDef 0 amount' :: Double) < 0 = "income:unknown" unknownacct | (readDef 0 amount' :: Double) < 0 = "income:unknown"
| otherwise = "expenses:unknown" | otherwise = "expenses:unknown"
(acct,desc) = choose_acct_desc rules (unknownacct,description) (acct,desc) = choose_acct_desc rules (unknownacct,description)
when debug $ hPutStrLn stderr $ printf "using %s for %s" desc description
printf "%s%s %s\n" (fixdate date) (if not (null number) then printf " (%s)" number else "") desc printf "%s%s %s\n" (fixdate date) (if not (null number) then printf " (%s)" number else "") desc
printf " %-30s %15s\n" acct (printf "$%s" amount' :: String) printf " %-30s %15s\n" acct (printf "$%s" amount' :: String)
printf " %s\n\n" baseacct printf " %s\n\n" baseacct