コード例 #1
0
 public function filter()
 {
     \Bitrix\Main\Loader::includeModule('sale');
     $daysBasketForgotten = $this->getFieldValue('DAYS_BASKET_FORGOTTEN');
     if (!is_numeric($daysBasketForgotten)) {
         $daysBasketForgotten = 90;
     }
     $dateFrom = new \Bitrix\Main\Type\DateTime();
     $dateTo = new \Bitrix\Main\Type\DateTime();
     $dateFrom->setTime(0, 0, 0)->add('-' . $daysBasketForgotten . ' days');
     $dateTo->setTime(0, 0, 0)->add('1 days')->add('-' . $daysBasketForgotten . ' days');
     if ($this->isRunForOldData()) {
         $filter = array('<MIN_DATE_INSERT' => $dateTo->format(\Bitrix\Main\UserFieldTable::MULTIPLE_DATETIME_FORMAT));
     } else {
         $filter = array('>MIN_DATE_INSERT' => $dateFrom->format(\Bitrix\Main\UserFieldTable::MULTIPLE_DATETIME_FORMAT), '<MIN_DATE_INSERT' => $dateTo->format(\Bitrix\Main\UserFieldTable::MULTIPLE_DATETIME_FORMAT));
     }
     $filter = $filter + array('!FUSER.USER_ID' => null, '=ORDER_ID' => null, '=LID' => $this->getSiteId());
     $userListDb = \Bitrix\Sale\BasketTable::getList(array('select' => array('USER_ID' => 'FUSER.USER_ID', 'EMAIL' => 'FUSER.USER.EMAIL', 'FUSER_USER_NAME' => 'FUSER.USER.NAME'), 'filter' => $filter, 'runtime' => array(new \Bitrix\Main\Entity\ExpressionField('MIN_DATE_INSERT', 'MIN(%s)', 'DATE_INSERT')), 'order' => array('USER_ID' => 'ASC')));
     if ($userListDb->getSelectedRowsCount() > 0) {
         $userListDb->addFetchDataModifier(array($this, 'getFetchDataModifier'));
         $this->recipient = $userListDb;
         return true;
     } else {
         return false;
     }
 }
コード例 #2
0
ファイル: advsession.php プロジェクト: Satariall/izurit
 protected static function countSessionOrder($orderId)
 {
     if (Main\Loader::includeModule('sale') && Main\Loader::includeModule('catalog') && Main\Loader::includeModule('currency')) {
         $orderLinks = OrderTable::getList(array('filter' => array('=ORDER_ID' => $orderId, '=PROCESSED' => OrderTable::NOT_PROCESSED), 'select' => array('ID', 'BANNER_ID')));
         $orderLink = $orderLinks->fetch();
         if ($orderLink) {
             $linkedProductsList = static::getBannerLinkedProducts($orderLink['BANNER_ID']);
             if (count($linkedProductsList) > 0) {
                 $basket = BasketTable::getList(array('filter' => array('=ORDER_ID' => $orderId), 'select' => array('PRODUCT_ID', 'GROSS_PROFIT', 'SUMMARY_PRICE', 'SUMMARY_PURCHASING_PRICE', 'QUANTITY')));
                 $sum = 0;
                 while ($item = $basket->fetch()) {
                     if (in_array($item['PRODUCT_ID'], $linkedProductsList)) {
                         $sum += static::getProductProfit($item);
                     } else {
                         $productInfo = \CCatalogSKU::GetProductInfo($item['PRODUCT_ID']);
                         if (is_array($productInfo) && in_array($productInfo['ID'], $linkedProductsList)) {
                             $sum += static::getProductProfit($item);
                         }
                     }
                 }
                 OrderTable::update($orderLink['ID'], array('SUM' => $sum, 'PROCESSED' => OrderTable::PROCESSED));
             }
         }
     }
 }
コード例 #3
0
ファイル: export.php プロジェクト: phwb/ugraweb.iiko
    function getBasketItems($orderID)
    {
        // выбираем товар из заказа
        $params = array(
            'select' => array("ID", "QUANTITY", "PRICE", "NAME", "PRODUCT_ID", "DISCOUNT_PRICE", "XML_ID" => "ELEMENT.XML_ID"),
            'filter' => array(
                '=ORDER_ID' => $orderID
            ),
            'runtime' => array(
                new ReferenceField(
                    'ELEMENT',
                    '\Bitrix\Iblock\ElementTable',
                    array('=this.PRODUCT_ID' => 'ref.ID'),
                    array('join_type' => 'LEFT')
                )
            )
        );
        $arBasketItems = BasketTable::getList($params)->fetchAll();

        // выбираем свойства товара
        foreach ($arBasketItems as &$arBasketItem)
        {
            $rsBasketProp = \CSaleBasket::GetPropsList(
                array("SORT" => "ASC"),
                array(
                    "BASKET_ID" => $arBasketItem["ID"],
                    "!CODE" => array("CATALOG.XML_ID", "PRODUCT.XML_ID")
                )
            );
            while ($arBasketProp = $rsBasketProp->Fetch())
            {

                $arElemMod = ElementModifiers::getByPropCode($arBasketProp['CODE']);
                $arBasketItem["PROPS"][] = array_merge($arBasketProp, $arElemMod);
            }
        }

        return $arBasketItems;
    }