Die Seite wurde neu angelegt: „= DMS (Dokumentenmanagementsystem) = Das DMS-Modul dient der zentralen Verwaltung, Klassifizierung und Verknüpfung von Dokumenten wie Rechnungen, Angebote, Auftragsbestätigungen und sonstigen Belegen. Es ist eng mit Kontakten, Projekten und der Kontakt-Historie verbunden. == Routen & Controller == Route: dms.index Controller: \App\Http\Controllers\DMS\DmsController Methode: index Beschreibung: Zeigt die Index-Ansicht des Dokumentenmanagementsystems…“
 
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
= DMS (Dokumentenmanagementsystem) =
MODUL-DOKUMENTATIONS-VORLAGE
=============================


Das DMS-Modul dient der zentralen Verwaltung, Klassifizierung und Verknüpfung von Dokumenten
Diese Vorlage dient zur einheitlichen technischen Dokumentation aller Module
wie Rechnungen, Angebote, Auftragsbestätigungen und sonstigen Belegen.
im ToolBoxx CRM. Sie ist für MediaWiki optimiert und kann als TXT vorbereitet
und anschließend ins Wiki übernommen werden.


Es ist eng mit Kontakten, Projekten und der Kontakt-Historie verbunden.
--------------------------------------------------
MODUL: <Modulname>
--------------------------------------------------


Kurzbeschreibung des Moduls (1–3 Sätze).
Welches Problem löst das Modul, wofür wird es eingesetzt?


== Routen & Controller ==


Route: dms.index
==================================================
Controller: \App\Http\Controllers\DMS\DmsController
1. ZIEL & ZWECK
Methode: index
==================================================
Beschreibung: Zeigt die Index-Ansicht des Dokumentenmanagementsystems


Die Index-Route rendert eine InertiaUI Table, welche über die Tabellenklasse
Beschreibt den fachlichen Zweck des Moduls.
App\Tables\Dms definiert ist.


- Welche Aufgaben erfüllt das Modul?
- Für welche Benutzerrollen ist es relevant?
- In welchen Geschäftsprozessen wird es eingesetzt?


== Tabellenarchitektur ==


Die DMS-Übersicht basiert auf einer InertiaUI Table.
==================================================
2. BENUTZERHANDBUCH (KURZÜBERSICHT)
==================================================


Eine Tabelle besteht aus folgenden Kernbestandteilen:
(Optional, falls Modul auch für Endanwender relevant ist)
- Resource (Datenquelle / Eloquent Model)
- Columns (sichtbare Spalten)
- Filters (Filtermöglichkeiten)
- Actions (Zeilenaktionen)
- Transforms (Anpassung der Ausgabeformate)


- Wo findet der Benutzer das Modul im System?
- Welche Hauptfunktionen sind sichtbar?
- Welche Aktionen sind typisch?


== Resource (Datenquelle) ==
Beispiel:
- Dokumente hochladen
- Dokumente filtern
- Dokumente verknüpfen


Verwendetes Model:
App\Models\DMS\Dms


Suchfelder:
==================================================
- dokument_titel
3. ROUTEN & CONTROLLER
- dokument_inhalt
==================================================


Standardsortierung:
Tabelle aller relevanten Routen des Moduls.
- datum_dokument_erstellt (absteigend)


Route | HTTP | Controller | Methode | Beschreibung
----- | ---- | ---------- | ------- | ------------
<route.name> | GET | <Controller> | <method> | Beschreibung


== TransformModel ==


Vor der Ausgabe werden bestimmte Felder transformiert.
==================================================
4. UI / FRONTEND
==================================================


Zweck:
Beschreibung der UI-Komponenten (Inertia, React, Vue, etc.)
- Umwandlung interner Geldwerte (Minor Units)
- Ausgabe als formatierte Preise


Transformierte Felder:
--------------------------------------------------
- betrag_netto
4.1 Views / Pages
- betrag_brutto
--------------------------------------------------


- Seitenname / Route
- Zweck der Seite
- Besonderheiten


== Spaltenübersicht ==
--------------------------------------------------
4.2 Tabellen (InertiaUI)
--------------------------------------------------


Vorschau:
Falls das Modul Tabellen nutzt:
- Typ: ImageColumn
- Beschreibung: Dokumentvorschau (Thumbnail)


Aktionen:
- Tabellenklasse: App\Tables\<Name>
- Typ: ActionColumn
- Suchfelder:
- Beschreibung: Kontextaktionen (z. B. Vorschau)
  - feld_1
  - feld_2
- Standardsortierung:
  - feld (ASC/DESC)


Titel:
--------------------------------------------------
- Typ: TextColumn
4.2.1 Spalten (Columns)
- Beschreibung: Dokumenttitel mit Link zur Detailansicht
--------------------------------------------------


Typ:
Name | Typ | Sortierbar | Umschaltbar | Beschreibung
- Typ: BadgeColumn
---- | --- | ---------- | ----------- | ------------
- Beschreibung: Dokumenttyp (Enum-basiert)
<name> | TextColumn | Ja | Nein | Beschreibung


Kontakt:
- Typ: TextColumn
- Beschreibung: Verknüpfter Kontakt (optional)


Referenz:
--------------------------------------------------
- Typ: TextColumn
4.2.2 Filter
- Beschreibung: Referenznummer oder Freitext
--------------------------------------------------


Geprüft:
Name | Typ | Standard | Beschreibung
- Typ: BooleanColumn
---- | --- | -------- | ------------
- Beschreibung: Kennzeichnung, ob Dokument geprüft ist
<name> | DateFilter | Ja | Beschreibung


OCR:
- Typ: BooleanColumn
- Beschreibung: Gibt an, ob OCR-Daten vorhanden sind


Betrag Netto:
--------------------------------------------------
- Typ: NumericColumn
4.2.3 Aktionen
- Beschreibung: Netto-Betrag des Dokuments
--------------------------------------------------


Betrag Brutto:
Name | Typ | Beschreibung
- Typ: NumericColumn
---- | --- | ------------
- Beschreibung: Brutto-Betrag (standardmäßig ausgeblendet)
<Vorschau> | Drawer | Öffnet Vorschau


Dokumenten-Datum:
- Typ: DateColumn
- Beschreibung: Datum des Dokuments


Erstellt am:
--------------------------------------------------
- Typ: DateColumn
4.2.4 Exporte
- Beschreibung: Erstellungsdatum des Datensatzes
--------------------------------------------------


- CSV
- Excel
- PDF
- Nicht vorhanden


== Filter ==


Dokumenten-Datum:
==================================================
- Typ: DateFilter
5. DATENQUELLE & MODELLE
- Beschreibung: Filter nach Dokumenten-Datum
==================================================


Erledigt am:
--------------------------------------------------
- Typ: DateFilter
5.1 Primäres Model
- Beschreibung: Filter nach Abschlussdatum
--------------------------------------------------


Typ:
Model:
- Typ: SetFilter
- App\Models\<Modul>\<Model>
- Beschreibung: Filter nach Dokumenttyp (Enum)


Referenz:
Relevante Felder:
- Typ: TextFilter
- feld_1
- Beschreibung: Filter mit Vergleichsoperatoren
- feld_2
- feld_3


--------------------------------------------------
5.2 Relationen
--------------------------------------------------


== Aktionen ==
Relation | Typ | Beschreibung
-------- | --- | ------------
contact | belongsTo | Verknüpfung zum Kontakt


Verfügbare Zeilenaktionen:
- Vorschau (öffnet Dokument in einem Drawer)


==================================================
6. DATENTRANSFORMATION
==================================================


== Observer (DmsObserver) ==
Beschreibung aller Transformationslogiken (z. B. transformModel).


Der DmsObserver reagiert auf Lebenszyklus-Ereignisse des DMS-Modells.
- Welche Felder werden verändert?
- Warum?
- In welchem Format werden sie ausgegeben?




== Löschen eines Dokuments ==
==================================================
7. BUSINESS-LOGIK
==================================================


Beim Löschen eines Dokuments werden automatisch:
--------------------------------------------------
- Suchindex-Einträge entfernt
7.1 Observer
- Relationen gelöscht
--------------------------------------------------
- Kontakt-Historien bereinigt
- Physische Dateien gelöscht (Original, Vorschau, Zusatzdateien)


Observer:
- <Model>Observer


== Erstellen & Aktualisieren ==
Reagiert auf:
- created
- updated
- deleted


Beim Erstellen oder Aktualisieren eines Dokuments:
Beschreibung der Logik:
- wird ein Kontakt-Historieneintrag erzeugt oder aktualisiert
- Was passiert bei welchem Event?
- wird der Historientyp abhängig vom Dokumenttyp gesetzt
- Welche Nebenwirkungen gibt es?
- werden Beträge und Dokumentdaten in die Kontaktchronik übernommen


--------------------------------------------------
7.2 Jobs / Queue
--------------------------------------------------


== Kontakt-Historien-Zuordnung ==
Job | Zweck | Trigger
--- | ----- | -------
<JobName> | Beschreibung | Event / Cron


Eingangsrechnung:
- Historientyp: Incoming Invoice


Ausgangsrechnung:
--------------------------------------------------
- Historientyp: External Invoice
7.3 Services
--------------------------------------------------


Angebot:
Service | Zweck
- Historientyp: Offer
------- | -----
<SystemService> | Beschreibung


Auftragsbestätigung:
- Historientyp: Order Confirmation


Sonstige Dokumente:
==================================================
- Historientyp: Allgemeiner DMS-Eintrag
8. EVENTS & NEBENWIRKUNGEN
==================================================


- Erzeugt Kontakt-Historien?
- Erzeugt Benachrichtigungen?
- Greift auf andere Module zu?
- Löscht oder verändert Fremddaten?


== Zusammenfassung ==


Das DMS-Modul:
==================================================
- nutzt InertiaUI Tables als zentrales Anzeigeelement
9. BERECHTIGUNGEN & SICHERHEIT
- kapselt Business-Logik im Observer
==================================================
- synchronisiert Dokumente mit Kontakten und Historie
- trennt Darstellung, Datenquelle und Logik sauber


Diese Architektur ermöglicht:
- Rollen
- gute Wartbarkeit
- Policies
- Erweiterbarkeit
- Zugriffsbeschränkungen
- konsistente Datenhaltung
- Mandantenfähigkeit
 
 
==================================================
10. FEHLER & EDGE CASES
==================================================
 
- Typische Fehler
- Validierungsprobleme
- Sonderfälle
- Bekannte Einschränkungen
 
 
==================================================
11. GLOSSAR-ERWEITERUNG
==================================================
 
Neue oder modulspezifische Begriffe, die ins Glossar aufgenommen werden sollten.
 
--------------------------------------------------
Glossar-Kandidaten
--------------------------------------------------
 
Begriff | Kurzbeschreibung | Kategorie
------- | ---------------- | ---------
<Begriff> | Beschreibung | Modul / Technik
 
Hinweis:
Jeder Begriff sollte zusätzlich als eigene Glossar-Seite angelegt werden.
 
 
==================================================
12. CHANGELOG / ENTWICKLERHINWEISE
==================================================
 
Version | Datum | Änderung
------- | ----- | --------
v1.0 | YYYY-MM-DD | Initiale Dokumentation
 
 
==================================================
ENDE DER MODUL-DOKUMENTATION
==================================================

Aktuelle Version vom 29. Januar 2026, 12:11 Uhr

MODUL-DOKUMENTATIONS-VORLAGE

=================

Diese Vorlage dient zur einheitlichen technischen Dokumentation aller Module im ToolBoxx CRM. Sie ist für MediaWiki optimiert und kann als TXT vorbereitet und anschließend ins Wiki übernommen werden.


MODUL: <Modulname>


Kurzbeschreibung des Moduls (1–3 Sätze). Welches Problem löst das Modul, wofür wird es eingesetzt?


======================================

1. ZIEL & ZWECK

======================================

Beschreibt den fachlichen Zweck des Moduls.

- Welche Aufgaben erfüllt das Modul? - Für welche Benutzerrollen ist es relevant? - In welchen Geschäftsprozessen wird es eingesetzt?


======================================

2. BENUTZERHANDBUCH (KURZÜBERSICHT)

======================================

(Optional, falls Modul auch für Endanwender relevant ist)

- Wo findet der Benutzer das Modul im System? - Welche Hauptfunktionen sind sichtbar? - Welche Aktionen sind typisch?

Beispiel: - Dokumente hochladen - Dokumente filtern - Dokumente verknüpfen


======================================

3. ROUTEN & CONTROLLER

======================================

Tabelle aller relevanten Routen des Moduls.

Route | HTTP | Controller | Methode | Beschreibung


| ---- | ---------- | ------- | ------------

<route.name> | GET | <Controller> | <method> | Beschreibung


======================================

4. UI / FRONTEND

======================================

Beschreibung der UI-Komponenten (Inertia, React, Vue, etc.)


4.1 Views / Pages


- Seitenname / Route - Zweck der Seite - Besonderheiten


4.2 Tabellen (InertiaUI)


Falls das Modul Tabellen nutzt:

- Tabellenklasse: App\Tables\<Name> - Suchfelder:

 - feld_1
 - feld_2

- Standardsortierung:

 - feld (ASC/DESC)

4.2.1 Spalten (Columns)


Name | Typ | Sortierbar | Umschaltbar | Beschreibung


| --- | ---------- | ----------- | ------------

<name> | TextColumn | Ja | Nein | Beschreibung



4.2.2 Filter


Name | Typ | Standard | Beschreibung


| --- | -------- | ------------

<name> | DateFilter | Ja | Beschreibung



4.2.3 Aktionen


Name | Typ | Beschreibung


| --- | ------------

<Vorschau> | Drawer | Öffnet Vorschau



4.2.4 Exporte


- CSV - Excel - PDF - Nicht vorhanden


======================================

5. DATENQUELLE & MODELLE

======================================

5.1 Primäres Model


Model: - App\Models\<Modul>\<Model>

Relevante Felder: - feld_1 - feld_2 - feld_3


5.2 Relationen


Relation | Typ | Beschreibung


| --- | ------------

contact | belongsTo | Verknüpfung zum Kontakt


======================================

6. DATENTRANSFORMATION

======================================

Beschreibung aller Transformationslogiken (z. B. transformModel).

- Welche Felder werden verändert? - Warum? - In welchem Format werden sie ausgegeben?


======================================

7. BUSINESS-LOGIK

======================================

7.1 Observer


Observer: - <Model>Observer

Reagiert auf: - created - updated - deleted

Beschreibung der Logik: - Was passiert bei welchem Event? - Welche Nebenwirkungen gibt es?


7.2 Jobs / Queue


Job | Zweck | Trigger --- | ----- | ------- <JobName> | Beschreibung | Event / Cron



7.3 Services


Service | Zweck


| -----

<SystemService> | Beschreibung


======================================

8. EVENTS & NEBENWIRKUNGEN

======================================

- Erzeugt Kontakt-Historien? - Erzeugt Benachrichtigungen? - Greift auf andere Module zu? - Löscht oder verändert Fremddaten?


======================================

9. BERECHTIGUNGEN & SICHERHEIT

======================================

- Rollen - Policies - Zugriffsbeschränkungen - Mandantenfähigkeit


======================================

10. FEHLER & EDGE CASES

======================================

- Typische Fehler - Validierungsprobleme - Sonderfälle - Bekannte Einschränkungen


======================================

11. GLOSSAR-ERWEITERUNG

======================================

Neue oder modulspezifische Begriffe, die ins Glossar aufgenommen werden sollten.


Glossar-Kandidaten


Begriff | Kurzbeschreibung | Kategorie


| ---------------- | ---------

<Begriff> | Beschreibung | Modul / Technik

Hinweis: Jeder Begriff sollte zusätzlich als eigene Glossar-Seite angelegt werden.


======================================

12. CHANGELOG / ENTWICKLERHINWEISE

======================================

Version | Datum | Änderung


| ----- | --------

v1.0 | YYYY-MM-DD | Initiale Dokumentation


======================================

ENDE DER MODUL-DOKUMENTATION

======================================