Пример #1
0
/**
 * [getSpecificationsList description]
 * @param  int $idUser
 * @return array or false
 */
function getSpecificationsList($idUser)
{
    if (!CModule::IncludeModule('iblock')) {
        return false;
    }
    global $USER;
    if ($idUser) {
        $IBLOCK_ID = getIblockSpecifications();
        $rsUser = CUser::GetByID($idUser);
        $arUser = $rsUser->Fetch();
        $arSpecificationsId = $arUser["UF_SPECIFICATIONS"];
        foreach ($arSpecificationsId as $key => $id) {
            $arFilterSec = array('IBLOCK_ID' => $IBLOCK_ID, 'GLOBAL_ACTIVE' => 'Y', "ID" => $id);
            $db_list = CIBlockSection::GetList(array("TIMESTAMP_X" => "DESC"), $arFilterSec, true);
            if ($ar_result = $db_list->GetNext()) {
                $ar_result["ITEMS"] = array();
                $arSelect = array("NAME", "ID", "PROPERTY_PRODUCT", "PROPERTY_COUNT");
                $arFilter = array("IBLOCK_ID" => $IBLOCK_ID, "ACTIVE" => "Y", "SECTION_ID" => $ar_result["ID"]);
                $res = CIBlockElement::GetList(array(), $arFilter, false, false, $arSelect);
                while ($ob = $res->GetNextElement()) {
                    $arItem = $ob->GetFields();
                    $arProdSpec = getItemCart($arItem["PROPERTY_PRODUCT_VALUE"]);
                    if ($arProdSpec && $arItem["PROPERTY_PRODUCT_VALUE"]) {
                        $arItem["PRODUCT"] = $arProdSpec;
                        $dbPrice = CPrice::GetList(array("QUANTITY_FROM" => "ASC", "QUANTITY_TO" => "ASC", "SORT" => "ASC"), array("PRODUCT_ID" => $arItem["PROPERTY_PRODUCT_VALUE"]), false, false, array("ID", "CATALOG_GROUP_ID", "PRICE", "CURRENCY", "QUANTITY_FROM", "QUANTITY_TO"));
                        if ($arPrice = $dbPrice->Fetch()) {
                            $arDiscounts = CCatalogDiscount::GetDiscountByPrice($arPrice["ID"], $USER->GetUserGroupArray(), "N", SITE_ID);
                            $discountPrice = CCatalogProduct::CountPriceWithDiscount($arPrice["PRICE"], $arPrice["CURRENCY"], $arDiscounts);
                            $arPrice["DISCOUNT_PRICE"] = $discountPrice;
                            $arItem["DISCOUNT"] = $arPrice;
                        }
                        $ar_result["ITEMS"][] = $arItem;
                    } elseif (!$arItem["PROPERTY_PRODUCT_VALUE"]) {
                        $arParams["product"] = $arItem["ID"];
                        removeItemSpecification($arParams);
                    }
                }
                $arSections[] = $ar_result;
            }
        }
        return $arSections;
    }
    return false;
}
Пример #2
0
  * $_POST["count"] count products
  */
 if (htmlspecialchars($_POST["action"]) == "add") {
     // добавляем спецификацию
     $result = addSpecifications($_POST);
 } elseif (htmlspecialchars($_POST["action"]) == "update") {
     // обновляем спецификацию
     $result = updateSpecifications($_POST);
 } elseif (htmlspecialchars($_POST["action"]) == "remove") {
     // если remove тогда либо пустой product либо пустой spec
     if (htmlspecialchars($_POST["spec"])) {
         // если удаляем спецификацию
         $result = removeSpecification($_POST);
     } elseif (htmlspecialchars($_POST["product"])) {
         // если удаляем проудкт из спецификации
         $result = removeItemSpecification($_POST);
     }
 } elseif (htmlspecialchars($_POST["action"]) == "get") {
     // получаем спецификации по юзеру
     $result = getSpecificationsName(htmlspecialchars($_POST["user"]));
     echo getPopupSpecifications($result);
     exit;
 } elseif (htmlspecialchars($_POST["action"]) == "file") {
     $idSpec = htmlspecialchars($_POST["spec"]);
     $pathFile = getPdfFile($idSpec);
     // формируем файл
     if ($pathFile) {
         echo json_encode(array("result" => true, "path" => $pathFile));
         exit;
     }
 }