Esempio n. 1
0
 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;
 }