- Модуль: documentgenerator
- Путь к файлу: ~/bitrix/modules/documentgenerator/lib/controller/document.php
- Класс: BitrixDocumentGeneratorControllerDocument
- Вызов: Document::uploadAction
public function uploadAction(array $fields, CRestServer $restServer)
{
$emptyFields = $this->checkArrayRequiredParams($fields, ['moduleId', 'providerClassName', 'fileId', 'region', 'value', 'title', 'number']);
if(!empty($emptyFields))
{
$this->errorCollection[] = new Error('Empty required fields: '.implode(', ', $emptyFields));
return null;
}
if(!Loader::includeModule($fields['moduleId']))
{
$this->errorCollection[] = new Error('Module '.$fields['moduleId'].' is not installed');
return null;
}
if(!DataProviderManager::checkProviderName($fields['providerClassName']))
{
$this->errorCollection[] = new Error('Wrong provider '.$fields['providerClassName']);
return null;
}
$restTemplate = $this->getRestTemplate($restServer, $fields['moduleId'], $fields['region']);
if(!$restTemplate)
{
$this->errorCollection[] = new Error('Error getting template');
return null;
}
$restTemplate->setSourceType($fields['providerClassName']);
$result = BitrixDocumentGeneratorDocument::upload($restTemplate, $fields['value'], $fields['title'], $fields['number'], $fields['fileId'], $fields['pdfId'], $fields['imageId']);
if($result->isSuccess())
{
return ['document' => $result->getData()];
}
else
{
$this->errorCollection->add($result->getErrors());
return null;
}
}