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

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