Добавил в запросы к табл. выборку по периоду, конфиг для периодов

parent c0b4c5e4
...@@ -23,6 +23,12 @@ ...@@ -23,6 +23,12 @@
clear: both; clear: both;
} }
#period-stats,
#company-stats
{
display: none;
}
.b-content__title .b-content__title
{ {
padding: 85px 0 25px; padding: 85px 0 25px;
......
...@@ -91,25 +91,29 @@ class Cabinet extends Common ...@@ -91,25 +91,29 @@ class Cabinet extends Common
$report_type = $request->getAttribute('report'); $report_type = $request->getAttribute('report');
// Текущий месяц: // Текущий месяц:
$current_period = 'current_month';
$dates = [date('Y-m-01'), date('Y-m-d')]; $dates = [date('Y-m-01'), date('Y-m-d')];
if ($report_type == 'common') { switch ($report_type) {
case 'common':
/** @var \App\Model\Feeds $statDaysModel */ /** @var \App\Model\Feeds $statDaysModel */
$statsDaysModel = $this->container->get(StatsDays::class); $statsDaysModel = $this->container->get(StatsDays::class);
//$stats = $statsDaysModel->findAll(['FeedID' => $feed_id_list])->toArray(); //$stats = $statsDaysModel->findAll(['FeedID' => $feed_id_list])->toArray();
$periodStats = $statsDaysModel->getStatsByDate($feed_id_list); $periodStats = $statsDaysModel->getStatsByDate($feed_id_list, $dates);
$companyStats = $statsDaysModel->getStatsByFeeds($feed_id_list); $companyStats = $statsDaysModel->getStatsByFeeds($feed_id_list, $dates);
$cats = ['shows','clicks','transactions','salemoney','admoney']; $cats = ['shows','clicks','transactions','salemoney','admoney'];
} //return new JsonResponse($periodStats);
else if ($report_type == 'transaction') { break;
case 'transaction':
/** @var \App\Model\Feeds $transactionsModel */ /** @var \App\Model\Feeds $transactionsModel */
$transactionsModel = $this->container->get(Transactions::class); $transactionsModel = $this->container->get(Transactions::class);
//$stats = $transactionsModel->findAll(['FeedID' => $feed_id_list])->toArray(); $periodStats = $transactionsModel->getStatsByDate($feed_id_list, $dates);
$periodStats = $transactionsModel->getStatsByDate($feed_id_list); $companyStats = $transactionsModel->getStatsByFeeds($feed_id_list, $dates);
$companyStats = $transactionsModel->getStatsByFeeds($feed_id_list);
$cats = ['localmoney','usdollarmoney']; $cats = ['localmoney','usdollarmoney'];
} else { break;
default:
$data['error'] = _t('Извините, тип отчета "'. $report_type .'" недоступен'); $data['error'] = _t('Извините, тип отчета "'. $report_type .'" недоступен');
break;
} }
$periodStats['type'] = 'interval'; $periodStats['type'] = 'interval';
...@@ -120,6 +124,7 @@ class Cabinet extends Common ...@@ -120,6 +124,7 @@ class Cabinet extends Common
$data['feeds'] = $feeds; $data['feeds'] = $feeds;
$data['report'] = $report_type; $data['report'] = $report_type;
$data['current_period'] = $current_period;
$data['dates'] = $dates; $data['dates'] = $dates;
$data['periodStats'] = $periodStats; $data['periodStats'] = $periodStats;
$data['companyStats'] = $companyStats; $data['companyStats'] = $companyStats;
......
...@@ -35,13 +35,14 @@ use App\Model\Common; ...@@ -35,13 +35,14 @@ use App\Model\Common;
class StatsDays extends Common class StatsDays extends Common
{ {
public function getStatsByFeeds($feeds) public function getStatsByFeeds($feeds, $dates)
{ {
$adapter = $this->tableGateway->getAdapter(); $adapter = $this->tableGateway->getAdapter();
$sql = 'SELECT FeedID, SUM(Shows) AS Shows, SUM(Clicks) AS Clicks, SUM(Transactions) AS Transactions, SUM(SaleMoney) AS SaleMoney, SUM(AdMoney) AS AdMoney' $sql = 'SELECT FeedID, SUM(Shows) AS Shows, SUM(Clicks) AS Clicks, SUM(Transactions) AS Transactions, SUM(SaleMoney) AS SaleMoney, SUM(AdMoney) AS AdMoney'
. ' FROM ' . (string) $this->tableGateway->getTable() . ' FROM ' . (string) $this->tableGateway->getTable()
. ' WHERE FeedID in (\''.implode('\',\'', $feeds).'\')' . ' WHERE FeedID in (\''.implode('\',\'', $feeds).'\')'
. ' AND (EventDate BETWEEN "'.$dates[0].'" AND "'.$dates[1].'")'
. ' GROUP BY FeedID' . ' GROUP BY FeedID'
. ' ORDER BY FeedID'; . ' ORDER BY FeedID';
$res = $adapter->query($sql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE); $res = $adapter->query($sql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE);
...@@ -67,13 +68,14 @@ class StatsDays extends Common ...@@ -67,13 +68,14 @@ class StatsDays extends Common
return $stats; return $stats;
} }
public function getStatsByDate($feeds) public function getStatsByDate($feeds, $dates)
{ {
$adapter = $this->tableGateway->getAdapter(); $adapter = $this->tableGateway->getAdapter();
$sql = 'SELECT EventDate, SUM(Shows) AS Shows, SUM(Clicks) AS Clicks, SUM(Transactions) AS Transactions, SUM(SaleMoney) AS SaleMoney, SUM(AdMoney) AS AdMoney' $sql = 'SELECT EventDate, SUM(Shows) AS Shows, SUM(Clicks) AS Clicks, SUM(Transactions) AS Transactions, SUM(SaleMoney) AS SaleMoney, SUM(AdMoney) AS AdMoney'
. ' FROM ' . (string) $this->tableGateway->getTable() . ' FROM ' . (string) $this->tableGateway->getTable()
. ' WHERE FeedID in (\''.implode('\',\'', $feeds).'\')' . ' WHERE FeedID in (\''.implode('\',\'', $feeds).'\')'
. ' AND (EventDate BETWEEN "'.$dates[0].'" AND "'.$dates[1].'")'
. ' GROUP BY EventDate' . ' GROUP BY EventDate'
. ' ORDER BY EventDate desc'; . ' ORDER BY EventDate desc';
$res = $adapter->query($sql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE); $res = $adapter->query($sql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE);
......
...@@ -42,6 +42,7 @@ class Transactions extends Common ...@@ -42,6 +42,7 @@ class Transactions extends Common
$sql = 'SELECT FeedID, SUM(LocalMoney) AS LocalMoney, SUM(USDollarMoney) AS USDollarMoney' $sql = 'SELECT FeedID, SUM(LocalMoney) AS LocalMoney, SUM(USDollarMoney) AS USDollarMoney'
. ' FROM ' . (string) $this->tableGateway->getTable() . ' FROM ' . (string) $this->tableGateway->getTable()
. ' WHERE FeedID in (\''.implode('\',\'', $feeds).'\')' . ' WHERE FeedID in (\''.implode('\',\'', $feeds).'\')'
. ' AND (EventDate BETWEEN "'.$dates[0].'" AND "'.$dates[1].'")'
. ' GROUP BY FeedID' . ' GROUP BY FeedID'
. ' ORDER BY FeedID'; . ' ORDER BY FeedID';
$res = $adapter->query($sql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE); $res = $adapter->query($sql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE);
...@@ -68,6 +69,7 @@ class Transactions extends Common ...@@ -68,6 +69,7 @@ class Transactions extends Common
$sql = 'SELECT EventDate, SUM(LocalMoney) AS LocalMoney, SUM(USDollarMoney) AS USDollarMoney' $sql = 'SELECT EventDate, SUM(LocalMoney) AS LocalMoney, SUM(USDollarMoney) AS USDollarMoney'
. ' FROM ' . (string) $this->tableGateway->getTable() . ' FROM ' . (string) $this->tableGateway->getTable()
. ' WHERE FeedID in (\''.implode('\',\'', $feeds).'\')' . ' WHERE FeedID in (\''.implode('\',\'', $feeds).'\')'
. ' AND (EventDate BETWEEN "'.$dates[0].'" AND "'.$dates[1].'")'
. ' GROUP BY EventDate' . ' GROUP BY EventDate'
. ' ORDER BY EventDate desc'; . ' ORDER BY EventDate desc';
$res = $adapter->query($sql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE); $res = $adapter->query($sql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE);
......
...@@ -57,11 +57,20 @@ $src = $sxml['src']; ...@@ -57,11 +57,20 @@ $src = $sxml['src'];
$error = $this->error; $error = $this->error;
$periodStats = $this->periodStats; $periodStats = $this->periodStats;
$companyStats = $this->companyStats; $companyStats = $this->companyStats;
$current_period = $this->current_period;
$dates = $this->dates; $dates = $this->dates;
$cats = $this->cats; $cats = $this->cats;
$report = $this->report; $report = $this->report;
$periods_conf = array(
'today' => 'сегодня',
'yesterday' => 'вчера',
'7days' => '7 дней',
'30days' => '30 дней',
'current_month' => 'текущий месяц',
'prev_month' => 'прошлый месяц',
'year' => 'год',
);
$colors_active_lines = array( $colors_active_lines = array(
'shows' => '#2CA02C', 'shows' => '#2CA02C',
...@@ -69,8 +78,6 @@ $colors_active_lines = array( ...@@ -69,8 +78,6 @@ $colors_active_lines = array(
'transactions' => '#1F77B4', 'transactions' => '#1F77B4',
'salemoney' => '#FF7F0E', 'salemoney' => '#FF7F0E',
'admoney' => '#9467BD', 'admoney' => '#9467BD',
//'usdollarmoney' => '#2CA02C',
//'localmoney' => '#D62728',
); );
...@@ -100,8 +107,8 @@ $colors_active_lines = array( ...@@ -100,8 +107,8 @@ $colors_active_lines = array(
<?php else: ?> <?php else: ?>
<textarea id="period-stats" style="display: none;"><?= ($periodStats ? json_encode($periodStats) : '')?></textarea> <textarea id="period-stats"><?= ($periodStats ? json_encode($periodStats) : '')?></textarea>
<textarea id="company-stats" style="display: none;"><?= ($companyStats ? json_encode($companyStats) : '')?></textarea> <textarea id="company-stats"><?= ($companyStats ? json_encode($companyStats) : '')?></textarea>
<section class="b-content__work"> <section class="b-content__work">
<div class="wrapp"> <div class="wrapp">
...@@ -134,13 +141,9 @@ $colors_active_lines = array( ...@@ -134,13 +141,9 @@ $colors_active_lines = array(
<span>период: </span> <span>период: </span>
<select class="form-control stat-period" name="period"> <select class="form-control stat-period" name="period">
<option value="" disabled>--</option> <option value="" disabled>--</option>
<option value="today">сегодня</option> <?php foreach($periods_conf as $period => $title): ?>
<option value="yesterday">вчера</option> <option value="<?=$period ?>" <?php if ($period == $current_period): ?>selected<?php endif; ?>><?=$title ?></option>
<option value="7days">7 дней</option> <?php endforeach; ?>
<option value="30days">30 дней</option>
<option value="current_month" selected>текущий месяц</option>
<option value="prev_month" >прошлый месяц</option>
<option value="year">год</option>
</select> </select>
</span> </span>
</div> </div>
...@@ -175,9 +178,7 @@ $colors_active_lines = array( ...@@ -175,9 +178,7 @@ $colors_active_lines = array(
<input type="checkbox" data-field="<?= $name ?>" /> <input type="checkbox" data-field="<?= $name ?>" />
</span> </span>
<?php endif; ?> <?php endif; ?>
<b id="<?= $name ?>"> <b id="<?= $name ?>"><?= _t($name)?><!--<b class="arrow asc">&and;</b><b class="arrow desc">&or;</b>--></b>
<?= _t($name)?><!--<b class="arrow asc">&and;</b><b class="arrow desc">&or;</b>-->
</b>
</th> </th>
<?php endforeach; ?> <?php endforeach; ?>
</tr> </tr>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment