updateEventMetadata( $container->getByClass(Metadata::class), $container->getByClass(FileManager::class) ); } private function updateEventMetadata(Metadata $metadata, FileManager $fileManager): void { $defs = $metadata->get(['scopes']); $path1 = "application/Espo/Core/Templates/Metadata/Event/selectDefs.json"; $contents1 = $fileManager->getContents($path1); $data1 = Json::decode($contents1, true); $primaryFilterClassNameMap = (object) $data1['primaryFilterClassNameMap']; foreach ($defs as $entityType => $item) { $isCustom = $item['isCustom'] ?? false; $type = $item['type'] ?? false; if (!$isCustom || $type !== Event::TEMPLATE_TYPE) { continue; } $data1 = $metadata->getCustom('selectDefs', $entityType) ?? (object) []; $data1->primaryFilterClassNameMap = $primaryFilterClassNameMap; $metadata->saveCustom('selectDefs', $entityType, $data1); $data2 = $metadata->getCustom('scopes', $entityType) ?? (object) []; $data2->completedStatusList = ['Held']; $data2->canceledStatusList = ['Not Held']; $metadata->saveCustom('scopes', $entityType, $data2); } } }