Beispiel #1
0
 function ReCalculate($TYPE, $ID, $VAL)
 {
     $ID = (int) $ID;
     if ($ID <= 0) {
         return;
     }
     $iblockList = array();
     if ($TYPE == 'EXTRA') {
         $baseType = CCatalogGroup::GetBaseGroup();
         if (empty($baseType)) {
             return;
         }
         $db_res = CPrice::GetListEx(array(), array('EXTRA_ID' => $ID), false, false, array('ID', 'PRODUCT_ID', 'EXTRA_ID', 'QUANTITY_FROM', 'QUANTITY_TO'));
         while ($res = $db_res->Fetch()) {
             $parentFilter = array('PRODUCT_ID' => $res['PRODUCT_ID'], 'CATALOG_GROUP_ID' => $baseType['ID'], 'QUANTITY_FROM' => $res['QUANTITY_FROM'] === null ? false : $res['QUANTITY_FROM'], 'QUANTITY_TO' => $res['QUANTITY_TO'] === null ? false : $res['QUANTITY_TO']);
             $parentIterator = CPrice::GetListEx(array(), $parentFilter, false, false, array('ID', 'PRODUCT_ID', 'PRICE', 'CURRENCY', 'ELEMENT_IBLOCK_ID'));
             $basePrice = $parentIterator->Fetch();
             if (!empty($basePrice)) {
                 $basePrice['ELEMENT_IBLOCK_ID'] = (int) $basePrice['ELEMENT_IBLOCK_ID'];
                 $fields = array('PRICE' => roundex($basePrice['PRICE'] * (1 + 1 * $VAL / 100), 2), 'CURRENCY' => $basePrice['CURRENCY']);
                 CPrice::Update($res['ID'], $fields);
                 unset($arFields);
                 $iblockList[$basePrice['ELEMENT_IBLOCK_ID']] = $basePrice['ELEMENT_IBLOCK_ID'];
             }
             unset($basePrice, $parentIterator);
         }
         unset($res, $db_res, $baseType);
     } else {
         $db_res = CPrice::GetListEx(array(), array("PRODUCT_ID" => $ID), false, false, array('ID', 'PRODUCT_ID', 'EXTRA_ID', 'ELEMENT_IBLOCK_ID'));
         while ($res = $db_res->Fetch()) {
             $res['ELEMENT_IBLOCK_ID'] = (int) $res['ELEMENT_IBLOCK_ID'];
             $res["EXTRA_ID"] = (int) $res["EXTRA_ID"];
             if ($res["EXTRA_ID"] > 0) {
                 $res1 = CExtra::GetByID($res["EXTRA_ID"]);
                 $arFields = array("PRICE" => $VAL * (1 + 1 * $res1["PERCENTAGE"] / 100));
                 CPrice::Update($res["ID"], $arFields);
                 $iblockList[$res['ELEMENT_IBLOCK_ID']] = $res['ELEMENT_IBLOCK_ID'];
             }
         }
         unset($res, $db_res);
     }
     if (!empty($iblockList) && Main\Loader::includeModule('iblock')) {
         foreach ($iblockList as &$iblock) {
             CIblock::clearIblockTagCache($iblock);
         }
         unset($iblock);
     }
     unset($iblockList);
 }
Beispiel #2
0
 /**
  * @return array
  */
 protected function getList()
 {
     if ($this->_list !== null) {
         return $this->_list;
     }
     $cache = $this->getCache();
     $cId = get_class($this) . '_list';
     if (!$cache || ($this->_list = $cache->get($cId)) === false) {
         $this->_list = [];
         $res = \CIblock::GetList([], $this->filter);
         $iblocksIds = [];
         while ($ob = $res->Fetch()) {
             $arItem = [];
             foreach ($this->select as $field) {
                 if (!isset($ob[$field])) {
                     continue;
                 }
                 $arItem[$field] = $ob[$field];
             }
             $this->_list[$ob['ID']] = $arItem;
         }
         if (in_array('PROPERTIES', $this->select) && !empty($this->_list)) {
             $pRes = \CIBlockProperty::GetList(['sort' => 'asc'], []);
             while ($pOb = $pRes->Fetch()) {
                 if (!isset($this->_list[$pOb['IBLOCK_ID']])) {
                     continue;
                 }
                 $this->_list[$pOb['IBLOCK_ID']]['PROPERTIES'][] = $pOb;
             }
         }
         if ($cache) {
             $cache->set($cId, $this->_list, $this->cacheTime);
         }
     }
     return $this->_list;
 }
Beispiel #3
0
 private function CheckIblock()
 {
     if ($arIblock = CIblock::GetList(array(), array("CODE" => $this->ModuleIblockCode))->Fetch()) {
         $this->arResult["INSTALLATION"]["IBLOCK_INSTALL"] = false;
         $this->arResult["INSTALLATION"]["IBLOCK_ID"] = $arIblock["ID"];
     }
 }
Beispiel #4
0
}
$userPropValue = $userProp;
$arExcludedProperties = array('LOGIN', 'PASSWORD', 'EMAIL', 'UF_STATE_FIRST', 'UF_STATE_LAST', 'UF_1C');
foreach ($arExcludedProperties as $prop) {
    unset($userPropValue[$prop]);
}
$userPropValue = array_keys($userPropValue);
$arIBlockType = array("-" => '');
$rsIBlockType = CIBlockType::GetList(array("sort" => "asc"), array("ACTIVE" => "Y"));
while ($arr = $rsIBlockType->Fetch()) {
    if ($ar = CIBlockType::GetByIDLang($arr["ID"], LANGUAGE_ID)) {
        $arIBlockType[$arr["ID"]] = "[" . $arr["ID"] . "] " . $ar["NAME"];
    }
}
if ($arCurrentValues['IBLOCK_TYPE'] && $arCurrentValues['IBLOCK_TYPE'] != '-') {
    $rsIBlock = CIblock::GetList(array('SORT' => 'ASC'), array('TYPE' => $arCurrentValues['IBLOCK_TYPE']));
    while ($arIBlock = $rsIBlock->Fetch()) {
        $arIBLockList[$arIBlock['ID']] = $arIBlock['NAME'];
    }
}
$arUGroupsEx = array();
$dbUGroups = CGroup::GetList($by = "c_sort", $order = "asc");
while ($arUGroups = $dbUGroups->Fetch()) {
    $arUGroupsEx[$arUGroups["ID"]] = $arUGroups["NAME"];
}
$bLDAP = CModule::IncludeModule('ldap');
if ($bLDAP) {
    $dbRes = CLDAPServer::GetList();
    $arLDAPServers = array('' => GetMessage('CP_BCI1_LDAP_SERVER_CHOOSE'));
    while ($arRes = $dbRes->Fetch()) {
        $arLDAPServers[$arRes['ID']] = $arRes['NAME'];
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/ws.projectsettings/prolog.php";
/* @var $APPLICATION CMain */
if ($APPLICATION->GetGroupRight("ws.projectsettings") == "D") {
    $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
}
#--- save fields ---
if ($fields = $_REQUEST['fields']) {
    WS_PSettings::clearAll();
    foreach ($fields as $fName => $fData) {
        WS_PSettings::setupField($fData);
    }
}
#--- view fields ---
if (CModule::IncludeModule('iblock')) {
    $iblocks = array();
    $rsIblock = CIblock::GetList(null, array('ACTIVE' => 'Y'));
    while ($arIblock = $rsIblock->fetch()) {
        $iblocks[$arIblock['ID']] = $arIblock['NAME'];
    }
}
$groups = array();
$rsUserGroups = CGroup::GetList($ugBy = 'name', $ugOrder = 'asc', array('ACTIVE' => 'Y'));
while ($arUGroup = $rsUserGroups->fetch()) {
    $groups[$arUGroup['ID']] = $arUGroup['NAME'];
}
$tab = new CAdminTabControl('WS_ProgectSettings_tab', array(array('TAB' => GetMessage('ws_product_settings_page_title'), 'DIV' => 'edit1')));
$APPLICATION->SetTitle(GetMessage('ws_product_settings_page_title'));
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
CJSCore::Init(array('ws_progectssettings_fields'));
$jsParams = array('fields' => array(), 'curUri' => $APPLICATION->GetCurPage(), 'newFieldButton' => 'ws_project_settings_add_field_button', 'toogleSimCodesButton' => 'ws_project_settings_toogle_sim_codes_button', 'submitButton' => 'ws_project_settings_save_button', 'defaultButton' => 'ws_project_settings_default_button', 'cancelButton' => 'ws_project_settings_cancel_button', 'types' => array(WS_PSettings::FIELD_TYPE_NUMERIC => GetMessage('ws_projectsettings_field_type_number'), WS_PSettings::FIELD_TYPE_STRING => GetMessage('ws_projectsettings_field_type_string'), WS_PSettings::FIELD_TYPE_LIST => GetMessage('ws_projectsettings_field_type_list'), WS_PSettings::FIELD_TYPE_SIGN => GetMessage('ws_projectsettings_field_type_sign'), WS_PSettings::FIELD_TYPE_USER => GetMessage('ws_projectsettings_field_type_user'), WS_PSettings::FIELD_TYPE_USER_GROUP => GetMessage('ws_projectsettings_field_type_user_group'), WS_PSettings::FIELD_TYPE_IBLOCK => GetMessage('ws_projectsettings_field_type_iblock')), 'variants' => array(WS_PSettings::FIELD_TYPE_IBLOCK => $iblocks, WS_PSettings::FIELD_TYPE_USER_GROUP => $groups), 'customLists' => array());
$typeBuildEvents = GetModuleEvents("ws.projectsettings", "OnBuildTypes");
Beispiel #6
0
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
if (!CModule::IncludeModule("blog")) {
    return false;
}
if (!CModule::IncludeModule("iblock")) {
    return false;
}
if (!CModule::IncludeModule("idea")) {
    return false;
}
$arCurrentValues = is_array($arCurrentValues) ? $arCurrentValues : array();
//IB Idea category
$arIb = array();
$oRes = CIblock::GetList(array("IBLOCK_ID" => "ASC", "NAME" => "DESC"), array('ACTIVE' => 'Y'));
while ($arRes = $oRes->Fetch()) {
    $arIb[$arRes["ID"]] = '(' . $arRes["IBLOCK_TYPE_ID"] . ') ' . $arRes["NAME"];
}
//Default Idea Status
$arUFStatus = array();
$arStatusList = CIdeaManagment::getInstance()->Idea()->GetStatusList();
foreach ($arStatusList as $Status) {
    $arUFStatus[$Status["ID"]] = $Status["VALUE"];
}
//Blog URL
$arBlog = array();
$dbBlog = CBlog::GetList(array("NAME" => "ASC"), array("ACTIVE" => "Y"), false, false, array("ID", "NAME", "URL"));
while ($Blog = $dbBlog->Fetch()) {
    $arBlog[$Blog["URL"]] = $Blog["NAME"];
}
 $iblock = new CIBlock();
 $arFields = array("ACTIVE" => "Y", "FIELDS" => array('IBLOCK_SECTION' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'ACTIVE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'Y'), 'ACTIVE_FROM' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'ACTIVE_TO' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SORT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'NAME' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => ''), 'PREVIEW_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('FROM_DETAIL' => 'N', 'SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95, 'DELETE_WITH_DETAIL' => 'N', 'UPDATE_WITH_DETAIL' => 'N')), 'PREVIEW_TEXT_TYPE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text'), 'PREVIEW_TEXT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'DETAIL_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95)), 'DETAIL_TEXT_TYPE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text'), 'DETAIL_TEXT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'XML_ID' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'CODE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('UNIQUE' => 'Y', 'TRANSLITERATION' => 'Y', 'TRANS_LEN' => 100, 'TRANS_CASE' => 'L', 'TRANS_SPACE' => '_', 'TRANS_OTHER' => '_', 'TRANS_EAT' => 'Y', 'USE_GOOGLE' => 'Y')), 'TAGS' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_NAME' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('FROM_DETAIL' => 'N', 'SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95, 'DELETE_WITH_DETAIL' => 'N', 'UPDATE_WITH_DETAIL' => 'N')), 'SECTION_DESCRIPTION_TYPE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => 'text'), 'SECTION_DESCRIPTION' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_DETAIL_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95)), 'SECTION_XML_ID' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_CODE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('UNIQUE' => 'Y', 'TRANSLITERATION' => 'Y', 'TRANS_LEN' => 100, 'TRANS_CASE' => 'L', 'TRANS_SPACE' => '_', 'TRANS_OTHER' => '_', 'TRANS_EAT' => 'Y', 'USE_GOOGLE' => 'Y'))), "CODE" => "furniture_offers", "XML_ID" => $iblockCode);
 $iblock->Update($IBLOCK_OFFERS_ID, $arFields);
 $iblockCodeFur = "furniture_" . WIZARD_SITE_ID;
 $iblockTypeFur = "catalog";
 $rsIBlockFur = CIBlock::GetList(array(), array("XML_ID" => $iblockCodeFur, "TYPE" => $iblockTypeFur));
 if ($arIBlockFur = $rsIBlockFur->Fetch()) {
     $ID_SKU = CCatalog::LinkSKUIBlock($arIBlockFur["ID"], $IBLOCK_OFFERS_ID);
 }
 $arCatalog = CCatalog::GetByID($IBLOCK_OFFERS_ID);
 if ($arCatalog) {
     CCatalog::Update($IBLOCK_OFFERS_ID, array('PRODUCT_IBLOCK_ID' => $arIBlockFur["ID"], 'SKU_PROPERTY_ID' => $ID_SKU));
 } else {
     CCatalog::Add(array('IBLOCK_ID' => $IBLOCK_OFFERS_ID, 'PRODUCT_IBLOCK_ID' => $arIBlockFur["ID"], 'SKU_PROPERTY_ID' => $ID_SKU));
 }
 $dbOfferProps = CIblock::GetProperties($IBLOCK_OFFERS_ID, array(), array());
 while ($arOfferProps = $dbOfferProps->Fetch()) {
     $arProps[$arOfferProps["XML_ID"]] = $arOfferProps["ID"];
 }
 $property_enums = CIBlockPropertyEnum::GetList(array(), array("IBLOCK_ID" => $IBLOCK_OFFERS_ID, "CODE" => "WIDTH"));
 $arEnumIds = array();
 while ($enum_fields = $property_enums->GetNext()) {
     $arEnumIds[] = $enum_fields["ID"];
 }
 $dbElement = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $arIBlockFur["ID"], "XML_ID" => 56), false);
 $arElement = $dbElement->Fetch();
 $arOfferElements[] = array("PRODUCT" => array("IBLOCK_ID" => $IBLOCK_OFFERS_ID, "NAME" => GetMessage("CAT_OFFER_NAME_1"), "ACTIVE" => "Y", "PROPERTY_VALUES" => array($arProps["CML2_LINK"] => $arElement["ID"], $arProps["327"] => $arEnumIds[0], $arProps["329"] => GetMessage("CAT_OFFER_COLOR_1"))), "PRICE" => GetMessage("CAT_OFFER_PRICE_11"));
 $arOfferElements[] = array("PRODUCT" => array("IBLOCK_ID" => $IBLOCK_OFFERS_ID, "NAME" => GetMessage("CAT_OFFER_NAME_1"), "ACTIVE" => "Y", "PROPERTY_VALUES" => array($arProps["CML2_LINK"] => $arElement["ID"], $arProps["327"] => $arEnumIds[1], $arProps["329"] => GetMessage("CAT_OFFER_COLOR_1"))), "PRICE" => GetMessage("CAT_OFFER_PRICE_12"));
 $dbElement = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $arIBlockFur["ID"], "XML_ID" => 55), false);
 $arElement = $dbElement->Fetch();
 $arOfferElements[] = array("PRODUCT" => array("IBLOCK_ID" => $IBLOCK_OFFERS_ID, "NAME" => GetMessage("CAT_OFFER_NAME_2"), "ACTIVE" => "Y", "PROPERTY_VALUES" => array($arProps["CML2_LINK"] => $arElement["ID"], $arProps["327"] => $arEnumIds[2], $arProps["329"] => GetMessage("CAT_OFFER_COLOR_1"))), "PRICE" => GetMessage("CAT_OFFER_PRICE_21"));