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.
| Tabelle | Rolle |
|---|---|
account | die Sachkontonummer ist selbst der Schlüssel; ungarischer Name: account_name |
gl_account_description | Namen in weiteren Sprachen |
gl_account_ext | Art (customer, supplier, cash, bank, opening, closing, other, total), Klassifizierung (BS, PL oder leer), Währung, Zuordnung der beiden Zweige |
gl_statement_schema | Abschlusszeilen (lesend) |
Speichern (save)
- Sachkontonummer 1–10 Ziffern; bei neuem Konto noch nicht vorhanden (
error_account_id,error_account_exists). - Ungarischer Name mindestens 2 Zeichen (
error_name); gültige Art und Klassifizierung (error_kind,error_classification). - 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). - 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).addfehlt in den Seeds, daher fordertcanSave(0)edit; die Schaltfläche + erscheint beim Rechtedit.edit+ Coremodifyfür Speichern, Status und Sammelzuordnung (das Formular prüft nuredit);delete+ Coremodify;debug;statusdeletenur Seed (BASE).