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\LockedTraitpro vynucení stavu pouze pro čtení u schválených záznamů. - Logika: Zabraňuje úpravám záznamu, jakmile
statusdosáhne hodnotyApproved.
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.statusnaApprovedneboRejected. - 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).