• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/entitymarker.php
  • Класс: BitrixSaleEntityMarker
  • Вызов: EntityMarker::updateItem
static function updateItem($id, $values, Order $order, $entityType)
{
	$orderCode = $order->getInternalId();
	$result = new Result();

	if (!empty(static::$pool[$orderCode]) && !empty(static::$pool[$orderCode][$entityType]) && is_array(static::$pool[$orderCode][$entityType]))
	{
		foreach (static::$pool[$orderCode][$entityType] as $index => $fields)
		{
			$foundItem = false;
			if ((isset($fields['ID']) && $id > 0 && intval($fields['ID']) == $id))
			{
				$foundItem = true;
			}

			if (!$foundItem)
			{
				foreach (static::getFieldsDuplicateCheck() as $checkField)
				{
					if (!empty($fields[$checkField]) && !empty($values[$checkField]) && $fields[$checkField] == $values[$checkField])
					{
						$foundItem = true;
						continue;
					}

					$foundItem = false;
					break;
				}
			}

			if ($foundItem)
			{
				static::$pool[$orderCode][$entityType][$index] = array_merge($fields, $values);
				return $result;
			}
		}
	}

	$values['ID'] = $id;

	if (empty($values['ORDER']))
	{
		$values['ORDER'] = $order;
	}

	if ($order->getId() > 0)
	{
		$values['ORDER_ID'] = $order->getId();
	}

	static::$pool[$orderCode][$entityType][] = $values;

	return $result;
}