Přeskočit na hlavní obsah

Architektura schvalování

Klíčové komponenty

1. Správa stavů (Služba ApprovalRecord)

Modul využívá centralizovanou službu pro řízení přechodů stavů ApprovalRecord.

  • Umístění: src/backend/Services/ApprovalRecord.php
  • Trait: Používá Espo\Modules\Autocrm\Services\Traits\LockedTrait pro vynucení stavu pouze pro čtení u schválených záznamů.
  • Logika: Zabraňuje úpravám záznamu, jakmile status dosáhne hodnoty Approved.

2. Aktualizace rodiče (Hook UpdateParent)

Když je upraven ApprovalRecordItem (např. uživatel klikne na "Schválit"), hook spustí přehodnocení nadřazeného ApprovalRecord.

  • Umístění: src/backend/Hooks/ApprovalRecordItem/UpdateParent.php
  • Zodpovědnost:
    • Kontroluje, zda jsou schváleny všechny vyžadované položky.
    • Aktualizuje ApprovalRecord.status na Approved nebo Rejected.
    • Spouští zamykací mechanismus na nadřazené entitě (např. Nabídka), pokud je to v šabloně nakonfigurováno.

Integrační body

Modul Schvalování se integruje s ostatními entitami prostřednictvím Polymorfních vztahů (linkParent). Předmětem schvalování může být jakákoli standardní entita EspoCRM, pokud je pro její typ vytvořena ApprovalTemplate (Schvalovací šablona).