/** * @param \Generated\Shared\Transfer\WishlistChangeTransfer $wishlistChange * * @return \Generated\Shared\Transfer\WishlistTransfer */ public function addItems(WishlistChangeTransfer $wishlistChange) { $wishlistIndex = $this->createIndex(); foreach ($wishlistChange->getItems() as $wishlistItem) { if (isset($wishlistIndex[$wishlistItem->getGroupKey()])) { $key = $wishlistIndex[$wishlistItem->getGroupKey()]; $existingItem = $this->wishlistTransfer->getItems()[$key]; $existingItem->setQuantity($wishlistItem->getQuantity() + $existingItem->getQuantity()); } else { $productConcrete = $this->productFacade->getProductConcrete($wishlistItem->getSku()); $wishlistItem->setIdProductAbstract($productConcrete->getIdProductAbstract()); $this->wishlistTransfer->addItem($wishlistItem); } } return $this->wishlistTransfer; }
/** * @return \Generated\Shared\Transfer\WishlistTransfer */ public function getWishlist() { $wishlist = $this->wishlistQueryContainer->queryWishlist()->findOneByFkCustomer($this->customerTransfer->getIdCustomer()); $wishlistTransfer = new WishlistTransfer(); foreach ($wishlist->getSpyWishlistItems() as $wishlistItemEntity) { $wishlistItemTransfer = new ItemTransfer(); $productEntity = $wishlistItemEntity->getSpyProduct(); $wishlistItemTransfer->setGroupKey($wishlistItemEntity->getGroupKey())->setAddedAt($wishlistItemEntity->getAddedAt())->setIdProductAbstract($wishlistItemEntity->getFkProductAbstract())->setSku($productEntity->getSku())->setQuantity($wishlistItemEntity->getQuantity()); $wishlistTransfer->addItem($wishlistItemTransfer); } return $wishlistTransfer; }
/** * @return void */ public function testIncreaseItem() { $productFacadeMock = $this->createProductFacadeProductConcreteMock(); $wishlistTransfer = new WishlistTransfer(); $wishlistItem = new ItemTransfer(); $wishlistItem->setGroupKey(123); $wishlistItem->setQuantity(1); $wishlistTransfer->addItem($wishlistItem); $inMemory = new InMemory($wishlistTransfer, $productFacadeMock); $wishlistChangeTransfer = new WishlistChangeTransfer(); $wishlistItem = new ItemTransfer(); $wishlistItem->setGroupKey(123); $wishlistItem->setQuantity(1); $wishlistChangeTransfer->addItem($wishlistItem); $wishlist = $inMemory->increaseItems($wishlistChangeTransfer); $wishlistItem = $wishlist->getItems()[0]; $this->assertEquals(2, $wishlistItem->getQuantity()); }