Completed
Push — master ( 854d5e...fc0783 )
by Stepan
05:04
created

AnalyticsController::forecastedSalesAction()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 5
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Application\Bundle\DefaultBundle\Controller;
4
5
use Stfalcon\Bundle\EventBundle\Entity\Event;
6
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
7
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
8
9
class AnalyticsController extends Controller
10
{
11
12
    /**
13
     * Show general statistics for event
14
     *
15
     * @param Event $event
16
     * @Template("@ApplicationDefault/Analytics/generalStatistics.html.twig")
17
     *
18
     * @return array
19
     */
20
    public function generalStatisticsAction(Event $event) {
21
        $statisticService = $this->get('app.statistic.service');
22
23
        // подобова статистика для графіка календаря
24
        $dailyData = $statisticService
25
            ->getDataForDailyStatisticsOfTicketsSold($event);
26
        array_unshift($dailyData,
27
            [['label' => 'Date', 'type' => 'date'], ['label' => 'Tickets sold number', 'type' => 'number']]
28
        );
29
30
        $chart = $this->container->get('app.statistic.chart_builder')->calendarChart($dailyData);
31
32
        // загальна статистика
33
        $totalData = $statisticService
34
            ->getDataForTotalStatisticsOfTicketsSold($event);
35
36
        return array('event' => $event, 'chart' => $chart, 'total' => $totalData);
37
    }
38
39
    /**
40
     * Sales dynamics compared to past conferences (in weeks)
41
     *
42
     * @param Event $event
43
     * @Template("@ApplicationDefault/Analytics/forecastedSales.html.twig")
44
     *
45
     * @return array
46
     */
47
    public function forecastedSalesAction(Event $event) {
48
        $statisticService = $this->get('app.statistic.service');
49
        $data = $statisticService->getDataForForecastingTicketsSales($event);
50
51
        return array('event' => $event, 'data' => $data);
52
    }
53
54
}
55