• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/orderbase.php
  • Класс: BitrixSaleOrderBase
  • Вызов: OrderBase::add
protected function add()
{
	global $USER;

	$result = new Result();

	$currentDateTime = new TypeDateTime();

	if (!$this->getField('DATE_UPDATE'))
	{
		$this->setField('DATE_UPDATE', $currentDateTime);
	}

	if (!$this->getField('DATE_INSERT'))
	{
		$this->setField('DATE_INSERT', $currentDateTime);
	}

	$fields = $this->fields->getValues();

	if (is_object($USER) && $USER->isAuthorized())
	{
		$fields['CREATED_BY'] = $USER->getID();
		$this->setFieldNoDemand('CREATED_BY', $fields['CREATED_BY']);
	}

	if (array_key_exists('REASON_MARKED', $fields) && mb_strlen($fields['REASON_MARKED']) > 255)
	{
		$fields['REASON_MARKED'] = mb_substr($fields['REASON_MARKED'], 0, 255);
	}

	$fields['RUNNING'] = 'Y';

	$r = $this->addInternal($fields);
	if (!$r->isSuccess())
	{
		return $result->addErrors($r->getErrors());
	}

	if ($resultData = $r->getData())
	{
		$result->setData($resultData);
	}

	$id = $r->getId();
	$this->setFieldNoDemand('ID', $id);
	$result->setId($id);

	$this->setAccountNumber();

	return $result;
}