Verträge erfassen und verwalten – Systembeschreibung
Kopf- und Untertabellen eines Vertrags, Speicherschritte und Wertabgleich, automatische Nummerierung, Inhaltsbereich und Löschen.
Kunden- und Lieferantenverträge mit Positionen, Phasen, Phasen-Positionszuordnung und Kaution. Fertiggestelltes Modul; den Inhaltsbereich bestimmt company_client_id des Vertrags.
Datenmodell
Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation.
| Tabelle | Rolle |
|---|---|
contract | Kopf: Mandant, Richtung, Partner, Gegenstand, Nummer, Währung, Wert, Status |
contract_parties | Parteien mit richtungsabhängiger Rolle |
contract_item | Positionen (aus Produkt / Dienstleistung aufgelöst) |
contract_phase, contract_phase_item | Phasen und Phasen-Positionszuordnung |
contract_deposit, contract_penalty, contract_document, contract_vehicle | Kaution, Vertragsstrafe, Dokument- und Fahrzeugzeilen |
doc, doc_link | in der Liste gezeigte Dokumente |
Ablauf
- Liste: Filter Unternehmensgruppe, Unternehmen,
filter_client_id,filter_customer_id,filter_auto_renew,filter_certification_required,filter_data; Bereich auf die Unternehmen des Inhaltsrechts (getAllowedScopeValues); Dokumente mitdocument/documentlist, Lösen mitedit. - Speichern: Mandant und Gegenstand Pflicht; Mandant im Bereich (
ownerInScope); wo das Preisprofil den Kopfwert sinnvoll macht (Werkvertrag oder Pauschale), müssen die nicht optionalen Positionen den Wert auf ±0,01 treffen (error_value_mismatch). addContract(): ergänzt fehlende Spalten (ensureSchema), richtungsabhängige Rollen, automatische Nummer (V-JJJJ-NNNNKunde,SZ-JJJJ-NNNNLieferant, je Mandant fortlaufend), dann Parteien, Positionen, Phasen, Zuordnung, Kaution (Löschen + Neuschreiben).editContract()schreibt die Untertabellen ebenso neu.- Status: 0/1 (
setStatus). - Löschen: IDs außerhalb des Bereichs werden übersprungen;
deleteContract()löscht Untertabellenzeilen und dann den Vertrag physisch.
Berechtigungen
- Funktionsrechte:
list,edit(auch Hinzufügen), SpeicherncanSave(),delete,debug; Suchen:companysearch,partnersearch(list),productsearch,propertysearch,servicesearch(edit),groupcompanies. - Inhaltsbereich:
contractInScope,ownerInScope.
Bekannte Einschränkungen
- Das Löschen prüft verweisende Rechnungen nicht.
- Die Schlüssel
certify,export,invoiceund das als BASE klassifiziertestatusdeleteexistieren nur im Katalog; Endpunkte gibt es nicht.