- Модуль: documentgenerator
- Путь к файлу: ~/bitrix/modules/documentgenerator/lib/document.php
- Класс: BitrixDocumentGeneratorDocument
- Вызов: Document::save
protected function save(): Document
{
if($this->result->isSuccess())
{
$resultData = $this->result->getData();
$saveResult = $this->body->save([
'fileName' => $this->getFileName(),
'templateId' => $this->template->ID,
'value' => $this->getValue(Template::MAIN_PROVIDER_PLACEHOLDER),
]);
if(!$saveResult->isSuccess())
{
$this->result->addErrors($saveResult->getErrors());
}
else
{
$data = [
'TEMPLATE_ID' => $this->template->ID,
'VALUE' => $this->getValue(Template::MAIN_PROVIDER_PLACEHOLDER),
'FILE_ID' => $saveResult->getId(),
'VALUES' => $this->getExternalValues(true),
'PROVIDER' => $this->template->getSourceType(),
'IMAGE_ID' => null,
'PDF_ID' => null,
'UPDATE_TIME' => new DateTime(),
'TITLE' => $this->getTitle(),
'NUMBER' => $this->getNumber(false),
];
if($this->ID > 0)
{
$data['UPDATED_BY'] = $this->getUserId();
$result = DocumentTable::update($this->ID, $data);
$eventName = 'onUpdateDocument';
}
else
{
$data['CREATED_BY'] = $this->getUserId();
$result = DocumentTable::add($data);
$eventName = 'onCreateDocument';
}
if($result->isSuccess())
{
$data['ID'] = $result->getId();
$this->data = $data;
$resultData['DOCUMENT_ID'] = $result->getId();
if($eventName)
{
EventManager::getInstance()->send(new Event(Driver::MODULE_ID, $eventName, ['document' => $this]));
}
}
else
{
$this->result->addErrors($result->getErrors());
}
}
$this->result->setData($resultData);
}
return $this;
}