$bLoadStats = count($gaps) > 0; $bShowStats = count($graphData) > 0 || $bLoadStats; $bannerProfit = 0; if(!$bLoadStats && $bSale) { $orderStats = Adv\OrderTable::getList(array( 'filter' => array( '=BANNER_ID' => $banner['ID'], '=PROCESSED' => Adv\OrderTable::PROCESSED, ">=TIMESTAMP_X" => $dateStart, "<TIMESTAMP_X" => $dateFinish, ), 'group' => array( 'BANNER_ID' ), 'select' => array('BANNER_SUM'), 'runtime' => array( new \Bitrix\Main\Entity\ExpressionField('BANNER_SUM', 'SUM(SUM)'), ), )); if($stat = $orderStats->fetch()) { $bannerProfit = $stat['BANNER_SUM']; } } ?> <tr>
if ($banner['DATE_START']) { $banner['DATE_START'] = new Date($banner['DATE_START'], 'Y-m-d'); $banner['STATS_DATA'] = Adv\YandexStatTable::getBannerStat($banner['ID'], $banner['DATE_START'], $dateFinish); $gaps = Adv\YandexStatTable::getMissedPeriods($banner['STATS_DATA'], $banner['DATE_START'], $dateFinish); if (count($gaps) > 0) { $banner['LOADING_NEEDED'] = true; $bannerListToCheck[] = $banner['ID']; } else { $bannerListToCheck[] = $banner['ID']; } } $bannerList[$key] = $banner; } //print_r($bannerListToCheck); if ($bSale && count($bannerListToCheck) > 0) { $orderStats = Adv\OrderTable::getList(array('filter' => array('@BANNER_ID' => $bannerListToCheck, '=PROCESSED' => Adv\OrderTable::PROCESSED), 'group' => array('BANNER_ID'), 'select' => array('BANNER_ID', 'BANNER_SUM'), 'runtime' => array(new \Bitrix\Main\Entity\ExpressionField('BANNER_SUM', 'SUM(SUM)')))); while ($stat = $orderStats->fetch()) { $bannerList[$stat['BANNER_ID']]['PROFIT'] = $stat['BANNER_SUM']; } } ob_start(); require dirname(__FILE__) . "/../admin/tab/seo_search_yandex_direct_stat.php"; $res = array('html' => ob_get_contents()); ob_end_clean(); } } } break; default: $res = array('error' => array('message' => 'unknown action')); break;
); } $statsAdminList->AddHeaders($arHeaders); if(count($statsBanners) > 0) { $dbRes = Adv\OrderTable::getList(array( 'filter' => array( '@BANNER_ID' => array_keys($statsBanners), '=CAMPAIGN_ID' => $campaign['ID'], '=PROCESSED' => Adv\OrderTable::PROCESSED, ">=TIMESTAMP_X" => $statsDateStart, "<TIMESTAMP_X" => $statsDateFinish, ), 'group' => array( 'BANNER_ID' ), 'select' => array('BANNER_ID', 'BANNER_SUM'), 'runtime' => array( new Main\Entity\ExpressionField('BANNER_SUM', 'SUM(SUM)'), ), )); while($realSale = $dbRes->fetch()) { $statsBanners[$realSale['BANNER_ID']]['BANNER_SUM_ORDER'] = $realSale['BANNER_SUM']; } foreach($statsBanners as $banner) {
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)); } } } }