Пример #1
0
 function Add($arFields)
 {
     foreach (GetModuleEvents('sale', 'OnBeforeOrderPropsAdd', true) as $arEvent) {
         if (ExecuteModuleEventEx($arEvent, array(&$arFields)) === false) {
             return false;
         }
     }
     if (!self::CheckFields('ADD', $arFields)) {
         return false;
     }
     $newProperty = CSaleOrderPropsAdapter::convertOldToNew($arFields);
     $ID = OrderPropsTable::add(array_intersect_key($newProperty, CSaleOrderPropsAdapter::$allFields))->getId();
     foreach (GetModuleEvents('sale', 'OnOrderPropsAdd', true) as $arEvent) {
         ExecuteModuleEventEx($arEvent, array($ID, $arFields));
     }
     return $ID;
 }
Пример #2
0
 $propertyForDB['SETTINGS'] = array_intersect_key($propertyForDB, $inputSettings);
 $propertyForDB = array_diff_key($propertyForDB, $propertyForDB['SETTINGS']);
 // 1. update property
 if ($propertyId) {
     $update = OrderPropsTable::update($propertyId, array_diff_key($propertyForDB, array('ID' => 1)));
     if ($update->isSuccess()) {
         $propertyCode = ($v = $property['CODE']) ? $v : false;
         $result = CSaleOrderPropsValue::GetList($b = 'ID', $o = 'ASC', array('ORDER_PROPS_ID' => $propertyId, '!CODE' => $propertyCode));
         while ($row = $result->Fetch()) {
             CSaleOrderPropsValue::Update($row['ID'], array('CODE' => $propertyCode));
         }
     } else {
         $errors[] = loc::getMessage('ERROR_EDIT_PROP') . ': ' . implode(', ', $update->getErrorMessages());
     }
 } else {
     $insert = OrderPropsTable::add($propertyForDB);
     if ($insert->isSuccess()) {
         $propertyId = $property['ID'] = $insert->getId();
     } else {
         $errors[] = loc::getMessage('ERROR_ADD_PROP') . ': ' . implode(', ', $insert->getErrorMessages());
     }
 }
 // cleanup files
 if ($errors) {
     if (isset($savedFiles)) {
         $filesToDelete = $savedFiles;
     }
 } else {
     if ($existentProperty && $existentProperty['TYPE'] == 'FILE') {
         $filesToDelete = Input\File::asMultiple(Input\File::getValue($existentProperty, $existentProperty['DEFAULT_VALUE']));
         if (isset($files)) {