44 return new $className();
69 $collection = static::createCollectionObject();
82 $item->setCollection($collection);
83 $collection->bindItem($item);
92 $item->setCollection($collection);
93 $collection->bindItem($item);
118 'SALE_PAYABLE_ITEM_COLLECTION_INCOMPATIBLE_ITEM_TYPE',
119 [
'#CLASS#' => PayableItem::class]
124 return parent::bindItem($item);
141 $payableBasketItem = $item->getEntityObject();
144 && $basketItem->
getBasketCode() === $payableBasketItem->getBasketCode())
156 $payableItem = $payableItemClass::create($this, $basketItem);
157 $this->addItem($payableItem);
162 public function onBeforeBasketItemDelete(BasketItem $basketItem)
170 $entity = $item->getEntityObject();
171 if (
$entity->getBasketCode() === $basketItem->getBasketCode())
173 $r = $item->delete();
174 if (!$r->isSuccess())
176 $result->addErrors($r->getErrors());
192 public function createItemByShipment(Shipment $shipment) : PayableShipmentItem
197 if ($shipment->getInternalIndex() === $item->getEntityObject()->getInternalIndex())
209 $payableItem = $payableItemClass::create($this, $shipment);
210 $this->addItem($payableItem);
248 public function save()
252 $dbRes = static::getList([
253 'filter' => [
'PAYMENT_ID' => $this->
getPayment()->getId()]
256 while ($item =
$dbRes->fetch())
258 if (!$this->getItemById($item[
'ID']))
260 static::deleteInternal($item[
'ID']);
265 foreach ($this->collection as
$entity)
268 if (!$r->isSuccess())
270 $result->addErrors($r->getErrors());
274 $this->clearChanged();
292 $dbRes = static::getList([
293 "filter" => [
"=PAYMENT_ID" => $paymentId],
299 $r = static::deleteInternal(
$entity[
'ID']);
300 if (!$r->isSuccess())
302 $result->addErrors($r->getErrors());
325 public function createClone(\SplObjectStorage $cloneEntity)
327 if ($this->isClone() && $cloneEntity->contains($this))
329 return $cloneEntity[$this];
333 $payableItemCollection = parent::createClone($cloneEntity);
337 if ($cloneEntity->contains($this->payment))
343 return $payableItemCollection;
static loadMessages($file)
static getList(array $parameters=array())