• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/orderdiscountbase.php
  • Класс: BitrixSaleOrderDiscountBase
  • Вызов: OrderDiscountBase::updateResultRow
static function updateResultRow($id, array $fields)
{
	$rowUpdate = ['APPLY' => $fields['APPLY']];
	if (isset($fields['ACTION_BLOCK_LIST']))
		$rowUpdate['ACTION_BLOCK_LIST'] = $fields['ACTION_BLOCK_LIST'];
	$result = static::updateResultInternal($id, $rowUpdate);
	unset($rowUpdate);
	if (!$result->isSuccess())
		return $result;

	$descrId = null;
	if (isset($fields['DESCR_ID']) && $fields['DESCR_ID'] > 0)
		$descrId = $fields['DESCR_ID'];
	if ($descrId === null)
	{
		$iterator = static::getResultDescriptionIterator([
			'select' => ['ID'],
			'filter' => ['=RULE_ID' => $id]
		]);
		$row = $iterator->fetch();
		if (!empty($row['ID']))
			$descrId = (int)$row['ID'];
		unset($row, $iterator);
	}
	if ($descrId === null)
	{
		$iterator = static::getResultIterator([
			'select' => ['MODULE_ID', 'ORDER_DISCOUNT_ID', 'ORDER_ID'],
			'filter' => ['=ID' => $id],
			'order' => []
		]);
		$row = $iterator->fetch();
		unset($iterator);
		$row['RULE_ID'] = $id;
		$row['DESCR'] = $fields['DESCR'];
		$resultDescr = static::addResultDescriptionInternal($row);
		unset($row);
	}
	else
	{
		$resultDescr = static::updateResultDescriptionInternal(
			$fields['DESCR_ID'],
			array('DESCR' => $fields['DESCR'])
		);
	}

	if (!$resultDescr->isSuccess())
		$result->addErrors($resultDescr->getErrors());
	unset($resultDescr);

	return $result;
}