public static function checkFormValues($arItem) { self::$arErrors = array(); $boolFeatureSet = CBXFeatures::IsFeatureEnabled('CatCompleteSet'); if (!$boolFeatureSet) { return true; } self::$arSrcValues[self::$strMainPrefix] = array(); self::$arCheckValues[self::$strMainPrefix] = array(); if (isset($_POST[self::$strMainPrefix]) && is_array($_POST[self::$strMainPrefix])) { CCatalogProductSet::disableShowErrors(); self::$arSrcValues[self::$strMainPrefix] = $_POST[self::$strMainPrefix]; foreach (self::$arSrcValues[self::$strMainPrefix] as $key => $arOneSet) { $boolNew = 0 >= (int) $key; $arSaveSet = array('TYPE' => self::$intTypeID, 'ITEM_ID' => $arItem['PRODUCT_ID'], 'ACTIVE' => 'Y', 'ITEMS' => array()); if (CCatalogProductSet::TYPE_SET == self::$intTypeID) { foreach ($arOneSet['ITEMS'] as $keyItem => $arOneItem) { if ('Y' == $arOneItem['DEL']) { continue; } $arOneItem['DISCOUNT_PERCENT'] = trim($arOneItem['DISCOUNT_PERCENT']); $arSaveItem = array('ITEM_ID' => $arOneItem['ITEM_ID'], 'QUANTITY' => $arOneItem['QUANTITY'], 'DISCOUNT_PERCENT' => '' == $arOneItem['DISCOUNT_PERCENT'] ? false : $arOneItem['DISCOUNT_PERCENT'], 'SORT' => $arOneItem['SORT']); $arSaveSet['ITEMS'][] = $arSaveItem; } } else { foreach ($arOneSet['ITEMS'] as $keyItem => $arOneItem) { if ('Y' == $arOneItem['DEL']) { continue; } $arSaveItem = array('ITEM_ID' => $arOneItem['ITEM_ID'], 'QUANTITY' => $arOneItem['QUANTITY'], 'SORT' => $arOneItem['SORT']); if ($arSaveItem['QUANTITY'] == '') { $arSaveItem['QUANTITY'] = 1; } $arSaveSet['ITEMS'][] = $arSaveItem; } } $arTestSet = $arSaveSet; $boolCheck = $boolNew ? CCatalogProductSet::checkFields('TEST', $arTestSet, 0) : CCatalogProductSet::checkFields('UPDATE', $arTestSet, $key); if (!$boolCheck) { $ex = new CAdminException(CCatalogProductSet::getErrors()); self::$arErrors[$key] = $ex->GetString(); } else { self::$arCheckValues[self::$strMainPrefix][$key] = $arSaveSet; } break; } CCatalogProductSet::enableShowErrors(); return empty(self::$arErrors); } return true; }