Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/modules/sale/lib/delivery/restrictions/
Upload File :
Current File : /var/www/homesaver/www/bitrix/modules/sale/lib/delivery/restrictions/byproductcategory.php

<?php
namespace Bitrix\Sale\Delivery\Restrictions;

use Bitrix\Main\Localization\Loc;
use Bitrix\Sale\Internals\Entity;
use Bitrix\Sale\Services\Base\ProductCategoryRestriction;
use Bitrix\Sale\Shipment;

Loc::loadMessages(__FILE__);

/**
 * Class ByProductCategory
 * Restricts delivery by product category
 * @package Bitrix\Sale\Delivery\Restrictions
 */
class ByProductCategory extends ProductCategoryRestriction
{
	public static $easeSort = 400;

	/**
	 * @return string
	 */
	protected static function getJsHandler(): string
	{
		return 'BX.Sale.Delivery';
	}

	/**
	 * Returns the restriction description
	 * @return string
	 */
	public static function getClassDescription() : string
	{
		return Loc::getMessage("SALE_DLVR_RSTR_BY_PC_DESCRIPT");
	}

	/**
	 * @param Shipment $entity
	 * @return array
	 */
	protected static function getBasketItems(Entity $entity): array
	{
		if (!$entity instanceof Shipment)
		{
			return [];
		}

		$basketItems = [];

		/** @var \Bitrix\Sale\ShipmentItem $shipmentItem */
		foreach ($entity->getShipmentItemCollection()->getSellableItems() as $shipmentItem)
		{
			$basketItems[] = $shipmentItem->getBasketItem();
		}

		return $basketItems;
	}
}