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.

TabelleRolle
contractKopf: Mandant, Richtung, Partner, Gegenstand, Nummer, Währung, Wert, Status
contract_partiesParteien mit richtungsabhängiger Rolle
contract_itemPositionen (aus Produkt / Dienstleistung aufgelöst)
contract_phase, contract_phase_itemPhasen und Phasen-Positionszuordnung
contract_deposit, contract_penalty, contract_document, contract_vehicleKaution, Vertragsstrafe, Dokument- und Fahrzeugzeilen
doc, doc_linkin der Liste gezeigte Dokumente

Ablauf

  1. 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 mit document/document list, Lösen mit edit.
  2. 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).
  3. addContract(): ergänzt fehlende Spalten (ensureSchema), richtungsabhängige Rollen, automatische Nummer (V-JJJJ-NNNN Kunde, SZ-JJJJ-NNNN Lieferant, je Mandant fortlaufend), dann Parteien, Positionen, Phasen, Zuordnung, Kaution (Löschen + Neuschreiben). editContract() schreibt die Untertabellen ebenso neu.
  4. Status: 0/1 (setStatus).
  5. 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), Speichern canSave(), 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, invoice und das als BASE klassifizierte statusdelete existieren nur im Katalog; Endpunkte gibt es nicht.
Related topics: Vertrag Vertragsparteien