Kontenplan — Datenmodell, zweigliedrige Zuordnung, Löschschutz

Tabellen des zentralen Sachkontenstamms, Speicherprüfungen, zweigliedrige Zuordnung zu Abschlusszeilen, Sammelzuordnung, Löschsperre und Rechte.

Das Modul ledger/account ist der zentrale (nicht mandantenbezogene) Sachkontenstamm. Je Konto speichert es eine zweigliedrige Zuordnung (Soll / Haben) zu einer Bilanz- oder GuV-Zeile. Einen inhaltlichen Bereich gibt es nicht, da es sich um zentrale Stammdaten handelt.

Datenmodell

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

TabelleRolle
accountdie Sachkontonummer ist selbst der Schlüssel; ungarischer Name: account_name
gl_account_descriptionNamen in weiteren Sprachen
gl_account_extArt (customer, supplier, cash, bank, opening, closing, other, total), Klassifizierung (BS, PL oder leer), Währung, Zuordnung der beiden Zweige
gl_statement_schemaAbschlusszeilen (lesend)

Speichern (save)

  1. Sachkontonummer 1–10 Ziffern; bei neuem Konto noch nicht vorhanden (error_account_id, error_account_exists).
  2. Ungarischer Name mindestens 2 Zeichen (error_name); gültige Art und Klassifizierung (error_kind, error_classification).
  3. Bei klassifiziertem Konto sind beide Zweige Pflicht (error_debit_row, error_credit_row); die Zeile muss existieren, zuordenbar, aktiv und im passenden Abschluss sein (error_row_not_found, error_row_not_selectable, error_row_inactive, error_row_wrong_statement).
  4. Neues Konto: is_new = 1.

Sammelzuordnung (bulkmap): setzt beide Zweige der markierten klassifizierten Konten in einem Schritt und überspringt nicht klassifizierte (error_no_selection, error_bulk_rows). Status: enable, disable (setStatus).

Löschen

Physisches Löschen aus den drei Tabellen, wenn kein Buchungsbein (Netto-, MwSt.- oder Bruttobein von entry_item) und kein Kontierungsparameter (contir_config.config_value) darauf verweist; sonst eine Fehlermeldung mit Anzahl.

Zuordnungszustand

Der Listenkopf zeigt das Ergebnis von getMappingHealth (fehlend, halb zugeordnet, toter Verweis); getMissingTables warnt vor fehlenden Tabellen.

Berechtigungen

  • list (UNMAPPED, gl_account_v1.sql).
  • add fehlt in den Seeds, daher fordert canSave(0) edit; die Schaltfläche + erscheint beim Recht edit.
  • edit + Core modify für Speichern, Status und Sammelzuordnung (das Formular prüft nur edit); delete + Core modify; debug; statusdelete nur Seed (BASE).