Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 7
CRAP
0.00% covered (danger)
0.00%
0 / 1
SystemBuyReport
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 7
90
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setDates
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 getBuysByHourByDay
0.00% covered (danger)
0.00%
0 / 17
0.00% covered (danger)
0.00%
0 / 1
12
 getDateEnd
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setDateEnd
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getDateStart
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setDateStart
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace BuyerKiosk\Core;
4
5class SystemBuyReport {
6    private $db;
7    public $dateStart;
8    public $dateEnd;
9
10    public function __construct(\Database $db) {
11        $this->db = $db;
12    }
13    public function setDates($dateStart, $dateEnd) {
14
15        $this->setDateStart(getDateRange($dateStart));
16        $this->setDateEnd(getDateRange($dateEnd));
17    }
18
19
20    public function getBuysByHourByDay($concept) {
21
22        $query = "SELECT COUNT(*), DATE_FORMAT(timeStamp, '%H') as utcHour, DATE_FORMAT(timeStamp, '%a') as dayOfWeek FROM systemBuys WHERE origin LIKE :concept AND `timeStamp` BETWEEN :dateStart AND :dateEnd GROUP BY dayOfWeek, utcHour";
23        $args = array(":concept" => $concept, ":dateStart"=> $this->dateStart['dateStart']->format("Y-m-d H:i:s"), ":dateEnd" => $this->dateEnd['dateEnd']->format("Y-m-d H:i:s"));
24        $results = $this->db->query($query, $args);
25        $days = array(
26            "Mon" => array(),
27            "Tue" => array(),
28            "Wed" => array(),
29            "Thu" => array(),
30            "Fri" => array(),
31            "Sat" => array(),
32            "Sun" => array()
33        );
34
35        foreach ($results as $result) {
36            if($days[$result['dayOfWeek']][$result['utcHour']] == 0) {
37                $days[$result['dayOfWeek']][$result['utcHour']] = $result['COUNT(*)'];
38            } else {
39                $days[$result['dayOfWeek']][$result['utcHour']] += $result['COUNT(*)'];
40            }
41        }
42        return $days;
43    }
44    /**
45     * @return mixed
46     */
47    public function getDateEnd()
48    {
49        return $this->dateEnd;
50    }
51
52    /**
53     * @param mixed $dateEnd
54     */
55    public function setDateEnd($dateEnd)
56    {
57        $this->dateEnd = $dateEnd;
58    }
59
60    /**
61     * @return mixed
62     */
63    public function getDateStart()
64    {
65        return $this->dateStart;
66    }
67
68    /**
69     * @param mixed $dateStart
70     */
71    public function setDateStart($dateStart)
72    {
73        $this->dateStart = $dateStart;
74    }
75
76}