public function fetch_report_data() { $date1 = $this->form->date1; $date2 = $this->form->date2; $dlog = DTransactionsModel::selectDlog($date1, $date2); $dbc = $this->connection; $dbc->selectDB($this->config->get('OP_DB')); $m = new MasterSuperDeptsModel($dbc); $m->superID(0); $dept_list = '?,'; $args = array(0); foreach ($m->find() as $obj) { $dept_list .= '?,'; $args[] = $obj->dept_ID(); } $dept_list = substr($dept_list, 0, strlen($dept_list) - 1); $prep = $dbc->prepare(' SELECT SUM(d.total) AS ttl FROM ' . $dlog . ' AS d WHERE d.department NOT IN (' . $dept_list . ') AND d.trans_type IN (\'I\',\'D\') AND d.tdate BETWEEN ? AND ?'); $start = strtotime($date1); $end = strtotime($date2); $data = array(); $i = 0; while ($start <= $end) { $d1 = date('Y-m-d 00:00:00', $start); $d2 = date('Y-m-d 23:59:59', mktime(0, 0, 0, date('n', $start), date('j', $start) + 6, date('Y', $start))); $record = array(date('Y-m-d', strtotime($d1)) . ' to ' . date('Y-m-d', strtotime($d2))); $week_args = array_merge($args, array($d1, $d2)); $result = $dbc->execute($prep, $week_args); $row = $dbc->fetch_row($result); $record[] = sprintf('%.2f', $row['ttl']); $data[] = $record; $start = mktime(0, 0, 0, date('n', $start), date('j', $start) + 7, date('Y', $start)); } return $data; }