Bankimport — zeilenweise Erkennung, manueller Abgleich, Regeln

Endpunkte der Rechte process, assign und rule, Reihenfolge der Vorschlagsengine, Schreiben der staged-Positionen, Rechtelücken und Regelverwaltung.

Die Endpunkte für manuelle Eingriffe liegen unter den Funktionsrechten process, assign und rule (keines in den Katalog-Seeds). Einige Endpunkte prüfen nur das Grundrecht zum Ändern.

Zeilenweise Erkennung (process)

  • recognizerow: Engine nur für diese Zeile (neu oder Wiederholung); ohne Treffer erklärt die Warnung, welche Regel an welcher Bedingung scheiterte und was verglichen wurde (explainRowRules).
  • clearstaged: löscht die staged-Positionen und setzt die Zeile auf New (Regel, vorgeschlagene Rechnung und Partner geleert); nur bei Status 1 oder 4.
  • Recht: Core modify + process; kein inhaltlicher Bereich an diesen Endpunkten.

Manueller Abgleich (assign)

  1. Das Modal sucht die offenen oder angefragten Rechnungen des Mandanten der Zeile (Eigentümer des Auszugs, vom Server aus der Bankkontobindung oder owner_account ermittelt) (autocompleteInvoice, suggest); bei Fremdwährungskonten auch in Währung und mit Kurs. Vorschlagsreihenfolge: Bankkonto + Name > Name > Betrag > Rechnungsnummer. Spiegelentwurf-Hinweis: draftmatch.
  2. Speichern (assignMultipleInvoices): Die gewählten Rechnungen (Liste oder Rechnung → Betrag, mit Währungsbetrag und Kurs) werden als staged-Positionen erfasst; ein Rest über 2 Forint wird eine eigene „schwebende“ staged-Zeile.
  3. updatestaged: Name und Betrag der staged-Positionen vor dem Abschluss.
  4. createcompany: minimales Partnerunternehmen über das Unternehmensmodell (Namensdublettenprüfung, kein Mandant; Name mindestens 3 Zeichen).
  5. repointpartner: ruft finance/invoice::repointInvoicePartner auf; verlangt Rechte auf den Eigentümer-Mandanten der Rechnung.

Recht: assign (bei updatestaged, createcompany, repointpartner zusätzlich Core modify); autocompleteInvoice und suggest filtern auf die über getCompanyGroupFilter erlaubten Mandanten.

Regeln (rule)

rulestatus (ein/aus) und ruledelete — Löschen nur, wenn keine Zeile auf die Regel verweist (matched_rule_id), sonst ein Fehler mit Anzahl. Wird statt der Rechte des Moduls bank/bankrule akzeptiert. Recht: Core modify + rule. „Create rule“ öffnet bank/bankrule.form.

Endpunkte nur mit Core-Recht

  • unidentified: eine „nicht identifizierte“ staged-Position mit dem vollen Betrag (Partner/Eigentümer je nach Richtung); die Zeile wird Recognized.
  • assignBankaccount: verknüpft die Partnerkontonummer der Zeile (GIRO/IBAN) mit einem Unternehmen (assignIbanToCompany, Dublettenprüfung auf das normalisierte Konto).
  • insert: alter Weg, direkter Beleg aus der staged-Zeile über das modelleigene addTransaction(); von der Vorlage nicht aufgerufen.
  • exporttemplate: Bankexport-Vorlage aus der Auszugszeile (Zielkonto + Partner + Verwendungszweck, Betrag 0), Dublettenprüfung auf das normalisierte Zielkonto; Recht: bankexport::edit + Core modify.

Datenmodell

Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation: transaction_import_staged, transaction_import_row, transaction_rule, invoice, company, transaction (Spiegelentwurf).

Bekannte Einschränkungen

Der speichernde Endpunkt assignMultipleInvoices prüft nur Core modify, weder das Funktionsrecht assign noch den inhaltlichen Bereich. Auch unidentified, assignBankaccount und insert prüfen nur Core modify.