public function getAgenda($api, $args) { // Fetch the next 14 days worth of meetings (limited to 20) $end_time = new SugarDateTime("+14 days"); $start_time = new SugarDateTime("-1 hour"); $meeting = BeanFactory::newBean('Meetings'); $meetingList = $meeting->get_list('date_start', "date_start > " . $GLOBALS['db']->convert($GLOBALS['db']->quoted($start_time->asDb()), 'datetime') . " AND date_start < " . $GLOBALS['db']->convert($GLOBALS['db']->quoted($end_time->asDb()), 'datetime')); // Setup the breaks for the various time periods $datetime = new SugarDateTime(); $today_stamp = $datetime->get_day_end()->getTimestamp(); $tomorrow_stamp = $datetime->setDate($datetime->year, $datetime->month, $datetime->day + 1)->get_day_end()->getTimestamp(); $timeDate = TimeDate::getInstance(); $returnedMeetings = array('today' => array(), 'tomorrow' => array(), 'upcoming' => array()); foreach ($meetingList['list'] as $meetingBean) { $meetingStamp = $timeDate->fromUser($meetingBean->date_start)->getTimestamp(); $meetingData = $this->formatBean($api, $args, $meetingBean); if ($meetingStamp < $today_stamp) { $returnedMeetings['today'][] = $meetingData; } else { if ($meetingStamp < $tomorrow_stamp) { $returnedMeetings['tomorrow'][] = $meetingData; } else { $returnedMeetings['upcoming'][] = $meetingData; } } } return $returnedMeetings; }
/** * Create query from the beginning to the end of certain day * @param array $layout_def * @param SugarDateTime $day */ protected function queryDay($layout_def, SugarDateTime $day) { $begin = $day->get_day_begin(); $end = $day->get_day_end(); return $this->get_start_end_date_filter($layout_def, $begin->asDb(), $end->asDb()); }