示例#1
0
 protected function updateOfferItem(OnlineShop_Framework_ICartItem $cartItem, OnlineShop_OfferTool_AbstractOfferItem $offerItem)
 {
     $offerItem->setAmount($cartItem->getCount());
     $offerItem->setProduct($cartItem->getProduct());
     if ($offerItem->getProduct()) {
         $offerItem->setProductName($cartItem->getProduct()->getOSName());
         $offerItem->setProductNumber($cartItem->getProduct()->getOSProductNumber());
     }
     $offerItem->setComment($cartItem->getComment());
     $price = 0;
     if ($cartItem->getTotalPrice()) {
         $price = $cartItem->getTotalPrice()->getAmount();
     }
     $price = $this->priceTransformationHook($price);
     if ($price != $offerItem->getOriginalTotalPrice()) {
         $offerItem->setOriginalTotalPrice($price);
         $offerItem->setFinalTotalPrice($price);
     }
     //Delete all subitems and add them as new items
     $offerSubItems = $offerItem->getSubItems();
     foreach ($offerSubItems as $i) {
         $i->delete();
     }
     $subItems = $cartItem->getSubItems();
     if (!empty($subItems)) {
         $offerSubItems = array();
         foreach ($subItems as $subItem) {
             $offerSubItem = $this->createOfferItem($subItem, $offerItem);
             $offerSubItem->save();
             $offerSubItems[] = $offerSubItem;
         }
         $offerItem->setSubItems($offerSubItems);
     }
     $offerItem->save();
     return $offerItem;
 }