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

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

 setParentBasketItem (BasketItem $basketItem)
 
 getParentBasketItem ()
 
 addItem (CollectableEntity $item)
 
 deleteItem ($index)
 
 loadFromDb (array $filter)
 
 createClone (\SplObjectStorage $cloneEntity=null)
 
 getBasket ()
 
 onItemModify (Internals\CollectableEntity $item, $name=null, $oldValue=null, $value=null)
 
- Открытые члены унаследованные от BasketItemCollection
 createItem ($moduleId, $productId, $basketCode=null)
 
 getOrder ()
 
 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)
 
 clearCollection ()
 
 getIndexById ($id)
 
 getItemByIndex ($index)
 
 isStartField ($isMeaningfulField=false)
 
 clearStartField ()
 
 hasMeaningfulField ()
 
 doFinalAction ($hasMeaningfulField=false)
 
 isMathActionOnly ()
 
 setMathActionOnly ($value=false)
 
 isChanged ()
 
 verify ()
 
 isClone ()
 
 isAnyItemDeleted ()
 
 clearChanged ()
 
- Открытые члены унаследованные от 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 getList (array $parameters)
 
static createBundleCollectionObject ()
 
static getRegistryType ()
 

Защищенные члены

 getEntityParent ()
 
- Защищенные члены унаследованные от EntityCollection
 __construct ()
 EntityCollection constructor. Подробнее...
 
 createIndex ()
 
 getDeletableItems ()
 
 callEventOnBeforeCollectionClear ()
 
 setAnyItemDeleted ($value)
 

Защищенные данные

 $parentBasketItem = null
 
- Защищенные данные унаследованные от EntityCollection
 $isClone = false
 
 $anyItemDeleted = false
 
- Защищенные данные унаследованные от CollectionBase
 $collection = array()
 

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

- Защищенные статические члены унаследованные от BasketItemCollection
static createItemInternal (BasketItemCollection $basket, $moduleId, $productId, $basketCode=null)
 
static getItemCollectionClassName ()
 

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

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

Методы

◆ addItem()

addItem ( CollectableEntity  $item)
Аргументы
CollectableEntity$item
Возвращает
CollectableEntity
Исключения
Main

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

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

48  {
49  return parent::addItem($item);
50  }

◆ createBundleCollectionObject()

static createBundleCollectionObject ( )
static
Возвращает
BundleCollection
Исключения
Main

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

96  {
97  $registry = Registry::getInstance(static::getRegistryType());
98  $bundleCollectionClassName = $registry->getBundleCollectionClassName();
99 
100  return new $bundleCollectionClassName();
101  }

◆ createClone()

createClone ( \SplObjectStorage  $cloneEntity = null)

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

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

152  {
153  if ($cloneEntity === null)
154  {
155  $cloneEntity = new \SplObjectStorage();
156  }
157 
158  /** @var BundleCollection $bundleClone */
159  $bundleClone = parent::createClone($cloneEntity);
160 
161  /** @var BasketItem $parentBasketItem */
162  if ($parentBasketItem = $this->parentBasketItem)
163  {
164  if (!$cloneEntity->contains($parentBasketItem))
165  {
166  $cloneEntity[$parentBasketItem] = $parentBasketItem->createClone($cloneEntity);
167  }
168 
169  if ($cloneEntity->contains($parentBasketItem))
170  {
171  $bundleClone->parentBasketItem = $cloneEntity[$parentBasketItem];
172  }
173  }
174 
175  return $bundleClone;
176  }

◆ deleteItem()

deleteItem (   $index)
Аргументы
$index
Возвращает
mixed
Исключения
Main

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

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

78  {
79  /** @var Order $order */
80  if ($order = $this->getOrder())
81  {
82  /** @var BasketItem $item */
83  $item = $this->getItemByIndex($index);
84 
85  $order->onBeforeBasketItemDelete($item);
86  }
87 
88  return parent::deleteItem($index);
89  }

◆ getBasket()

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

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

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

182  {
183  $collection = $this;
184 
185  while($collection && $collection instanceof BundleCollection)
186  {
187  $entityParent = $collection->getEntityParent();
188  $collection = $entityParent->getCollection();
189  }
190 
191  if ($collection instanceof BasketBase)
192  {
193  return $collection;
194  }
195 
196  return null;
197  }

◆ getEntityParent()

getEntityParent ( )
protected
Возвращает
BasketItem|null

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

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

38  {
39  return $this->getParentBasketItem();
40  }

◆ getList()

static getList ( array  $parameters)
static
Аргументы
array$parameters
Возвращает
Main\DB\Result
Исключения
Main

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

58  {
59  $registry = Registry::getInstance(static::getRegistryType());
60 
61  /** @var Basket $basketClassName */
62  $basketClassName = $registry->getBasketClassName();
63 
64  return $basketClassName::getList($parameters);
65  }

◆ getParentBasketItem()

getParentBasketItem ( )
Возвращает
BasketItem|null

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

30  {
32  }

◆ getRegistryType()

static getRegistryType ( )
static
Возвращает
string

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

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

203  {
205  }

◆ loadFromDb()

loadFromDb ( array  $filter)
Аргументы
array$filter
Возвращает
BundleCollection
Исключения
Main

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

111  {
112  $select = array("ID", "LID", "MODULE", "PRODUCT_ID", "QUANTITY", "WEIGHT",
113  "DELAY", "CAN_BUY", "PRICE", "CUSTOM_PRICE", "BASE_PRICE", 'PRODUCT_PRICE_ID', "CURRENCY", 'BARCODE_MULTI',
114  "RESERVED", "RESERVE_QUANTITY", "NAME", "CATALOG_XML_ID", "VAT_RATE", "NOTES", "DISCOUNT_PRICE",
115  "PRODUCT_PROVIDER_CLASS", "CALLBACK_FUNC", "ORDER_CALLBACK_FUNC", "PAY_CALLBACK_FUNC", "CANCEL_CALLBACK_FUNC",
116  "DIMENSIONS", "TYPE", "SET_PARENT_ID", "DETAIL_PAGE_URL", "FUSER_ID", 'MEASURE_CODE', 'MEASURE_NAME', 'ORDER_ID',
117  'DATE_INSERT', 'DATE_UPDATE', 'PRODUCT_XML_ID', 'SUBSCRIBE', 'RECOMMENDATION', 'VAT_INCLUDED', 'SORT'
118  );
119 
120  $itemList = array();
121 
122  $res = static::getList(array(
123  "filter" => $filter,
124  "select" => $select,
125  "order" => array('SORT' => 'ASC', 'ID' => 'ASC'),
126  ));
127  while ($item = $res->fetch())
128  {
129  $itemList[$item['ID']] = $item;
130  }
131 
132  $this->loadFromArray($itemList);
133 
134  return $this;
135  }

◆ onItemModify()

onItemModify ( Internals\CollectableEntity  $item,
  $name = null,
  $oldValue = null,
  $value = null 
)
Аргументы
CollectableEntity$item
null$name
null$oldValue
null$value
Возвращает
Result
Исключения
Main

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

223  {
224  if (!($item instanceof BasketItemBase))
225  throw new Main\ArgumentTypeException($item);
226 
227  $result = new Result();
228 
229  /** @var Order $order */
230  $order = $this->getOrder();
231  if ($order)
232  {
233  $shipmentCollection = $order->getShipmentCollection();
234  if ($shipmentCollection)
235  {
236  $r = $shipmentCollection->onBasketModify(EventActions::UPDATE, $item, $name, $oldValue, $value);
237  if (!$r->isSuccess())
238  {
239  $result->addErrors($r->getErrors());
240  }
241  }
242  }
243 
244  return $result;
245  }

◆ setParentBasketItem()

setParentBasketItem ( BasketItem  $basketItem)
Аргументы
BasketItem$basketItem

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

22  {
23  $this->parentBasketItem = $basketItem;
24  }

Поля

◆ $parentBasketItem

$parentBasketItem = null
protected

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


Объявления и описания членов класса находятся в файле:
Bitrix\Sale\BundleCollection\getParentBasketItem
getParentBasketItem()
Definition: bundlecollection.php:29
Bitrix\Sale\Registry\REGISTRY_TYPE_ORDER
const REGISTRY_TYPE_ORDER
Definition: sale/lib/registry.php:16
Bitrix\Sale\Internals\CollectionBase\$collection
$collection
Definition: collectionbase.php:21
Bitrix\Sale\BasketItemCollection\getOrder
getOrder()
Definition: basketitemcollection.php:58
Bitrix\Sale\Registry\getInstance
static getInstance($type)
Definition: sale/lib/registry.php:161
Bitrix\Sale\EventActions\UPDATE
const UPDATE
Definition: eventactions.php:9
Bitrix\Sale\BundleCollection\$parentBasketItem
$parentBasketItem
Definition: bundlecollection.php:16
Bitrix\Sale\Internals\EntityCollection\getItemByIndex
getItemByIndex($index)
Definition: entitycollection.php:217
Bitrix\Sale\BasketItemCollection\loadFromArray
loadFromArray(array $itemList)
Definition: basketitemcollection.php:78