24 $this->basketItem = $item;
50 return new $className;
59 public function create()
64 $reservedItemClassName = $registry->getReservedItemClassName();
66 $reservedItem = $reservedItemClassName::create($this);
67 $this->addItem($reservedItem);
77 public static function load(BasketItemBase
$basketItem): self
84 $collection = static::createCollectionObject();
92 $reservedItemClassName = $registry->getReservedItemClassName();
94 $reservedQuantityList = $reservedItemClassName::loadForBasketItem(
$basketItem->getId());
95 foreach ($reservedQuantityList as $item)
97 $item->setCollection($collection);
98 $collection->bindItem($item);
113 public function save()
126 $itemsFromDbList = static::getList([
129 while ($item = $itemsFromDbList->fetch())
131 if (!$this->getItemById($item[
'ID']))
133 static::deleteInternal($item[
'ID']);
139 foreach ($this->collection as
$entity)
142 if (!$r->isSuccess())
144 $result->addErrors($r->getErrors());
148 $this->clearChanged();
166 $dbRes = static::getList([
168 'filter' => [
'=BASKET_ID' => $basketId],
173 $r = static::deleteInternal(
$entity[
'ID']);
174 if (!$r->isSuccess())
176 $result->addErrors($r->getErrors());
183 public function getQuantity() : float
188 foreach ($this->collection as $reservation)
190 $quantity += $reservation->getQuantity();
196 public function getQuantityByStoreId(
int $storeId) : float
201 foreach ($this->collection as $reservation)
203 if ($reservation->getStoreId() === $storeId)
205 $quantity += $reservation->getQuantity();
217 protected static function deleteInternal($primary)
220 $service = ServiceLocator::getInstance()->get(
'sale.basketReservation');
static getList(array $parameters=array())