Bankimport — Abschluss, Storno, Überspringen, Löschen

Die Schritte von staged-Positionen zum Beleg, Dublettenschutz und Saldenabgleich der Importzeile, Regeln für Storno und Überspringen sowie die Rechte.

Der Abschluss (final, finalizerow) erzeugt aus den staged-Positionen einen Bankbeleg (Kopf transaction + Positionen), gleicht den offenen Saldo der Rechnungen aus und setzt die Zeile auf Booked. Eine Zeile wird nur gebucht, wenn mindestens ein gültiger Beleg zu ihr gehört und ihr Saldo übereinstimmt.

Abschluss (finalizeAllStagedTransactions())

  1. Verarbeitet alle (oder eine) Zeilen mit Status 1 nach Valuta in einer Datenbanktransaktion.
  2. Dublettenschutz: Hat die Zeile schon einen gültigen Beleg, wird sie übersprungen.
  3. Kopf + Positionen aus den staged-Positionen; Nummer in der Form Konto-Richtung-Laufnummer (finance/transaction::nextTransactionNo, sonst Präfix IMP- mit Zeilen-ID); Valuta, Auszugsnummer, Anfangs- und Endsaldo.
  4. Der offene Saldo der Rechnung wird ausgeglichen; Zahlungsauftragspositionen werden „bank settled“ (paymentorder::markItemsBankSettled); ein mandantenübergreifender Spiegelentwurf entsteht; das Partnerbankkonto wird mit dem Partner verknüpft.
  5. Zum Schluss wird der Saldo der Importzeile mit den Belegen verglichen (importRowBalance()); bei Abweichung Rücksetzung. Bei Erfolg ist die Zeile Booked.
  6. Datenbankfehler je Zeile in der Antwort (error_finalize_row).

Storno (stornorow)

Löscht die Belege der Zeile mit finance/transaction::deleteTransactionWithRollback() (offene Salden werden zurückgeschrieben); ohne Beleg (verwaiste Zeile) wird die Zeile auf New gesetzt. Bei abgeschlossenem Beleg (Status 1) gesperrt: zuerst im Belegmodul auf Entwurf zurücksetzen.

Überspringen und Löschen (delete)

  • skip: setzt die Zeile auf Status 5 (staged-Positionen gelöscht); erneuter Aufruf 5 → 0.
  • delete: löscht RAW-Zeile und staged-Positionen physisch; die Vorlage hat dafür keine Schaltfläche.
  • Eine Booked-Zeile (2) kann weder übersprungen noch gelöscht werden.

Datenmodell

Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation: transaction, transaction_item, transaction_settlement, invoice, transaction_import_row, transaction_import_staged, payment_order_item, bankaccount (Saldo).

Berechtigungen

  • final + Core modify: final, finalizerow, stornorow. finalizerow und stornorow prüfen den inhaltlichen Bereich (das aus owner_account ermittelte Unternehmen muss erlaubt sein); der Sammel-final prüft keinen Bereich.
  • delete + Core modify: skip, delete.
  • Keiner der Schlüssel steht in den Katalog-Seeds.