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

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

 getOrder ()
 
 setOrder (Order $order)
 
 createItem (TradingPlatform\Platform $platform=null)
 
 addItem (Internals\CollectableEntity $item)
 
 save ()
 
 createClone (\SplObjectStorage $cloneEntity)
 
- Открытые члены унаследованные от EntityCollection
 onItemModify (CollectableEntity $item, $name=null, $oldValue=null, $value=null)
 
 deleteItem ($index)
 
 clearCollection ()
 
 getItemById ($id)
 
 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 getRegistryType ()
 
static load (Order $order)
 
static getList (array $parameters=array())
 
static deleteNoDemand ($idOrder)
 

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

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

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

static deleteInternal ($primary)
 

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

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

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

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

Методы

◆ addItem()

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

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

131  {
132  if (!($item instanceof TradeBindingEntity))
133  {
134  throw new Main\NotSupportedException();
135  }
136 
137  return parent::addItem($item);
138  }

◆ createClone()

createClone ( \SplObjectStorage  $cloneEntity)

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

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

239  {
240  if ($this->isClone() && $cloneEntity->contains($this))
241  {
242  return $cloneEntity[$this];
243  }
244 
245  /** @var TradeBindingCollection $tradeBindingCollection */
246  $tradeBindingCollection = parent::createClone($cloneEntity);
247 
248  if ($this->order)
249  {
250  if ($cloneEntity->contains($this->order))
251  {
252  $tradeBindingCollection->order = $cloneEntity[$this->order];
253  }
254  }
255 
256  return $tradeBindingCollection;
257  }

◆ createItem()

createItem ( TradingPlatform\Platform  $platform = null)
Аргументы
TradingPlatform\Platform | null$platform
Возвращает
mixed
Исключения
Main

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

112  {
113  $registry = Registry::getInstance(static::getRegistryType());
114 
115  /** @var TradeBindingEntity $tradeBindingEntity */
116  $tradeBindingEntity = $registry->get(Registry::ENTITY_TRADE_BINDING_ENTITY);
117 
118  $tradeBinding = $tradeBindingEntity::create($this, $platform);
119  $this->addItem($tradeBinding);
120 
121  return $tradeBinding;
122  }

◆ deleteInternal()

static deleteInternal (   $primary)
staticprotected
Аргументы
$primary
Возвращает
Main\ORM\Data\DeleteResult
Исключения

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

228  {
229  return TradingPlatform\OrderTable::delete($primary);
230  }

◆ deleteNoDemand()

static deleteNoDemand (   $idOrder)
static

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

200  {
201  $result = new Result();
202 
203  $dbRes = static::getList(
204  array(
205  "filter" => array("=ORDER_ID" => $idOrder),
206  "select" => array("ID")
207  )
208  );
209 
210  while ($entity = $dbRes->fetch())
211  {
212  $r = static::deleteInternal($entity['ID']);
213  if (!$r->isSuccess())
214  {
215  $result->addErrors($r->getErrors());
216  }
217  }
218 
219  return $result;
220  }

◆ getEntityParent()

getEntityParent ( )
protected
Возвращает
Internals\Entity

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

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

20  {
21  return $this->order;
22  }

◆ getList()

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

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

99  {
100  return TradingPlatform\OrderTable::getList($parameters);
101  }

◆ getOrder()

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

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

28  {
29  return $this->order;
30  }

◆ getRegistryType()

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

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

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

48  {
50  }

◆ load()

static load ( Order  $order)
static
Аргументы
Order$order
Возвращает
TradeBindingCollection
Исключения
Main

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

68  {
69  $collection = static::createCollectionObject();
70  $collection->setOrder($order);
71 
72  if (!$order->isNew())
73  {
74  $registry = Registry::getInstance(static::getRegistryType());
75 
76  /** @var TradeBindingEntity $entity */
77  $entity = $registry->get(Registry::ENTITY_TRADE_BINDING_ENTITY);
78 
79  $bindingList = $entity::loadForOrder($order->getId());
80  /** @var TradeBindingEntity $item */
81  foreach ($bindingList as $item)
82  {
83  $item->setCollection($collection);
84  $collection->addItem($item);
85  }
86  }
87 
88  return $collection;
89  }

◆ save()

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

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

149  {
150  $result = new Result();
151 
152  /** @var Order $order */
153  if (!$order = $this->getEntityParent())
154  {
155  throw new Main\ObjectNotFoundException('Entity "Order" not found');
156  }
157 
158  if (!$order->isNew())
159  {
160  $itemsFromDbList = static::getList(
161  array(
162  "filter" => array("ORDER_ID" => $order->getId())
163  )
164  );
165 
166  while ($item = $itemsFromDbList->fetch())
167  {
168  if (!$this->getItemById($item['ID']))
169  {
170  static::deleteInternal($item['ID']);
171  }
172  }
173  }
174 
175  /** @var TradeBindingEntity $entity */
176  foreach ($this->collection as $entity)
177  {
178  $r = $entity->save();
179  if (!$r->isSuccess())
180  {
181  $result->addErrors($r->getErrors());
182  }
183  }
184 
185  $this->clearChanged();
186 
187  return $result;
188  }

◆ setOrder()

setOrder ( Order  $order)
Аргументы
Order$order

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

56  {
57  $this->order = $order;
58  }

Поля

◆ $order

$order = null
protected

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


Объявления и описания членов класса находятся в файле:
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\Registry\getInstance
static getInstance($type)
Definition: sale/lib/registry.php:161
Bitrix\Sale\TradeBindingCollection\addItem
addItem(Internals\CollectableEntity $item)
Definition: tradebindingcollection.php:130
Bitrix\Sale\TradeBindingCollection\$order
$order
Definition: tradebindingcollection.php:14
Bitrix\Sale\Internals\EntityCollection\getItemById
getItemById($id)
Definition: entitycollection.php:165
Bitrix\Sale\Internals\EntityCollection\clearChanged
clearChanged()
Definition: entitycollection.php:385
Bitrix\Sale\Registry\ENTITY_TRADE_BINDING_ENTITY
const ENTITY_TRADE_BINDING_ENTITY
Definition: sale/lib/registry.php:48
Bitrix\Sale\TradeBindingCollection\getEntityParent
getEntityParent()
Definition: tradebindingcollection.php:19
Bitrix\Sale\Internals\EntityCollection\isClone
isClone()
Definition: entitycollection.php:358