Bitrix-D7  20.0.0
Класс BasketItemCollection
Граф наследования:BasketItemCollection:
EntityCollection CollectionBase BasketBase BundleCollection Basket

Открытые члены

 createItem ($moduleId, $productId, $basketCode=null)
 
 getOrder ()
 
 getBasket ()
 
 loadFromArray (array $itemList)
 
 getItemByBasketCode ($code)
 
 getItemById ($id)
 
 getBasketItems ()
 
 getExistsItem ($moduleId, $productId, array $properties=array())
 
 getOrderId ()
 
 getContext ()
 
- Открытые члены унаследованные от EntityCollection
 onItemModify (CollectableEntity $item, $name=null, $oldValue=null, $value=null)
 
 deleteItem ($index)
 
 clearCollection ()
 
 getIndexById ($id)
 
 getItemByIndex ($index)
 
 isStartField ($isMeaningfulField=false)
 
 clearStartField ()
 
 hasMeaningfulField ()
 
 doFinalAction ($hasMeaningfulField=false)
 
 isMathActionOnly ()
 
 setMathActionOnly ($value=false)
 
 isChanged ()
 
 verify ()
 
 isClone ()
 
 isAnyItemDeleted ()
 
 clearChanged ()
 
 createClone (\SplObjectStorage $cloneEntity)
 
- Открытые члены унаследованные от CollectionBase
 getIterator ()
 
 offsetExists ($offset)
 Whether a offset exists. Подробнее...
 
 offsetGet ($offset)
 Offset to retrieve. Подробнее...
 
 offsetSet ($offset, $value)
 Offset to set. Подробнее...
 
 offsetUnset ($offset)
 Offset to unset. Подробнее...
 
 count ()
 Count elements of an object. Подробнее...
 
 current ()
 Return the current element. Подробнее...
 
 next ()
 Move forward to next element. Подробнее...
 
 key ()
 Return the key of the current element. Подробнее...
 
 valid ()
 Checks if current position is valid. Подробнее...
 
 rewind ()
 Rewind the Iterator to the first element. Подробнее...
 
 isEmpty ()
 Checks if collection is empty. Подробнее...
 

Защищенные статические члены

static createItemInternal (BasketItemCollection $basket, $moduleId, $productId, $basketCode=null)
 
static getItemCollectionClassName ()
 

Дополнительные унаследованные члены

- Открытые статические члены унаследованные от EntityCollection
static getRegistryType ()
 
- Защищенные члены унаследованные от EntityCollection
 __construct ()
 EntityCollection constructor. Подробнее...
 
 addItem (CollectableEntity $item)
 
 createIndex ()
 
 getDeletableItems ()
 
 callEventOnBeforeCollectionClear ()
 
 getEntityParent ()
 
 setAnyItemDeleted ($value)
 
- Защищенные данные унаследованные от EntityCollection
 $isClone = false
 
 $anyItemDeleted = false
 
- Защищенные данные унаследованные от CollectionBase
 $collection = array()
 

Подробное описание

См. определение в файле basketitemcollection.php строка 18

Методы

◆ createItem()

createItem (   $moduleId,
  $productId,
  $basketCode = null 
)
Аргументы
$moduleId
$productId
null$basketCode
Возвращает
BasketItemBase
Исключения
NotImplementedException

См. определение в файле basketitemcollection.php строка 29

30  {
31  $basketItem = static::createItemInternal($this, $moduleId, $productId, $basketCode);
32 
33  $basketItem->setCollection($this);
34  $this->addItem($basketItem);
35 
36  return $basketItem;
37  }

◆ createItemInternal()

static createItemInternal ( BasketItemCollection  $basket,
  $moduleId,
  $productId,
  $basketCode = null 
)
staticprotected
Аргументы
BasketItemCollection$basket
$moduleId
$productId
null$basketCode
Возвращает
BasketItemBase
Исключения
NotImplementedException

См. определение в файле basketitemcollection.php строка 48

49  {
50  /** @var BasketItem $basketItemClassName */
51  $basketItemClassName = static::getItemCollectionClassName();
52  return $basketItemClassName::create($basket, $moduleId, $productId, $basketCode);
53  }

◆ getBasket()

getBasket ( )
abstract
Возвращает
BasketBase

Переопределяется в BasketBase и BundleCollection.

◆ getBasketItems()

getBasketItems ( )
Возвращает
array

См. определение в файле basketitemcollection.php строка 145

146  {
147  return $this->collection;
148  }

◆ getContext()

getContext ( )
Возвращает
array
Исключения

Переопределяется в BasketBase.

См. определение в файле basketitemcollection.php строка 202

203  {
204  global $USER;
205  $context = array();
206 
207  /** @var BasketItem $basketItem */
208  $basketItem = $this->rewind();
209  if ($basketItem)
210  {
211  $siteId = $basketItem->getField('LID');
212  $fuserId = $basketItem->getFUserId();
213 
214  $userId = Fuser::getUserIdById($fuserId);
215 
216  if (empty($context['SITE_ID']))
217  {
218  $context['SITE_ID'] = $siteId;
219  }
220 
221  if (empty($context['USER_ID']) && $userId > 0)
222  {
223  $context['USER_ID'] = $userId;
224  }
225  }
226 
227  if (empty($context['SITE_ID']))
228  {
229  $context['SITE_ID'] = SITE_ID;
230  }
231 
232  if (empty($context['USER_ID']))
233  {
234  $context['USER_ID'] = isset($USER) && $USER instanceof \CUser ? (int)$USER->GetID() : 0;
235  }
236 
237  if (Loader::includeModule('currency'))
238  {
239  if (!empty($context['SITE_ID']))
240  {
241  $currency = Internals\SiteCurrencyTable::getSiteCurrency($context['SITE_ID']);
242  }
243 
244  if (empty($currency))
245  {
247  }
248 
249  if (!empty($currency) && Currency\CurrencyManager::checkCurrencyID($currency))
250  {
251  $context['CURRENCY'] = $currency;
252  }
253  }
254 
255  return $context;
256  }

◆ getExistsItem()

getExistsItem (   $moduleId,
  $productId,
array  $properties = array() 
)
Аргументы
$moduleId
$productId
array$properties
Возвращает
BasketItem|null
Исключения
NotImplementedException

См. определение в файле basketitemcollection.php строка 159

160  {
161  /** @var BasketItem $basketItem */
162  foreach ($this->collection as $basketItem)
163  {
164  if ($basketItem->getField('PRODUCT_ID') == $productId && $basketItem->getField('MODULE') == $moduleId)
165  {
166  /** @var BasketPropertiesCollection $basketPropertyCollection */
167  $basketPropertyCollection = $basketItem->getPropertyCollection();
168  if (!empty($properties) && is_array($properties))
169  {
170  if ($basketPropertyCollection->isPropertyAlreadyExists($properties))
171  {
172  return $basketItem;
173  }
174  }
175  elseif (count($basketPropertyCollection) == 0)
176  {
177  return $basketItem;
178  }
179  }
180  }
181 
182  return null;
183  }

◆ getItemByBasketCode()

getItemByBasketCode (   $code)
Аргументы
$code
Возвращает
BasketItemBase|null
Исключения

Переопределяется в BasketBase.

См. определение в файле basketitemcollection.php строка 106

107  {
108  /** @var BasketItemBase $basketItem */
109  foreach ($this->collection as $basketItem)
110  {
111  $basketItem = $basketItem->findItemByBasketCode($code);
112  if ($basketItem != null)
113  {
114  return $basketItem;
115  }
116  }
117 
118  return null;
119  }

◆ getItemById()

getItemById (   $id)
Аргументы
$id
Возвращает
BasketItemBase|null
Исключения

Переопределяет метод предка EntityCollection.

См. определение в файле basketitemcollection.php строка 126

127  {
128  if ($id <= 0)
129  return null;
130 
131  /** @var BasketItemBase $basketItem */
132  foreach ($this->collection as $basketItem)
133  {
134  $item = $basketItem->findItemById($id);
135  if ($item !== null)
136  return $item;
137  }
138 
139  return null;
140  }

◆ getItemCollectionClassName()

static getItemCollectionClassName ( )
staticprotected
Возвращает
string
Исключения
NotImplementedException

См. определение в файле basketitemcollection.php строка 95

96  {
97  $registry = Registry::getInstance(static::getRegistryType());
98  return $registry->getBasketItemClassName();
99  }

◆ getOrder()

getOrder ( )
Возвращает
OrderBase

Переопределяется в BasketBase.

См. определение в файле basketitemcollection.php строка 58

59  {
60  $basket = $this->getBasket();
61  if ($basket)
62  return $basket->getOrder();
63 
64  return null;
65  }

◆ getOrderId()

getOrderId ( )
Возвращает
int

См. определение в файле basketitemcollection.php строка 188

189  {
190  $order = $this->getOrder();
191  if ($order)
192  return $order->getId();
193 
194  return 0;
195  }

◆ loadFromArray()

loadFromArray ( array  $itemList)
Аргументы
array$itemList
Исключения
NotImplementedException

См. определение в файле basketitemcollection.php строка 78

79  {
80  /** @var BasketItemBase $itemClassName */
81  $itemClassName = static::getItemCollectionClassName();
82 
83  foreach ($itemList as $item)
84  {
85  $basketItem = $itemClassName::load($this, $item);
86  $this->addItem($basketItem);
87  }
88  }

Объявления и описания членов класса находятся в файле:
Bitrix\Sale\Internals\CollectionBase\rewind
rewind()
Rewind the Iterator to the first element.
Definition: collectionbase.php:120
Bitrix\Sale\BasketItemCollection\getBasket
getBasket()
Bitrix\Sale\Internals\CollectionBase\count
count()
Count elements of an object.
Definition: collectionbase.php:79
Bitrix\Currency\CurrencyManager\checkCurrencyID
static checkCurrencyID($currency)
Check currency id.
Definition: currencymanager.php:36
Bitrix\Sale\Internals\CollectionBase\$collection
$collection
Definition: collectionbase.php:21
Bitrix\Sale\Internals\SiteCurrencyTable\getSiteCurrency
static getSiteCurrency($siteId)
Returns site currency.
Definition: internals/sitecurrency.php:80
Bitrix\Sale\BasketItemCollection\getOrder
getOrder()
Definition: basketitemcollection.php:58
Bitrix\Sale\Registry\getInstance
static getInstance($type)
Definition: sale/lib/registry.php:161
Bitrix\Sale\Internals\EntityCollection\addItem
addItem(CollectableEntity $item)
Definition: entitycollection.php:86
Bitrix\Currency\CurrencyManager\getBaseCurrency
static getBaseCurrency()
Return base currency.
Definition: currencymanager.php:59
Bitrix\Sale\Fuser\getUserIdById
static getUserIdById($fuserId)
Return user by fuserId.
Definition: fuser.php:124
Bitrix\Main\Loader\includeModule
static includeModule($moduleName)
Includes module by its name.
Definition: main/lib/loader.php:70