Zum Inhalt springen

Kontierung konfigurieren

Das Kontierungs-Formular lässt sich im invoiceR sehr detailliert konfigurieren. Diese Seite beschreibt den Aufbau der Formulare und die Einstellungen, die das Verhalten des Kontierungs-Schritts steuern. Wie Anwender kontieren, steht unter Kontierung.

Weitere Seiten zum Thema:

  • Kontierungs-Felder: Felder ein- und ausblenden, Abhängigkeiten zwischen Feldern, Breite von Auswahllisten.
  • Kontierungs-Schaltflächen: zusätzliche Schaltflächen über der Kontierungstabelle, zum Beispiel für einen Excel-Import.

Die Formulare werden in der Datenbank definiert:

TabelleInhalt
conf.AccountingFormsdie Formulare (Kontierungs-Varianten), optional pro Geschäftsbereich und Rechnungsart
conf.AccountingFieldsdie einzelnen Felder: Datenfeld, Beschriftung, Editor-Typ, Breite, Sichtbarkeit
conf.AccountingFormFieldswelche Felder in welchem Formular in welcher Reihenfolge erscheinen
conf.AccountingFormMapperswelches Formular standardmässig gilt, optional pro Rolle, Geschäftsbereich und Rechnungsart

Ein Feld wird also einmal in conf.AccountingFields beschrieben und über conf.AccountingFormFields in ein oder mehrere Formulare eingebunden. Dieselben Tabellen verwendet auch der Daten-Editor.

Gibt es Kontierungs-Varianten, die völlig unabhängig voneinander sind, hinterlegst du am einfachsten mehrere Formulare. Beim Kontieren einer Position kann zwischen den Formularen gewechselt werden.

Unterscheiden sich die Varianten nur darin, dass einzelne Felder ausgeblendet oder gesperrt sind, genügt ein Formular. Steuere dann den Status der betroffenen Felder, siehe Kontierungs-Felder. So vermeidest du eine unübersichtliche Zahl von Formularen.

Ist ein Beleg bereits vollständig kontiert, überspringt der invoiceR die Kontierung und schickt den Beleg direkt in die Freigabe. Vollständig kontiert heisst: Der Belegbetrag ist nicht null, und die Summe der Kontierungs-Positionen entspricht dem Belegbetrag. Das ist zum Beispiel der Fall, wenn eine Standard-Kontierung aus dem Zuweisungs-Reglement den ganzen Betrag verteilt.

Fordert jemand zum Beispiel aus der Freigabe eine neue Kontierung an, wäre der Beleg bereits kontiert und würde die Kontierung erneut überspringen. Damit das nicht passiert, hinterlegst du auf der Route, die zum Schritt Automatische Zuweisung (ConditionalAssignmentNode) führt, diese Konfiguration (Spalte Configuration in conf.Routes):

{ "SkipAutomaticProceed": true }

Belege, die über diese Route kommen, gehen dann immer in die Kontierung. Steht derselbe Eintrag in der Konfiguration des Schritts selbst (conf.Nodes), gilt er für alle Belege.

Die Change-Detection erkennt, wenn ein Benutzer bestimmte Werte im Belegkopf oder in einer Kontierungs-Position ändert, und löst daraufhin eine Aktion aus. Möglich sind:

  • die Änderung mit altem und neuem Wert im Verlauf protokollieren,
  • bereits erteilte Freigaben auf der betroffenen Kontierungs-Position löschen.

Die Change-Detection wird pro Prozessschritt in der Konfiguration des Schritts (Spalte Configuration in conf.Nodes) als Liste hinterlegt. Fehlt die Liste oder ist sie leer, prüft der invoiceR nichts. Das spart Rechenzeit.

{
"ChangeDetection": [
{ "Place": 0, "LogLevel": 0, "VisaResetLevel": 0, "PropertyName": "SupplierId" },
{ "Place": 1, "LogLevel": 0, "VisaResetLevel": 2, "PropertyName": "AccountId" }
],
"SkipValidationForProceedSaving": false
}
EintragBedeutung
Placewo die Eigenschaft liegt: 0 Belegkopf, 1 Kontierungs-Position
LogLevelwie die Änderung protokolliert wird: 0 Debug, 1 Info, 2 Warnung, 3 Fehler
VisaResetLevel0 Freigaben bleiben, 2 Freigaben auf der Position werden gelöscht (1 Warnung ist nicht umgesetzt)
PropertyNametechnischer Name der Eigenschaft, zum Beispiel AccountId, CostcenterId, SupplierId

Im Beispiel wird eine Änderung des Lieferanten protokolliert. Ändert jemand das Konto einer Position, werden die Freigaben auf dieser Position gelöscht.

Die Change-Detection läuft innerhalb der Validierung. Würde eine Änderung Freigaben löschen, erhält der Benutzer zuerst eine Warnung. Erst wenn er sie bestätigt, werden die Freigaben gelöscht.

Damit die Warnung auch beim Klick auf die grüne Schaltfläche zum Weiterleiten erscheint, muss beim Weiterleiten ebenfalls validiert werden. Setze dazu in der Konfiguration des Schritts "SkipValidationForProceedSaving": false (Standard ist true).