/** * @return \Generated\Shared\Transfer\WishlistTransfer */ public function executeOperation() { $this->preSave($this->wishlistChange->getItems()); $wishlist = $this->applyOperation($this->wishlistChange); $this->postSave($this->wishlistChange->getItems()); return $wishlist; }
/** * @param \Generated\Shared\Transfer\WishlistChangeTransfer $wishlistChange * * @return \Generated\Shared\Transfer\WishlistTransfer */ public function removeItems(WishlistChangeTransfer $wishlistChange) { $wishlistIndex = $this->createIndex(); foreach ($wishlistChange->getItems() as $key => $wishlistItem) { if (isset($wishlistIndex[$wishlistItem->getGroupKey()])) { $this->decreaseItem($wishlistIndex[$wishlistItem->getGroupKey()], $wishlistItem); } else { $this->decreaseByProductIdentifier($wishlistIndex, $wishlistItem); } } return $this->wishlistTransfer; }
/** * @param \Generated\Shared\Transfer\WishlistChangeTransfer $wishlistChange * * @return \Generated\Shared\Transfer\WishlistTransfer */ public function removeItems(WishlistChangeTransfer $wishlistChange) { $idCustomer = $this->customerTransfer->getIdCustomer(); $wishlistEntity = $this->getWishlistEntity($idCustomer); $wishlistItems = $wishlistChange->getItems(); foreach ($wishlistItems as $wishlistItemTransfer) { $wishlistItemEntity = $this->getWishlistItemEntity($wishlistItemTransfer, $wishlistEntity->getIdWishlist()); if (empty($wishlistItemEntity)) { continue; } $quantityDifference = $wishlistItemEntity->getQuantity() - $wishlistItemTransfer->getQuantity(); if ($quantityDifference <= 0) { $this->deleteWishlistItem($wishlistItemEntity); } else { $wishlistItemEntity->setQuantity($quantityDifference); $wishlistItemEntity->save(); } } $wishlistTransfer = $this->customer->getWishlist(); return $wishlistTransfer; }
/** * @param \Generated\Shared\Transfer\WishlistChangeTransfer $wishlistChange * * @return \Spryker\Zed\Wishlist\Business\Storage\InMemory */ protected function createInMemoryStrorage(WishlistChangeTransfer $wishlistChange) { return new InMemory($wishlistChange->getWishlist(), $this->getProvidedDependency(WishlistDependencyProvider::FACADE_PRODUCT)); }
/** * @param \Generated\Shared\Transfer\ItemTransfer $wishlistItemTransfer * * @return \Generated\Shared\Transfer\WishlistChangeTransfer */ protected function createChangeTransfer(ItemTransfer $wishlistItemTransfer) { $wishlistTransfer = $this->getSession()->getWishlist(); $wishlistChange = new WishlistChangeTransfer(); $wishlistChange->setWishlist($wishlistTransfer); $wishlistChange->addItem($wishlistItemTransfer); $customerTransfer = $this->getCustomerTransfer(); if ($customerTransfer !== null) { $wishlistChange->setCustomer($customerTransfer); } return $wishlistChange; }
/** * @return void */ public function testRemoveItem() { $wishlist = new WishlistTransfer(); $customerTransfer = new CustomerTransfer(); $customerTransfer->setIdCustomer(1); $sypWishlist = new WishlistSpy(); $sypWishlist->setFkCustomer(1); $spyWishlistItem = new WishlistItemSpy(); $spyWishlistItem->setQuantity(3); $spyWishlistItem->setFkProductAbstract(1); $spyWishlistItem->setFkProduct(1); $spyWishlistItem->setGroupKey(123); $propelStorage = new Propel($this->getWishlistQueryContainerMock($sypWishlist, $spyWishlistItem), $this->getCustomerMock(), $wishlist, $customerTransfer, $this->getProductFacadeMock()); $wishlistChange = new WishlistChangeTransfer(); $wishlistItem = new ItemTransfer(); $wishlistItem->setGroupKey('123'); $wishlistItem->setQuantity(0); $wishlistChange->addItem($wishlistItem); $propelStorage->removeItems($wishlistChange); $this->assertTrue($spyWishlistItem->isDelete()); }
/** * @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()); }