function Update($ID, $arFields) { if (!$ID) { return false; } foreach (GetModuleEvents('sale', 'OnBeforeOrderPropsUpdate', true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) { return false; } } if (!self::CheckFields('UPDATE', $arFields, $ID)) { return false; } $newProperty = CSaleOrderPropsAdapter::convertOldToNew($arFields + self::GetByID($ID)); OrderPropsTable::update($ID, array_intersect_key($newProperty, CSaleOrderPropsAdapter::$allFields)); foreach (GetModuleEvents('sale', 'OnOrderPropsUpdate', true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } return $ID; }