示例#1
0
 /**
  * @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;
 }
示例#2
0
 /**
  * @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;
 }
示例#3
0
 /**
  * @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));
 }
示例#5
0
 /**
  * @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;
 }
示例#6
0
 /**
  * @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());
 }
示例#7
0
 /**
  * @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());
 }