'Не выбран тип визуального представления скидки на сайте' ]; public static function getLang($code) { return static::$lang[$code]; } protected static function isValidData() { return isset($_POST['PRODUCT_TYPE']) && $_POST['PRODUCT_TYPE'] !== '0' && $_POST['PRODUCT_TYPE'] !== ''; } protected static function updateAdditionalDiscountData($id) { $depsLoaded = \Bitrix\Main\Loader::includeModule('iblock'); if(!$depsLoaded) { return; } $res_element = \CIBlockElement::GetList( ['SORT' => 'ASC'], ['IBLOCK_ID' => discountApp()->config('DISCOUNT_TYPE_IBLOCK_ID'), 'NAME' => $id], false, false, ['ID', 'NAME', 'PROPERTY_TYPE'] ); $res_element_count = $res_element->SelectedRowsCount(); if($res_element_count){ $obElement = $res_element->GetNext(); \CIBlockElement::SetPropertyValuesEx( $obElement['ID'], discountApp()->config('DISCOUNT_TYPE_IBLOCK_ID'), [ 'TYPE' => $_POST['PRODUCT_TYPE'], 'MIN_COUNT_PROD' => $_POST['MIN_COUNT_PROD'] ] ); } else { $el = new \CIBlockElement(); $arTypeField = [ 'IBLOCK_ID' => discountApp()->config('DISCOUNT_TYPE_IBLOCK_ID'), 'NAME' => $id, 'PROPERTY_VALUES' => [ 'TYPE' => $_POST['PRODUCT_TYPE'], 'MIN_COUNT_PROD' => $_POST['MIN_COUNT_PROD'], ], ]; $el->Add($arTypeField); } } protected static function addAdditionalDiscountData($id) { $depsLoaded = \Bitrix\Main\Loader::includeModule('iblock'); if(!$depsLoaded) { return; } $el = new \CIBlockElement(); $arTypeField = [ 'IBLOCK_ID' => discountApp()->config('DISCOUNT_TYPE_IBLOCK_ID'), 'NAME' => $id, 'PROPERTY_VALUES' => [ 'TYPE' => $_POST['PRODUCT_TYPE'], 'MIN_COUNT_PROD' => $_POST['MIN_COUNT_PROD'], ], ]; $r = $el->Add($arTypeField); } /** * Немного бреда с седых времен * я хз что тут происходит * коммент от старого разработчика: при поиске оптимальной цены на товар не учитываем скидки типа "От кол-ва" * @see /local/php_interface/include/events.php [git history] * @see BxDiscount [old functions] * * Желательно избавиться от функционала Q !!! * * @param $arResult * @return void */ public static function onGetDiscountResult(&$arResult) { global $scriptType; $counter = 1; if($scriptType === 'XML_EXPORT'){ $counter = 0; } if(count($arResult) > $counter){ foreach($arResult as $key => $discount){ $discountViewType = Tools::getProductTypeArray($discount['ID']); if($discountViewType['PRODUCT_TYPE'] === 'Q'){ unset($arResult[$key]); } } } } }