- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/widget/custom/saletarget.php
- Класс: Bitrix\Crm\Widget\Custom\SaleTarget
- Вызов: SaleTarget::saveConfiguration
public function saveConfiguration($formData, $editorId)
{
$result = new Main\Result();
$fields = array(
'TYPE_ID' => $formData['type'],
'PERIOD_TYPE' => $formData['period_type'],
'PERIOD_YEAR' => (int)$formData['period_year'],
'PERIOD_HALF' => (int)$formData['period_half'],
'PERIOD_QUARTER' => (int)$formData['period_quarter'],
'PERIOD_MONTH' => (int)$formData['period_month'],
'TARGET_TYPE' => $formData['target_type'],
'TARGET_GOAL' => $formData['target_goal'],
'MODIFIED' => new Main\Type\DateTime(),
'EDITOR_ID' => $editorId,
);
$periodBorders = $this->getPeriodBorders(array(
'type' => $fields['PERIOD_TYPE'],
'year' => $fields['PERIOD_YEAR'],
'half' => $fields['PERIOD_HALF'],
'quarter' => $fields['PERIOD_QUARTER'],
'month' => $fields['PERIOD_MONTH'],
));
$fields['LEFT_BORDER'] = $periodBorders[0];
$fields['RIGHT_BORDER'] = $periodBorders[1];
$found = $this->findDuplicate($fields);
if ($found)
{
SaleTargetTable::update($found['ID'], $fields);
$fields['ID'] = $found['ID'];
$fields['CREATED'] = $found['CREATED'];
$fields['AUTHOR_ID'] = $found['AUTHOR_ID'];
}
else
{
$fields['CREATED'] = new Main\Type\DateTime();
$fields['AUTHOR_ID'] = $editorId;
$addResult = SaleTargetTable::add($fields);
if ($addResult->isSuccess())
{
$fields['ID'] = $addResult->getId();
}
else
{
$result->addErrors($addResult->getErrors());
}
}
if ($result->isSuccess())
{
$result->setData($this->makeConfiguration($fields));
}
return $result;
}