Safe Haskell | None |
---|
- newtype Date = Date {}
- data IncDec
- newtype UNumber = UNumber {}
- newtype FitId = FitId {}
- newtype Payee = Payee {}
- newtype Desc = Desc {}
- data Amount
- mkAmount :: String -> Maybe Amount
- translate :: IncDec -> Translator -> DrCr
- type DbMap = Map UNumber Posting
- type DbList = [(UNumber, Posting)]
- data Posting = Posting {}
- newtype DbLocation = DbLocation {
- unDbLocation :: Text
- newtype FitAcctName = FitAcctName {}
- newtype FitAcctDesc = FitAcctDesc {}
- newtype ParserDesc = ParserDesc {
- unParserDesc :: Text
- newtype PennyAcct = PennyAcct {}
- data Translator
- newtype DefaultAcct = DefaultAcct {}
- newtype Currency = Currency {}
- data FitAcct = FitAcct {
- fitAcctName :: FitAcctName
- fitAcctDesc :: FitAcctDesc
- dbLocation :: DbLocation
- pennyAcct :: PennyAcct
- defaultAcct :: DefaultAcct
- currency :: Currency
- qtySpec :: S3 Radix PeriodGrp CommaGrp
- translator :: Translator
- side :: Side
- spaceBetween :: SpaceBetween
- parser :: (ParserDesc, FitFileLocation -> IO (Exceptional String [Posting]))
- toLincolnPayee :: Desc -> Payee -> Payee
- data Config = Config {}
- newtype FitFileLocation = FitFileLocation {}
- newtype AllowNew = AllowNew {
- unAllowNew :: Bool
- type ParserFn = FitFileLocation -> IO (Exceptional String [Posting])
- type Mode = Maybe FitAcct -> Mode (ProgName -> String) (IO ())
Documentation
The date reported by the financial institution.
Reports changes in account balances. Avoids using debit and credit as these terms are used differently by the bank than in your ledger (that is, the bank reports it from their perspective, not yours) so instead the terms increase and decrease are used. IncDec is used to record the bank's transactions so increase and decrease are used in the same way you would see them on a bank statement, whether it's a credit card, loan, checking account, etc.
A unique number assigned by Brenner to identify each posting. This is unique within a particular financial institution account only.
For Brenner to work, the bank has to assign unique identifiers to each transaction that it gives you for download. This is the easiest reliable way to ensure duplicates are not processed multiple times. (There are other ways to accomplish this, but they are much harder and less reliable.) If the bank does not do this, you can't use Brenner.
Some financial institutions assign a separate Payee in addition to a description. Others just have a single Description field. If this institution uses both, put something here. Brenner will prefer the Payee if it is not zero length; then it will use the Desc.
The transaction description. Some institutions assign only a description (sometimes muddling a payee with long codes, some dates, etc). Brenner prefers the Payee if there is one, and uses a Desc otherwise.
The amount of the transaction. Do not include any leading plus or minus signs; this should be only digits and a decimal point.
mkAmount :: String -> Maybe AmountSource
Ensures that incoming Amounts have only digits and (up to) one decimal point.
translate :: IncDec -> Translator -> DrCrSource
newtype DbLocation Source
Where is the database of postings?
newtype FitAcctName Source
A name used to refer to a batch of settings.
newtype FitAcctDesc Source
Text description of the financial institution account.
newtype ParserDesc Source
Text description of the parser itself.
The Penny account holding postings for this financial
institution. For instance it might be Assets:Checking
if this is
your checking account, Liabilities:Credit Card
, or whatever.
data Translator Source
What the financial institution shows as an increase or decrease has to be recorded as a debit or credit in the PennyAcct.
IncreaseIsDebit | That is, when the financial institution shows a posting that increases your account balance, you record a debit. You will probably use this for deposit accounts, like checking and savings. These are asset accounts so if the balance goes up you record a debit in your ledger. |
IncreaseIsCredit | That is, when the financial institution shows a posting that increases your account balance, you record a credit. You will probably use this for liabilities, such as credit cards and other loans. |
newtype DefaultAcct Source
The default account to place unclassified postings in. For
instance Expenses:Unclassified
.
The currency for all transactions, e.g. $
.
A batch of settings representing a single financial institution account.
FitAcct | |
|
Configuration for the Brenner program. You can optionally have a default FitAcct, which is used if you do not specify any FitAcct on the command line. You can also name any number of additional FitAccts. If you do not specify a default FitAcct, you must specify a FitAcct on the command line.
Config | |
|
newtype FitFileLocation Source
type ParserFn = FitFileLocation -> IO (Exceptional String [Posting])Source
All parsers must be of this type.