Hauptbuchungen — Datenmodell, Korrektur, Export, Einschränkungen

Kopf- und Zeilentabelle der Kontierungsbelege, transaktionales Speichern manueller Korrekturen, RLB-Export, Löschen und bekannte Lücken des Moduls.

Das Modul finance/entry listet Buchungssätze (Kontierungsbelege), erlaubt manuelle Korrekturen und exportiert im RLB-Format. Das Modul befindet sich in Entwicklung.

Datenmodell

Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation.

TabelleRolleHauptfelder
entryKopf des KontierungsbelegsBuchungsdatum, exported_at, verknüpfte Rechnung
entry_itemZeilenNetto- und Bruttoseite: ledger_net, ledger_gross, Beträge
invoice_entry_dateBuchungsdatum der Rechnungwird beim Löschen entfernt

Die Liste liest außerdem invoice, company, transaction.

Manuelle Korrektur (save, entry_id > 0)

  1. Je Zeile hat das Sachkonto 2–8 Ziffern (error_entry_ledger), der Betrag ist eine Zahl (error_entry_amount), mindestens eine Zeile (error_entry_no_items).
  2. Soll- und Habensumme dürfen um höchstens 0,01 abweichen (error_entry_unbalanced).
  3. replaceEntryItems() ersetzt die Zeilen in einer Transaktion; das Buchungsdatum wird neu geschrieben, exported_at geleert.

Weitere Endpunkte (nur Core-Recht)

  • delete: Bei einem Rechnungssatz wird der Rechnungsstatus 2 und die Zeile invoice_entry_date entfernt; danach physisches Löschen (deleteEntry). Nur Core modify.
  • csv: RLB-Importdatei aus den markierten Sätzen (Dlbtrlb, Zuordnung der Zahlungsartcodes, MwSt.-Seite), ISO-8859-2-kodiert; exportierte Sätze erhalten exported_at. Nur Core modify.
  • companygroup: Mitgliedsunternehmen einer Gruppe mit Bereich; Core access.

Berechtigungen

  • list (UNMAPPED) in getList(); edit im Formular (canSave) und beim Speichern zusammen mit Core modify; debug (nur alte Rechtetabelle).
  • Die Unternehmensauswahl des Filters ist bereichsbezogen, Listenabfrage und Korrektur erhalten jedoch keine Bereichsbedingung.

Bekannte Einschränkungen

  • Der Schlüssel add fehlt in den Seeds; der alte Zweig „neuer Satz“ (entry_id = 0) übergibt den POST an addInvoice() (notify_source = 'ledger entry'), legt also eine Rechnung an, keinen Buchungssatz.
  • Der Link deleteitems in der Liste zeigt auf eine im Controller nicht vorhandene Methode.
  • Die Listenabfrage wendet keinen inhaltlichen Bereich an.