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

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