$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>
Ejemplo n.º 2
0
                     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)
		{
Ejemplo n.º 4
0
 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));
             }
         }
     }
 }