Skip to content

Changes

Summary

  1. Banking: manual CAMT.052 file import for periods before EBICS (details)
Commit ae5839cc12876467da2bc3b4c76a80a5fdda2f70 by info
Banking: manual CAMT.052 file import for periods before EBICS

Adds "Datei importieren (CAMT.052)" to the Import tab of /accounting/banking:
upload the online-banking export (ZIP or XML) -> dry-run preview -> chunked
import with progress. Nuxt-only, no Laravel staging: statements are created
Drafted directly in iDempiere and appear in step 2 (reconcile).

- camt052Parser: fflate + fast-xml-parser, ISO-8859-1 aware, camt.052/053 in
  any .001.xx version; unpacks ZIPs completely (sub-folders, nested ZIPs,
  extension-less XML, macOS resource forks ignored). The Volksbank export is
  ONE report paginated over the whole period, so entries are split into one
  statement per booking day with a derived balance chain (verified against the
  daily closings of the MT940 export of the same period).
- bankFileImport: duplicate detection by the bank reference (AcctSvcrRef <->
  C_BankStatementLine.EftTrxID, the column the EBICS import fills), fallback
  date+amount+memo multiset; foreign same-day statements are never modified
  (conflict), own Drafted ones are resumed; balance-chain check against existing
  iDempiere statements; plan recomputed live before every write.
- Routes accounting/bank-file-import/{preview,import}; parsed uploads parked in
  data/bank-file-import (git-ignored, 24 h), originals archived on import.
- Reconcile statements list: $top 100 -> 500 (history imports).
- fast-xml-parser declared as a direct dependency (was optional transitive).
- MT940 / CSV / PDF deliberately unsupported (MT940 discontinued by DK 11/2025).
- Translations banking_file_* (en/de/es); sample bank exports git-ignored.
The file was addedapp/components/accounting/banking/BankFileImportModal.vue
The file was modifiedapp/pages/accounting/banking/index.vue (diff)
The file was modifiedserver/api/accounting/bank-reconciliation/statements.get.ts (diff)
The file was addedserver/utils/banking/bankFileImport.ts
The file was modifiedpackage.json (diff)
The file was addedserver/api/accounting/bank-file-import/import.post.ts
The file was addedserver/utils/banking/camt052Parser.ts
The file was modifiedpackage-lock.json (diff)
The file was modified.gitignore (diff)
The file was addedserver/api/accounting/bank-file-import/preview.post.ts
The file was modifiedapp/assets/langs/shared.js (diff)
The file was modifiedapp/components/accounting/banking/BankImportTab.vue (diff)