95 lines
2.5 KiB
Markdown
95 lines
2.5 KiB
Markdown
Bank Support Modules
|
|
====================
|
|
|
|
The ```bank-account``` abstraction module is used for all bank account
|
|
statements processing. Only one loader is implemented at the moment,
|
|
```bank-fio``` for Fio CSV exports.
|
|
|
|
Modules
|
|
-------
|
|
|
|
### Bank Account
|
|
|
|
(import bank-account)
|
|
|
|
This module creates a thin abstraction layer for bank accounts and
|
|
transactions.
|
|
|
|
(make-bank-account number bank [transactions])
|
|
|
|
* ```number``` - account number
|
|
* ```bank``` - bank code
|
|
* ```transactions``` - optional list of initial transactions
|
|
|
|
Creates a new bank account data structure.
|
|
|
|
The data structure has the following accessors:
|
|
|
|
* ```(bank-account-transactions ba)``` - returns the transactions list
|
|
* ```(bank-account-number ba)```- retrieves the bank account number
|
|
* ```(bank-account-bank ba)``` - returns the bank account bank code
|
|
|
|
The underlying implementation is currently a plain list but is subject
|
|
to change in the future.
|
|
|
|
(bank-account-insert account transaction)
|
|
|
|
* ```account``` - bank account structure
|
|
* ```transaction``` - transaction structure to add
|
|
|
|
Adds (prepends) given ```transaction``` to the list of transactions of
|
|
given bank ```account```.
|
|
|
|
(make-bank-transaction i d a c v m t A B s)
|
|
|
|
* ```i``` - transaction id
|
|
* ```d``` - date
|
|
* ```a``` - amount
|
|
* ```c``` - currency
|
|
* ```v``` - variable symbol
|
|
* ```m``` - message
|
|
* ```t``` - transaction type
|
|
* ```A``` - account number
|
|
* ```B``` - bank code
|
|
* ```s``` - specific symbol
|
|
|
|
Creates new bank transaction data structure. The underlying
|
|
implementation is currently a record.
|
|
|
|
The following accessors are provided:
|
|
|
|
* ```bank-transaction-id```
|
|
* ```bank-transaction-date```
|
|
* ```bank-transaction-amount```
|
|
* ```bank-transaction-currency```
|
|
* ```bank-transaction-varsym```
|
|
* ```bank-transaction-message```
|
|
* ```bank-transaction-type```
|
|
* ```bank-transaction-account```
|
|
* ```bank-transaction-specsym```
|
|
|
|
More fields with accessors will be added as other modules will need
|
|
them.
|
|
|
|
(bank-accounts-member? bas acc bc)
|
|
|
|
* ```bas``` - list of known bank accounts
|
|
* ```acc``` - account number (string)
|
|
* ```bc``` - bank code (string)
|
|
|
|
Returns true if given combination of ```acc```/```bc``` is in
|
|
```bas```.
|
|
|
|
### Bank Fio
|
|
|
|
(import bank-fio)
|
|
|
|
This module implements parser/loader for Fio account statements in CSV
|
|
format.
|
|
|
|
(bank-fio-parse fn)
|
|
|
|
* ```fn``` - path to given file with CSV export
|
|
|
|
Uses ```csv-parse``` from ```util-csv``` module and loads the contents
|
|
into ```bank-account``` structure with list of ```bank-transaction```s.
|