- Модуль: documentgenerator
- Путь к файлу: ~/bitrix/modules/documentgenerator/lib/integration/transformermanager.php
- Класс: BitrixDocumentGeneratorIntegrationTransformerManager
- Вызов: TransformerManager::transform
public function transform(array $formats)
{
if(!$this->checkFormats($formats))
{
$this->result->addError(new Error('Wrong format'));
return $this->result;
}
if(!$this->document->FILE_ID)
{
$this->result->addError(new Error('Empty FILE_ID'));
return $this->result;
}
foreach($formats as $extension)
{
if($this->document->{static::getFormats()[$extension]['KEY']})
{
unset($formats[$extension]);
}
}
if(empty($formats))
{
return $this->result->setData([
'cancelReason' => new Error(
'All transform formats are present',
static::ERROR_CODE_TRANSFORM_FORMATS_FILLED,
),
]);
}
if($this->isConverted($formats))
{
$status = $this->transformInfo['status'] ?? 0;
if ($status === Command::STATUS_SUCCESS)
{
$this->result->setData([
'cancelReason' => new Error(
'All transform formats already processed',
static::ERROR_CODE_TRANSFORM_FORMATS_PROCESSED,
),
]);
}
return $this->result;
}
if($this->result->isSuccess())
{
$transformer = new DocumentTransformer();
$this->result = $transformer->transform($this->getBFileId(), $formats, Driver::MODULE_ID, static::class, ['documentId' => $this->document->ID, 'queue' => static::QUEUE_NAME]);
}
return $this->result;
}