• Модуль: 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;
}