Даннве по датам и по компаниям для отчета транзакций

parent e1f182c0
...@@ -98,23 +98,17 @@ $(document).ready(function(){ ...@@ -98,23 +98,17 @@ $(document).ready(function(){
}); });
// Сортировка по колонкам внутри таблицы: // Сортировка по колонкам внутри таблицы:
$('#table-line').on('click', 'thead.metric.sortable th b', function(){ var $tableHeadCols = $('#table-line thead.metric.sortable th b');
var $tableHeadCols.on('click', function(){
$this = $(this); var $this = $(this);
$('#table-line thead.metric.sortable th b').removeClass('selected'); $tableHeadCols.removeClass('selected');
$this.addClass('selected'); $this.addClass('selected').toggleClass('desc');
$this.toggleClass('desc');
if ($this.hasClass('main-cat')) { if ($this.hasClass('main-cat')) {
if ($this.hasClass('date')) { dataLineChartStat = ($this.hasClass('date')) ? periodStatsData : companyStatsData;
dataLineChartStat = periodStatsData;
} else {
dataLineChartStat = companyStatsData;
}
} }
renderHourTable(); renderHourTable();
}); });
// Клик на checkbox в названии поля таблицы: // Клик на checkbox в названии поля таблицы:
...@@ -122,7 +116,7 @@ $(document).ready(function(){ ...@@ -122,7 +116,7 @@ $(document).ready(function(){
renderLineChart(); renderLineChart();
}); });
// Отрисовка графика Stat // Отрисовка графика:
function renderLineChart() function renderLineChart()
{ {
if(dataLineChartStat && $chartStat.length>0) { if(dataLineChartStat && $chartStat.length>0) {
...@@ -131,9 +125,7 @@ $(document).ready(function(){ ...@@ -131,9 +125,7 @@ $(document).ready(function(){
} }
} }
$chartTable.show(); // Отрисовка таблицы:
// Отрисовка почасовой таблицы
function renderHourTable() function renderHourTable()
{ {
if(dataLineChartStat) { if(dataLineChartStat) {
......
...@@ -99,29 +99,14 @@ class Cabinet extends Common ...@@ -99,29 +99,14 @@ class Cabinet extends Common
//$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);
$companyStats = $statsDaysModel->getStatsByFeeds($feed_id_list); $companyStats = $statsDaysModel->getStatsByFeeds($feed_id_list);
//return new JsonResponse($stats);
$cats = ['shows','clicks','transactions','salemoney','admoney']; $cats = ['shows','clicks','transactions','salemoney','admoney'];
} }
else if ($report_type == 'transaction') { else if ($report_type == '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(); //$stats = $transactionsModel->findAll(['FeedID' => $feed_id_list])->toArray();
$periodStats = $transactionsModel->getStatsByDate($feed_id_list);
$periodStats = array( $companyStats = $transactionsModel->getStatsByFeeds($feed_id_list);
'period' => [],
'localmoney' => [],
'usdollarmoney' => [],
);
foreach($stats as $stat_item) {
$periodStats['period'][] = $stat_item['eventdate'];
$periodStats['localmoney'][] = $stat_item['localmoney'];
$periodStats['usdollarmoney'][] = $stat_item['usdollarmoney'];
}
$cats = ['localmoney','usdollarmoney']; $cats = ['localmoney','usdollarmoney'];
} else { } else {
$data['error'] = _t('Извините, тип отчета "'. $report_type .'" недоступен'); $data['error'] = _t('Извините, тип отчета "'. $report_type .'" недоступен');
...@@ -140,7 +125,7 @@ class Cabinet extends Common ...@@ -140,7 +125,7 @@ class Cabinet extends Common
$data['companyStats'] = $companyStats; $data['companyStats'] = $companyStats;
$data['cats'] = $cats; $data['cats'] = $cats;
//return new JsonResponse($periodStats);
/* /*
$response = new HtmlResponse($this->template->render('app::user/feeds', [ $response = new HtmlResponse($this->template->render('app::user/feeds', [
...@@ -196,9 +181,7 @@ class Cabinet extends Common ...@@ -196,9 +181,7 @@ class Cabinet extends Common
*/ */
} catch(\Exception $e) { } catch(\Exception $e) {
$data['error'] = _t('Извините, статистика временно не работает'); $data['error'] = _t('Извините, статистика временно не работает');
} }
$data = array_merge($data, [ $data = array_merge($data, [
......
...@@ -98,6 +98,5 @@ class StatsDays extends Common ...@@ -98,6 +98,5 @@ class StatsDays extends Common
return $stats; return $stats;
} }
} }
\ No newline at end of file
...@@ -35,4 +35,56 @@ use App\Model\Common; ...@@ -35,4 +35,56 @@ use App\Model\Common;
class Transactions extends Common class Transactions extends Common
{ {
public function getStatsByFeeds($feeds)
{
$adapter = $this->tableGateway->getAdapter();
$sql = 'SELECT FeedID, SUM(LocalMoney) AS LocalMoney, SUM(USDollarMoney) AS USDollarMoney'
. ' FROM ' . (string) $this->tableGateway->getTable()
. ' WHERE FeedID in (\''.implode('\',\'', $feeds).'\')'
. ' GROUP BY FeedID'
. ' ORDER BY FeedID';
$res = $adapter->query($sql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE);
$stats = array(
'period' => [],
'localmoney' => [],
'usdollarmoney' => []
);
foreach($res as $stat_item) {
$stats['period'][] = $stat_item['FeedID'];
$stats['localmoney'][] = (float)$stat_item['LocalMoney'];
$stats['usdollarmoney'][] = (float)$stat_item['USDollarMoney'];
}
return $stats;
}
public function getStatsByDate($feeds)
{
$adapter = $this->tableGateway->getAdapter();
$sql = 'SELECT EventDate, SUM(LocalMoney) AS LocalMoney, SUM(USDollarMoney) AS USDollarMoney'
. ' FROM ' . (string) $this->tableGateway->getTable()
. ' WHERE FeedID in (\''.implode('\',\'', $feeds).'\')'
. ' GROUP BY EventDate'
. ' ORDER BY EventDate desc';
$res = $adapter->query($sql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE);
$stats = array(
'period' => [],
'localmoney' => [],
'usdollarmoney' => []
);
foreach($res as $stat_item) {
$stats['period'][] = $stat_item['EventDate'];
$stats['localmoney'][] = (float)$stat_item['LocalMoney'];
$stats['usdollarmoney'][] = (float)$stat_item['USDollarMoney'];
}
return $stats;
}
} }
\ No newline at end of file
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