/**
  * @internal
  * @param Sale\BasketItem $basketItem
  *
  * @return array
  * @throws Main\ObjectNotFoundException
  */
 public static function convertBasketItemToArray(Sale\BasketItem $basketItem)
 {
     $fields = $basketItem->getFieldValues();
     /** @var Sale\Basket $basket */
     if (!($basket = $basketItem->getCollection())) {
         throw new Main\ObjectNotFoundException('Entity "Basket" not found');
     }
     if (empty($fields['LID'])) {
         $fields['LID'] = $basket->getSiteId();
     }
     if (empty($fields['LID'])) {
         if ($order = $basket->getOrder()) {
             $fields['LID'] = $order->getField('LID');
         }
         //$order->getField('LID')
     }
     if (empty($fields['FUSER_ID'])) {
         $fields['FUSER_ID'] = $basket->getFUserId(true);
     }
     /** @var Sale\BasketPropertiesCollection $basketPropertyCollection */
     if ($basketPropertyCollection = $basketItem->getPropertyCollection()) {
         /** @var Sale\BasketPropertyItem $basketPropertyItem */
         foreach ($basketPropertyCollection as $basketPropertyItem) {
             $propValues = $basketPropertyItem->getFieldValues();
             $propData = array("NAME" => $propValues['NAME'], "CODE" => $propValues['CODE'], "VALUE" => $propValues['VALUE'], "SORT" => $propValues['SORT']);
             if (isset($propValues['ID']) && intval($propValues['ID']) > 0) {
                 $propData['ID'] = $propValues['ID'];
             }
             $fields['PROPS'][] = $propData;
         }
     }
     return $fields;
 }
Esempio n. 2
0
 /**
  * @param BasketItem $item
  *
  * @return bool
  */
 public function isItemExists(BasketItem $item)
 {
     $propertyList = array();
     /** @var BasketPropertiesCollection $basketPropertyCollection */
     if ($basketPropertyCollection = $item->getPropertyCollection()) {
         /** @var BasketPropertyItem $basketPropertyItem */
         foreach ($basketPropertyCollection as $basketPropertyItem) {
             $propertyList[$basketPropertyItem->getId()] = array('ID' => $basketPropertyItem->getId(), 'NAME' => $basketPropertyItem->getField('NAME'), 'VALUE' => $basketPropertyItem->getField('VALUE'), 'CODE' => $basketPropertyItem->getField('CODE'), 'SORT' => $basketPropertyItem->getField('SORT'));
         }
     }
     return (bool) $this->getExistsItem($item->getField('MODULE'), $item->getProductId(), $propertyList);
 }