• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/admin/orderedit.php
  • Класс: BitrixSaleHelpersAdminfor
  • Вызов: for::getCouponList
static function getCouponList(Order $order = null, $needRecalculate = true)
{
	$result = array();
	$discounts = array();

	if ($order instanceof SaleArchiveOrder)
	{
		$discounts = $order->getDiscountData();
		return $discounts['COUPON_LIST'];
	}

	$couponsList = self::getCouponsData();

	if($order)
		$discounts = self::getDiscountsApplyResult($order, $needRecalculate);

	if (!empty($couponsList))
	{
		foreach ($couponsList as &$oneCoupon)
		{
			if ($oneCoupon['STATUS'] == DiscountCouponsManager::STATUS_NOT_FOUND || $oneCoupon['STATUS'] == DiscountCouponsManager::STATUS_FREEZE)
				$oneCoupon['JS_STATUS'] = 'BAD';
			elseif ($oneCoupon['STATUS'] == DiscountCouponsManager::STATUS_NOT_APPLYED || $oneCoupon['STATUS'] == DiscountCouponsManager::STATUS_ENTERED)
				$oneCoupon['JS_STATUS'] = 'ENTERED';
			else
				$oneCoupon['JS_STATUS'] = 'APPLYED';

			$oneCoupon['JS_CHECK_CODE'] = '';

			if (isset($oneCoupon['CHECK_CODE_TEXT']))
			{
				$oneCoupon['JS_CHECK_CODE'] = (
				is_array($oneCoupon['CHECK_CODE_TEXT'])
					? implode(', ', $oneCoupon['CHECK_CODE_TEXT'])
					: $oneCoupon['CHECK_CODE_TEXT']
				);
			}

			if(!empty($discounts) && isset($discounts["COUPON_LIST"]) && is_array($discounts["COUPON_LIST"]))
			{
				foreach($discounts["COUPON_LIST"] as $coupon => $couponParams)
				{
					$couponsList[$coupon]["APPLY"] = $couponParams["APPLY"];
					$couponsList[$coupon]["DISCOUNT_SIZE"] = "";

					if(isset($couponParams["ORDER_DISCOUNT_ID"]) && $couponParams["ORDER_DISCOUNT_ID"] <> '')
					{
						$couponsList[$coupon]["ORDER_DISCOUNT_ID"] = $couponParams["ORDER_DISCOUNT_ID"];

						if(isset($discounts["DISCOUNT_LIST"][$couponParams["ORDER_DISCOUNT_ID"]]))
						{
							$couponDiscountParams = $discounts["DISCOUNT_LIST"][$couponParams["ORDER_DISCOUNT_ID"]];

							if(isset($couponDiscountParams["ACTIONS_DESCR"]) && is_array($couponDiscountParams["ACTIONS_DESCR"]))
								foreach($couponDiscountParams["ACTIONS_DESCR"] as $key => $val)
									$couponsList[$coupon]["DISCOUNT_SIZE"] .= $val;
						}
					}
				}
			}
		}

		$result = array_values($couponsList);
	}

	return $result;
}