} $arDefaultValues = array('XML_ID' => '', 'SITE_ID' => '', 'NAME' => '', 'ACTIVE' => 'Y', 'SORT' => 100, 'ACTIVE_FROM' => '', 'ACTIVE_TO' => '', 'RENEWAL' => 'N', 'VALUE_TYPE' => 'P', 'VALUE' => '', 'MAX_DISCOUNT' => '', 'CURRENCY' => '', 'PRIORITY' => 1, 'LAST_DISCOUNT' => 'Y', 'NOTES' => '', 'CONDITIONS' => ''); $arDefCoupons = array('COUPON_ADD' => 'N', 'COUPON_TYPE' => Catalog\DiscountCouponTable::TYPE_ONE_ROW, 'COUPON_COUNT' => ''); $arSelect = array_merge(array('ID', 'VERSION'), array_keys($arDefaultValues)); $arDiscount = $arDefaultValues; $arDiscountGroupList = array(); $arDiscountCatList = array(); $arCoupons = $arDefCoupons; if (0 < $ID) { $rsDiscounts = CCatalogDiscount::GetList(array(), array("ID" => $ID), false, false, $arSelect); if (!($arDiscount = $rsDiscounts->Fetch())) { $ID = 0; $arDiscount = $arDefaultValues; $arCoupons = $arDefCoupons; } else { $rsDiscountGroups = CCatalogDiscount::GetDiscountGroupsList(array(), array('DISCOUNT_ID' => $ID, '>USER_GROUP_ID' => 0), false, false, array('ID', 'DISCOUNT_ID', 'USER_GROUP_ID')); while ($arDiscountGroup = $rsDiscountGroups->Fetch()) { $arDiscountGroupList[] = (int) $arDiscountGroup['USER_GROUP_ID']; } $rsDiscountCats = CCatalogDiscount::GetDiscountCatsList(array(), array('DISCOUNT_ID' => $ID, '>PRICE_TYPE_ID' => 0), false, false, array('ID', 'DISCOUNT_ID', 'PRICE_TYPE_ID')); while ($arDiscountCat = $rsDiscountCats->Fetch()) { $arDiscountCatList[] = (int) $arDiscountCat['PRICE_TYPE_ID']; } if (!isset($arDiscount['VERSION']) || (int) $arDiscount['VERSION'] != CCatalogDiscount::CURRENT_FORMAT) { $readOnly = true; $boolShowCoupons = false; $rsAdminNotify = CAdminNotify::GetList(array(), array('MODULE_ID' => 'catalog', 'TAG' => 'CATALOG_DISC_CONVERT')); if (!($arAdminNotify = $rsAdminNotify->Fetch())) { $strLangPath = $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/catalog/lang/'; $strDefLang = false; $arLangList = array();
$arDiscountGroupList = array(); $arDiscountCatList = array(); $arCoupons = $arDefCoupons; if (0 < $ID) { $rsDiscounts = CCatalogDiscount::GetList(array(), array("ID" => $ID), false, false, $arSelect); if (!($arDiscount = $rsDiscounts->Fetch())) { $ID = 0; $arDiscount = $arDefaultValues; $arCoupons = $arDefCoupons; } else { $rsDiscountGroups = CCatalogDiscount::GetDiscountGroupsList(array(), array("DISCOUNT_ID" => $ID)); while ($arDiscountGroup = $rsDiscountGroups->Fetch()) { $arDiscountGroupList[] = intval($arDiscountGroup["GROUP_ID"]); } $rsDiscountCats = CCatalogDiscount::GetDiscountCatsList(array(), array("DISCOUNT_ID" => $ID)); while ($arDiscountCat = $rsDiscountCats->Fetch()) { $arDiscountCatList[] = intval($arDiscountCat["CATALOG_GROUP_ID"]); } if (!isset($arDiscount['VERSION']) || intval($arDiscount['VERSION']) != CCatalogDiscount::CURRENT_FORMAT) { $bReadOnly = true; $boolShowCoupons = false; $rsAdminNotify = CAdminNotify::GetList(array(), array('MODULE_ID'=>'catalog', 'TAG' => 'CATALOG_DISC_CONVERT'));
/** * Получение текущей скидки пользователя * * @param int $USER_ID - идентификатор пользователя */ public static function GetUserDiscount($USER_ID) { global $USER; $arGroups = $USER -> GetUserGroup($USER_ID); $arDiscount = self::GetDiscountList(); $iDiscount = 0; $GROUP_ID = ""; foreach($arDiscount as $arItem) { if(in_array($arItem["PROPERTY_GROUP_ID_VALUE"], $arGroups)) $GROUP_ID = $arItem["PROPERTY_GROUP_ID_VALUE"]; } if($GROUP_ID && CModule::IncludeModule("catalog")) { $rs = CCatalogDiscount::GetDiscountGroupsList(array(), array("GROUP_ID" => $GROUP_ID)); if($rs -> SelectedRowsCount()) { $ar = $rs -> Fetch(); $ar = CCatalogDiscount::GetByID($ar["DISCOUNT_ID"]); if($ar["VALUE_TYPE"] == "P") $iDiscount = intval($ar["VALUE"]); } } return $iDiscount; }