/**
  * <p>Метод обновляет параметры значения с кодом ID свойства заказа на параметры из массива arFields. Метод динамичный.</p> <p></p> <div class="note"> <b>Примечание:</b> если при оформлении заказа не были заполнены какие-то свойства, то эти свойства обновить потом не получится, т.к. их нет в базе данных (незаполненные свойства не имеют пустых значений в базе). Поэтому, если нужно заполнить такое свойство, то сперва нужно создать его через <a href="http://dev.1c-bitrix.ru/api_help/sale/classes/csaleorderpropsvalue/csaleorderpropsvalue__add.af505780.php">CSaleOrderPropsValue::Add</a> и только затем значение этого свойства будет доступно для <b>CSaleOrderPropsValue::Update</b> и <a href="http://dev.1c-bitrix.ru/api_help/sale/classes/csaleorderpropsvalue/csaleorderpropsvalue__getlist.52da0d54.php">CSaleOrderPropsValue::Getlist</a>.</div>
  *
  *
  * @param int $ID  Код значения свойства заказа.
  *
  * @param array $arFields  Ассоциативный массив параметров значения свойства, ключами в
  * котором являются названия параметров значения свойства, а
  * значениями - соответствующие новые значения. <br><br> Допустимые
  * ключи: <ul> <li> <b>ORDER_ID</b> - код заказа;</li> <li> <b>ORDER_PROPS_ID</b> - код
  * свойства;</li> <li> <b>NAME</b> - название свойства;</li> <li> <b>VALUE</b> - значение
  * свойства;</li> <li> <b>CODE</b> - символьный код свойства.</li> </ul>
  *
  * @return int <p>Метод возвращает код обновленного значения свойства или <i>false</i>
  * в случае ошибки.</p> <a name="examples"></a>
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?<br>CSaleOrderPropsValue::Update(8, array("CODE"=&gt;"ADDRESS"));<br>?&gt;<br>
  * </pre>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csaleorderpropsvalue/csaleorderpropsvalue__update.4d3a46b6.php
  * @author Bitrix
  */
 public static function Update($ID, $arFields)
 {
     if (!self::CheckFields('UPDATE', $arFields, $ID)) {
         return false;
     }
     //		if ($arFields['VALUE'])
     //		{
     //			if (!  ($propertyId = $arFields['ORDER_PROPS_ID'])
     //				&& ($propertyValue = Internals\OrderPropsValueTable::getById($ID)->fetch()))
     //			{
     //				$propertyId = $propertyValue['ORDER_PROPS_ID'];
     //			}
     //
     //			if ($propertyId && ($oldProperty = CSaleOrderProps::GetById($propertyId)))
     //			{
     //				$oldProperty['VALUE'] = $arFields['VALUE'];
     //				$arFields['VALUE'] = CSaleOrderPropsAdapter::convertOldToNew($oldProperty, 'VALUE', true);
     //			}
     //		}
     // location ID to CODE
     if ((string) $arFields['VALUE'] != '') {
         if ((string) $arFields['ORDER_PROPS_ID'] != '') {
             $propId = intval($arFields['ORDER_PROPS_ID']);
         } else {
             $propValue = self::GetByID($ID);
             $propId = $propValue['ORDER_PROPS_ID'];
         }
         $arFields['VALUE'] = self::translateLocationIDToCode($arFields['VALUE'], $propId);
     }
     return Internals\OrderPropsValueTable::update($ID, array_intersect_key($arFields, CSaleOrderPropsValueAdapter::$allFields))->getId();
 }
Example #2
0
 /** @return Entity\Result */
 public function save()
 {
     $value = self::getValueForDB($this->fields->get('VALUE'));
     if ($valueId = $this->getId()) {
         if ($value == $this->savedValue) {
             $result = new Entity\UpdateResult();
         } else {
             $result = Internals\OrderPropsValueTable::update($valueId, array('VALUE' => $value));
             if ($result->isSuccess()) {
                 $this->savedValue = $value;
             }
         }
     } else {
         if ($value !== null) {
             $property = $this->property;
             $result = Internals\OrderPropsValueTable::add(array('ORDER_ID' => $this->getParentOrderId(), 'ORDER_PROPS_ID' => $property['ID'], 'NAME' => $property['NAME'], 'VALUE' => $value, 'CODE' => $property['CODE']));
             if ($result->isSuccess()) {
                 $this->savedValue = $value;
                 $this->setFieldNoDemand('ID', $result->getId());
             }
         } else {
             $result = new Entity\AddResult();
         }
     }
     return $result;
 }