- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/document/onlyoffice/templates/createdocumentbycalltemplatescenario.php
- Класс: BitrixDiskDocumentOnlyOfficeTemplatesCreateDocumentByCallTemplateScenario
- Вызов: CreateDocumentByCallTemplateScenario::create
public function create(int $templateId): Result
{
$result = new Result();
$targetFolder = $this->getDefaultFolderForUser();
$storage = $targetFolder->getStorage();
if (!$targetFolder->canAdd($storage->getSecurityContext($this->userId)))
{
$result->addError(new Error('Bad rights. Could not add file to the folder.'));
return $result;
}
if (!Loader::includeModule('documentgenerator') || !DocumentGeneratorDriver::getInstance()->isEnabled())
{
$result->addError(new Error('documentgenerator is not available'));
return $result;
}
$fileResult = $this->buildFileByTemplate($templateId);
if (!$fileResult->isSuccess())
{
return $fileResult;
}
$fileArray = $fileResult->getData()['bfile'];
$chatTitle = $this->getChatTitle($this->call->getAssociatedEntity());
$newFile = $targetFolder->uploadFile($fileArray, [
'NAME' => Loc::getMessage("DISK_DOCUMENT_OO_DOC_BY_CALL_TEMPLATE_FILENAME_1", ['#NAME#' => $chatTitle]) . '.docx',
'CREATED_BY' => $this->userId,
'CODE' => self::CODE_RESUME,
], [], true);
if (!$newFile)
{
$result->addErrors($targetFolder->getErrors());
return $result;
}
$result->setData([
'file' => $newFile,
]);
return $result;
}