Add CAMTParser (ISO 20022) alongside MT940; accept both formats

- New CAMTParser project: namespace-agnostic parser for camt.052/053/054
  producing a statement/entry model aligned with the banking columns
  (account, amount, debit/credit, dates, counterparty, references, remittance).
- BankingService now auto-detects the upload format (XML→CAMT, else MT940)
  and maps either into the same fds__tt__bankingtransactions DataTable, so the
  bam/up handler transparently accepts both.
- Frontend (fis.bam.de.js) upload field now advertises accept for both
  MT940 (.sta/.mt940/.txt) and CAMT (.xml/.camt).
- Tests (+14, 151 total): CamtParserTests cover parsing (credit/debit,
  namespace-version agnostic, reversals), detection, and failure/edge inputs
  (empty, invalid XML, non-CAMT); BankingDualFormatTests verify CAMT and MT940
  both land in the same DataTable.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-05 14:39:54 +02:00
parent e04d590c3a
commit 7ee4e5302a
10 changed files with 714 additions and 77 deletions
+4
View File
@@ -12,6 +12,10 @@
<BuildType Solution="db-dev.processweb.de|Any CPU" Project="Debug" />
<BuildType Solution="server02.processweb.de|Any CPU" Project="Debug" />
</Project>
<Project Path="CAMTParser/CAMTParser.csproj">
<BuildType Solution="db-dev.processweb.de|*" Project="Debug" />
<BuildType Solution="server02.processweb.de|*" Project="Debug" />
</Project>
<Project Path="Fuchs.Tests/Fuchs.Tests.csproj">
<BuildType Solution="db-dev.processweb.de|*" Project="Debug" />
<BuildType Solution="server02.processweb.de|*" Project="Debug" />