BankAccountRecordDO.kt| Field | Type | DB Column | Notes |
|---|---|---|---|
bankAccount | BankAccountDO? | banking_account_fk | ManyToOne LAZY, IdOnlySerializer |
amount | BigDecimal? | amount(12,2) | CURRENCY type |
date | LocalDate? | date_col | |
valueDate | LocalDate? | value_date | Valuta date (when funds become available) |
type | String? | LENGTH_TEXT | Transaction type code (e.g. "SEPA Credit Transfer") |
subject | String? | LENGTH_TEXT | Payment reference/purpose |
...and: comment, currency, debteeId, mandateReference, customerReference, collectionReference, info, receiverSender, iban, bic, checksum | |||
fun buildCheckSum(): String {
sb.append(amount?.setScale(2)).append('|')
sb.append(StringHelper.removeNonDigitsAndNonASCIILetters(subject)).append('|')
... // 8 fields concatenated with | separator
return DigestUtils.sha256Hex(sb.toString())
}buildCheckSum() computes a SHA-256 hash over 8 normalized fields. ensureChecksum (computed property) auto-generates the checksum if null. Used by BankAccountRecordPagesRest (#55) for doublet detection: two records with identical checksums but different IDs are flagged as potential duplicates. Also used to detect manual manipulation of imported records.
JPA entity for individual bank account transactions (records). 15 fields covering standard bank statement data: amount, date, valueDate, type, subject, currency, SEPA fields (debteeId, mandateReference, customerReference, collectionReference), receiver/sender, IBAN, BIC. Plus a checksum field for detecting post-import manipulation.