- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/controller/documentgenerator/document.php
- Класс: Bitrix\Crm\Controller\DocumentGenerator\Document
- Вызов: Document::uploadAction
public function uploadAction(array $fields, \CRestServer $restServer)
{
$emptyFields = $this->checkArrayRequiredParams($fields, ['entityTypeId', 'fileContent', 'region', 'entityId', 'title', 'number']);
if(!empty($emptyFields))
{
$this->errorCollection[] = new Error('Empty required fields: '.implode(', ', $emptyFields));
return null;
}
if (!\CCrmOwnerType::isCorrectEntityTypeId((int)$fields['entityTypeId']))
{
$this->errorCollection[] = new Error('Wrong "entityTypeId" field value');
return null;
}
if ($fields['entityId'] <= 0)
{
$this->errorCollection[] = new Error('Wrong "entityId" field value');
return null;
}
$providersMap = DocumentGeneratorManager::getInstance()->getCrmOwnerTypeProvidersMap();
if(!isset($providersMap[$fields['entityTypeId']]))
{
$this->errorCollection[] = new Error('No provider for entityTypeId');
return null;
}
$fields['providerClassName'] = $providersMap[$fields['entityTypeId']];
unset($fields['entityTypeId']);
$fields['fileId'] = $this->uploadFile($fields['fileContent']);
if(!$fields['fileId'])
{
return null;
}
unset($fields['fileContent']);
$fields['pdfId'] = $this->uploadFile($fields['pdfContent'], [
'fileParamName' => 'pdf',
'required' => false,
'fileName' => $fields['title'].'.pdf',
]);
unset($fields['pdfContent']);
$fields['imageId'] = $this->uploadFile($fields['imageContent'], [
'fileParamName' => 'image',
'required' => false,
'fileName' => $fields['title'].'.jpg',
]);
unset($fields['imageContent']);
$fields['moduleId'] = static::MODULE_ID;
$fields['value'] = $fields['entityId'];
unset($fields['entityId']);
$result = $this->proxyAction('uploadAction', [$fields, $restServer]);
if(is_array($result))
{
$result['document'] = $this->prepareDocumentData($result['document']);
}
return $result;
}