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