Integritätsprüfung: Prüfungen, besitzende Modelle, Zeitplanung

Aufbau des Integritäts-Runners, die Prüfcodes und ihre besitzenden Modelle, das Laufprotokoll, die Einstellungen und die systemweite Zeitplanung sowie Berechtigungen und Inhaltsbereich.

Der Integritäts-Runner liest nur: Je Prüfung listet er die Abweichungen mit einem Link zur Korrekturstelle. Die SQL der Prüfungen liegt in getIntegrityFindings() der besitzenden Modelle; das Modell report/integrity wählt aus, führt zusammen und protokolliert. Der Einstellungsbildschirm hält je Prüfung Status, Reihenfolge und Zeitplan; Anlegen und Löschen gibt es nicht, denn eine Prüfung ist Code.

Prüfungen und besitzende Modelle

CodeBesitzendes Modell
orphan_settlementfinance/transaction
orphan_itemfinance/transaction
settled_revocablefinance/transaction
advance_paymentfinance/transaction
import_mismatchbank/bankimport
import_unbookedbank/bankimport
periodic_datesfinance/invoice
open_cashfinance/invoice
missing_partnerfinance/invoice
advance_finalfinance/invoice
partner_taxhufinance/invoice
storno_matchfinance/invoice
tech_partnerfinance/invoice
dup_numberfinance/invoice
doc_clientfinance/invoice

Datenmodell

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

TabelleRolle
integrity_checkStatus, Reihenfolge, Cron-Einstellung je Prüfung
integrity_runLaufprotokoll mit Quelle (manual, geplant)
cron_queuesystemweite integrity_check-Vorlagen

Ablauf

  1. report/integrity.list: die gewählte oder alle aktiven Prüfungen auf der Menge der erlaubten Firmen (eine fremde Firmen-ID ergibt ein leeres Ergebnis); mit run=1 mit Quelle manual protokolliert, beim bloßen Ansehen nicht. Blättern (auch all); je Zeile ein Link zu Buchung, Importzeile oder Rechnung bei vorhandenem list-Recht. Einstellungs-Link bei canSee(report/integritycheck, list).
  2. report/integritycheck.list: Prüfungen mit Zeitplanübersicht (aus den Zeitplanerzeilen, verlinkt mit cron/cronqueue + list) und letzten Läufen.
  3. report/integritycheck.save, enable, disable: Status, Reihenfolge, Cron ein/aus und gemeinsamer Zeitgeber (stündlich, täglich, wöchentlich, monatlich); die Cron-Einstellung wird als systemweite (company_id = 0) integrity_check-Vorlage in den Zeitplaner geschrieben, beim Ausschalten deaktiviert.
  4. report/integritycheck.run: eine Prüfung mit Quelle manual auf den erlaubten Firmen des Benutzers (Super: alle), protokolliert.
  5. Hintergrund: Job integrity_check → Catalog masterdata/cronqueue::runIntegrityChecks. Eine Zeile aus einer Vorlage (payload.check_code) führt eine Prüfung aus, bei Mandantenziel nur auf dessen Daten; die stündliche Systemzeile ohne Nutzlast führt die Prüfungen ohne eigenen Zeitplan aus. Ein erfolgreicher Lauf ohne Abweichung sendet keine Ergebnis-E-Mail.

Berechtigungen

  • report/integrity: list, debug; report/integritycheck: list, edit (und Basisrecht modify), run, debug. Keiner in den Seeds eingestuft.
  • Inhaltsbereich: getCompanyGroupFilter beim Ausführen.
  • Das Schreiben der Cron-Vorlage beim Speichern verlangt cron/cronqueue + edit nicht; das Formular prüft es nur für die Anzeige.