コード例 #1
0
 public function Chart()
 {
     if ($this->Days == 0) {
         $this->Days = 30;
     }
     $chart = DashboardChart::create("Order History, last {$this->Days} days", "Date", "Number of orders");
     $result = DB::query("\n\t\t\t\tSELECT COUNT(*) AS \"OrderCount\", DATE_FORMAT(\"Placed\",'%d %b %Y') AS \"Date\"\n\t\t\t\tFROM \"Order\"\n\t\t\t\tWHERE \"Status\" not in ('" . implode("','", Config::inst()->get('DashboardRecentOrdersPanel', 'exclude_status')) . "')\n\t\t\t\t\tAND \"Placed\" > date_sub(now(), interval {$this->Days} day)\n\t\t\t\tGROUP BY \"Date\"\n\t\t\t\tORDER BY \"Placed\"\n\t\t\t");
     if ($result) {
         while ($row = $result->nextRecord()) {
             $chart->addData($row['Date'], $row['OrderCount']);
         }
     }
     return $chart;
 }
コード例 #2
0
 public function Chart()
 {
     $result = DB::query("SELECT MONTH( Created ) Month , YEAR( Created ) Year , MemberID\n  \tFROM  `Order`\n  \tWHERE (Amount = 0.01 OR Amount =1)\n  \tAND OrderStatus =  'c'\n  \tORDER BY Created");
     if ($result->numRecords() == 0) {
         return false;
     }
     $trialMembers = array();
     while ($row = $result->nextRecord()) {
         if ($row['Month'] == 12) {
             $month = 1;
             $year = $row['Year'] + 1;
         } else {
             $month = $row['Month'] + 1;
             $year = $row['Year'];
         }
         if (isset($trialMembers[$year][$month]['Members'])) {
             $trialMembers[$year][$month]['Members'] .= ',' . $row['MemberID'];
         } else {
             $trialMembers[$year][$month]['Members'] = $row['MemberID'];
         }
         if (isset($trialMembers[$year][$month]['Count'])) {
             $trialMembers[$year][$month]['Count']++;
         } else {
             $trialMembers[$year][$month]['Count'] = 1;
         }
     }
     $chart = DashboardChart::create("Conversion Rate", "Month,Year", "Percentage conversion");
     foreach ($trialMembers as $key1 => $value1) {
         foreach ($value1 as $key2 => $value2) {
             $members = $value2['Members'];
             $result = DB::query("SELECT MIN( Created ) Created, MONTH( Created )\n\t\t\tMonth , YEAR( Created ) Year, MemberID\n\t\t\tFROM  `MemberBillingHistory`\n\t\t\tWHERE MemberID IN ({$members}) AND MONTH( Created ) = {$key2} AND YEAR( Created ) = {$key1}\n  \t\t\tGROUP BY  `MemberID`\n\t\t  \tORDER BY Created");
             $paidMembersCount = $result->numRecords();
             $percent = $paidMembersCount / $trialMembers[$key1][$key2]['Count'] * 100;
             $chart->addData(date('M', mktime(0, 0, 0, $key2, 1, $key1)) . ",{$key1}", $percent);
         }
     }
     return $chart;
 }
 /**
  * Gets the result set for date/pageview pairs
  *
  * @return ArrayList
  */
 public function Chart()
 {
     if (!$this->isValid()) {
         return false;
     }
     try {
         $this->api()->requestReportData(self::$gapi_profile, array('date'), array('pageviews'), 'date', $this->getPath() ? "pagePath == {$this->getPath()}" : null, date('Y-m-d', $this->getStartDateStamp()));
     } catch (Exception $e) {
         return false;
     }
     $results = $this->api()->getResults();
     if ($results) {
         $chart = DashboardChart::create($this->ChartTitle(), _t('Dashboard.DAY', 'Day'), _t('Dashboard.PAGEVIEWS', 'Pageviews'));
         $chart->Height = 160;
         $datekey = $this->DateFormat == "mdy" ? "M j" : "j M";
         if ($this->PathType == "none") {
             $map = array();
             foreach ($results as $result) {
                 $date = date($datekey, strtotime($result->getDate()));
                 if (!isset($map[$date])) {
                     $map[$date] = 0;
                 }
                 $map[$date] += $result->getPageViews();
             }
             $chart->setData($map);
         } else {
             foreach ($results as $result) {
                 $data = date($datekey, strtotime($result->getDate()));
                 $chart->addData($data, $result->getPageViews());
             }
         }
         return $chart;
     }
     return false;
 }