125 lines
4.3 KiB
Go
125 lines
4.3 KiB
Go
package qif
|
|
|
|
// qifTransactionClearedStatus represents the quicken interchange format (qif) transaction cleared status
|
|
type qifTransactionClearedStatus string
|
|
|
|
// Quicken interchange format transaction types
|
|
const (
|
|
qifClearedStatusUnreconciled qifTransactionClearedStatus = ""
|
|
qifClearedStatusCleared qifTransactionClearedStatus = "C"
|
|
qifClearedStatusReconciled qifTransactionClearedStatus = "R"
|
|
)
|
|
|
|
// qifTransactionType represents the quicken interchange format (qif) transaction type
|
|
type qifTransactionType string
|
|
|
|
// Quicken interchange format transaction types
|
|
const (
|
|
qifInvalidTransactionType qifTransactionType = ""
|
|
qifCheckTransactionType qifTransactionType = "KC"
|
|
qifDepositTransactionType qifTransactionType = "KD"
|
|
qifPaymentTransactionType qifTransactionType = "KP"
|
|
qifInvestmentTransactionType qifTransactionType = "KI"
|
|
qifElectronicPayeeTransactionType qifTransactionType = "KE"
|
|
)
|
|
|
|
// qifCategoryType represents the quicken interchange format (qif) category type
|
|
type qifCategoryType string
|
|
|
|
// Quicken interchange format category types
|
|
const (
|
|
qifIncomeTransaction qifCategoryType = "I"
|
|
qifExpenseTransaction qifCategoryType = "E"
|
|
)
|
|
|
|
// qifData defines the structure of quicken interchange format (qif) data
|
|
type qifData struct {
|
|
BankAccountTransactions []*qifTransactionData
|
|
CashAccountTransactions []*qifTransactionData
|
|
CreditCardAccountTransactions []*qifTransactionData
|
|
AssetAccountTransactions []*qifTransactionData
|
|
LiabilityAccountTransactions []*qifTransactionData
|
|
MemorizedTransactions []*qifMemorizedTransactionData
|
|
InvestmentAccountTransactions []*qifInvestmentTransactionData
|
|
Accounts []*qifAccountData
|
|
Categories []*qifCategoryData
|
|
Classes []*qifClassData
|
|
}
|
|
|
|
// qifTransactionData defines the structure of quicken interchange format (qif) transaction data
|
|
type qifTransactionData struct {
|
|
Date string
|
|
Amount string
|
|
ClearedStatus qifTransactionClearedStatus
|
|
Num string
|
|
Payee string
|
|
Memo string
|
|
Addresses []string
|
|
Category string
|
|
SubTransactionCategory []string
|
|
SubTransactionMemo []string
|
|
SubTransactionAmount []string
|
|
Account *qifAccountData
|
|
}
|
|
|
|
// qifInvestmentTransactionData defines the structure of quicken interchange format (qif) investment transaction data
|
|
type qifInvestmentTransactionData struct {
|
|
Date string
|
|
Action string
|
|
Security string
|
|
Price string
|
|
Quantity string
|
|
Amount string
|
|
ClearedStatus qifTransactionClearedStatus
|
|
Text string
|
|
Memo string
|
|
Commission string
|
|
AccountForTransfer string
|
|
AmountTransferred string
|
|
Account *qifAccountData
|
|
}
|
|
|
|
// qifMemorizedTransactionData defines the structure of quicken interchange format (qif) memorized transaction data
|
|
type qifMemorizedTransactionData struct {
|
|
qifTransactionData
|
|
TransactionType qifTransactionType
|
|
Amortization qifMemorizedTransactionAmortizationData
|
|
}
|
|
|
|
// qifMemorizedTransactionAmortizationData defines the structure of quicken interchange format (qif) memorized transaction amortization data
|
|
type qifMemorizedTransactionAmortizationData struct {
|
|
FirstPaymentDate string
|
|
TotalYearsForLoan string
|
|
NumberOfPayments string
|
|
NumberOfPeriodsPerYear string
|
|
InterestRate string
|
|
CurrentLoanBalance string
|
|
OriginalLoanAmount string
|
|
}
|
|
|
|
// qifAccountData defines the structure of quicken interchange format (qif) account data
|
|
type qifAccountData struct {
|
|
Name string
|
|
AccountType string
|
|
Description string
|
|
CreditLimit string
|
|
StatementBalanceDate string
|
|
StatementBalanceAmount string
|
|
}
|
|
|
|
// qifCategoryData defines the structure of quicken interchange format (qif) category data
|
|
type qifCategoryData struct {
|
|
Name string
|
|
Description string
|
|
TaxRelated bool
|
|
CategoryType qifCategoryType
|
|
BudgetAmount string
|
|
TaxScheduleInformation string
|
|
}
|
|
|
|
// qifClassData defines the structure of quicken interchange format (qif) class data
|
|
type qifClassData struct {
|
|
Name string
|
|
Description string
|
|
}
|