- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/component/entitydetails/factorybased.php
- Класс: Bitrix\Crm\Component\EntityDetails\FactoryBased
- Вызов: FactoryBased::compatibleAction
public function compatibleAction(int $entityTypeId, int $entityId): ?Json
{
$requestData = $this->request->toArray();
$action = $requestData['ACTION'];
if ($action === 'GET_FORMATTED_SUM')
{
$sum = (float)$requestData['SUM'];
$currencyId = (string)$requestData['CURRENCY_ID'];
return new Json([
'FORMATTED_SUM' => Money::formatWithCustomTemplate($sum, $currencyId),
'FORMATTED_SUM_WITH_CURRENCY' => Money::format($sum, $currencyId),
]);
}
if($action === 'SAVE')
{
// it would be better to use signedParameters, but processing is encapsulated in Engine\Controller
$this->arParams['ENTITY_TYPE_ID'] = $entityTypeId;
$this->arParams['ENTITY_ID'] = $entityId;
$data = array_intersect_key($requestData, [
Item::FIELD_NAME_TITLE => true,
Item::FIELD_NAME_ASSIGNED => true,
Item::FIELD_NAME_OBSERVERS => true,
EditorAdapter::FIELD_REQUISITE_ID => true,
EditorAdapter::FIELD_BANK_DETAIL_ID => true,
Item::FIELD_NAME_MYCOMPANY_ID => true,
EditorAdapter::FIELD_MY_COMPANY_REQUISITE_ID => true,
EditorAdapter::FIELD_MY_COMPANY_BANK_DETAIL_ID => true,
]);
return new Json($this->saveAction($data));
}
return null;
}