36 private static function createCollectionObject()
41 return new $className();
64 public static function load(Order
$order)
66 $collection = static::createCollectionObject();
67 $collection->setOrder(
$order);
76 $bindingList = $entity::loadForOrder(
$order->getId());
78 foreach ($bindingList as $item)
80 $item->setCollection($collection);
81 $collection->bindItem($item);
94 return TradingPlatform\OrderTable::getList($parameters);
108 $tradeBinding = $tradeBindingEntity::create($this,
$platform);
109 $this->addItem($tradeBinding);
111 return $tradeBinding;
114 public function onItemModify(CollectableEntity $item,
$name =
null, $oldValue =
null, $value =
null)
119 if ($item instanceof TradeBindingEntity)
124 return parent::onItemModify($item,
$name, $oldValue, $value);
131 public function addItem(Internals\CollectableEntity $item)
134 $entity = parent::addItem($item);
149 return parent::bindItem($item);
156 public function deleteItem($index)
159 $oldItem = parent::deleteItem($index);
170 public function save()
182 $itemsFromDbList = static::getList(
188 while ($item = $itemsFromDbList->fetch())
190 if (!$this->getItemById($item[
'ID']))
192 static::deleteInternal($item[
'ID']);
198 foreach ($this->collection as
$entity)
201 if (!$r->isSuccess())
203 $result->addErrors($r->getErrors());
207 $this->clearChanged();
224 "filter" =>
array(
"=ORDER_ID" => $idOrder),
225 "select" =>
array(
"ID")
231 $r = static::deleteInternal(
$entity[
'ID']);
232 if (!$r->isSuccess())
234 $result->addErrors($r->getErrors());
247 return TradingPlatform\OrderTable::delete($primary);
256 public function createClone(\SplObjectStorage $cloneEntity)
258 if ($this->isClone() && $cloneEntity->contains($this))
260 return $cloneEntity[$this];
264 $tradeBindingCollection = parent::createClone($cloneEntity);
268 if ($cloneEntity->contains($this->order))
270 $tradeBindingCollection->order = $cloneEntity[
$this->order];
274 return $tradeBindingCollection;
298 foreach ($this->collection as $item)
300 $tradingPlatform = $item->getTradePlatform();
301 if (!$tradingPlatform || $tradingPlatform::TRADING_PLATFORM_CODE !== $platformCode)
306 if (!is_null(
$type) && !$tradingPlatform->isOfType(
$type))
311 return $tradingPlatform;
321 foreach ($this->collection as $item)
323 $result[] = $item->getField(
'TRADING_PLATFORM_ID');