本文整理汇总了PHP中TTDate::getCalendarArray方法的典型用法代码示例。如果您正苦于以下问题:PHP TTDate::getCalendarArray方法的具体用法?PHP TTDate::getCalendarArray怎么用?PHP TTDate::getCalendarArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TTDate
的用法示例。
在下文中一共展示了TTDate::getCalendarArray方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: foreach
//Sort Branches/Departments first
foreach ($tmp_schedule_shifts as $day_epoch => $day_tmp_schedule_shift) {
ksort($day_tmp_schedule_shift);
$tmp_schedule_shifts[$day_epoch] = $day_tmp_schedule_shift;
foreach ($day_tmp_schedule_shift as $branch => $department_schedule_shifts) {
ksort($tmp_schedule_shifts[$day_epoch][$branch]);
}
}
//Sort each department by start time.
foreach ($tmp_schedule_shifts as $day_epoch => $day_tmp_schedule_shift) {
foreach ($day_tmp_schedule_shift as $branch => $department_schedule_shifts) {
foreach ($department_schedule_shifts as $department => $department_schedule_shift) {
//var_dump($department_schedule_shift);
$schedule_shifts[$day_epoch][$branch][$department] = Sort::multiSort($department_schedule_shift, 'start_time', 'last_name');
}
}
}
}
//print_r($schedule_shift_totals);
$calendar_array = TTDate::getCalendarArray($start_date, $end_date, $current_user_prefs->getStartWeekDay(), FALSE);
$smarty->assign_by_ref('calendar_array', $calendar_array);
$hlf = TTnew('HolidayListFactory');
$holiday_array = $hlf->getArrayByPolicyGroupUserId($user_ids, $start_date, $end_date);
$smarty->assign_by_ref('holidays', $holiday_array);
$smarty->assign_by_ref('schedule_shifts', $schedule_shifts);
$smarty->assign_by_ref('schedule_shift_totals', $schedule_shift_totals);
$smarty->assign_by_ref('do', $do);
break;
}
Debug::writeToLog();
$smarty->display('schedule/ViewScheduleWeek.tpl');
示例2: getSchedule
function getSchedule($filter_data, $start_week_day = 0, $group_schedule = FALSE)
{
global $current_user, $current_user_prefs;
//Individual is one schedule per employee, or all on one schedule.
if (!is_array($filter_data)) {
return FALSE;
}
$current_epoch = time();
//Debug::Text('Start Date: '. TTDate::getDate('DATE', $start_date) .' End Date: '. TTDate::getDate('DATE', $end_date) , __FILE__, __LINE__, __METHOD__,10);
Debug::text(' Start Date: ' . TTDate::getDate('DATE+TIME', $filter_data['start_date']) . ' End Date: ' . TTDate::getDate('DATE+TIME', $filter_data['end_date']) . ' Start Week Day: ' . $start_week_day, __FILE__, __LINE__, __METHOD__, 10);
$pdf = new TTPDF('L', 'pt', 'Letter');
$left_margin = 20;
$top_margin = 20;
$pdf->setMargins($left_margin, $top_margin);
$pdf->SetAutoPageBreak(TRUE, 30);
//$pdf->SetAutoPageBreak(FALSE);
$pdf->SetFont('freesans', '', 10);
$border = 0;
$adjust_x = 0;
$adjust_y = 0;
if ($group_schedule == FALSE) {
$valid_schedules = 0;
$sf = TTnew('ScheduleFactory');
$tmp_schedule_shifts = $sf->getScheduleArray($filter_data);
//Re-arrange array by user_id->date
if (is_array($tmp_schedule_shifts)) {
foreach ($tmp_schedule_shifts as $day_epoch => $day_schedule_shifts) {
foreach ($day_schedule_shifts as $day_schedule_shift) {
$raw_schedule_shifts[$day_schedule_shift['user_id']][$day_epoch][] = $day_schedule_shift;
}
}
}
unset($tmp_schedule_shifts);
//Debug::Arr($raw_schedule_shifts, 'Raw Schedule Shifts: ', __FILE__, __LINE__, __METHOD__,10);
if (isset($raw_schedule_shifts) and is_array($raw_schedule_shifts)) {
foreach ($raw_schedule_shifts as $user_id => $day_schedule_shifts) {
foreach ($day_schedule_shifts as $day_epoch => $day_schedule_shifts) {
foreach ($day_schedule_shifts as $day_schedule_shift) {
//Debug::Arr($day_schedule_shift, 'aDay Schedule Shift: ', __FILE__, __LINE__, __METHOD__,10);
$tmp_schedule_shifts[$day_epoch][$day_schedule_shift['branch']][$day_schedule_shift['department']][] = $day_schedule_shift;
if (isset($schedule_shift_totals[$day_epoch]['total_shifts'])) {
$schedule_shift_totals[$day_epoch]['total_shifts']++;
} else {
$schedule_shift_totals[$day_epoch]['total_shifts'] = 1;
}
//$week_of_year = TTDate::getWeek( strtotime($day_epoch) );
$week_of_year = TTDate::getWeek(strtotime($day_epoch), $start_week_day);
if (!isset($schedule_shift_totals[$day_epoch]['labels'])) {
$schedule_shift_totals[$day_epoch]['labels'] = 0;
}
if ($day_schedule_shift['branch'] != '--' and !isset($schedule_shift_totals[$day_epoch]['branch'][$day_schedule_shift['branch']])) {
$schedule_shift_totals[$day_epoch]['branch'][$day_schedule_shift['branch']] = TRUE;
$schedule_shift_totals[$day_epoch]['labels']++;
}
if ($day_schedule_shift['department'] != '--' and !isset($schedule_shift_totals[$day_epoch]['department'][$day_schedule_shift['branch']][$day_schedule_shift['department']])) {
$schedule_shift_totals[$day_epoch]['department'][$day_schedule_shift['branch']][$day_schedule_shift['department']] = TRUE;
$schedule_shift_totals[$day_epoch]['labels']++;
}
if (!isset($max_week_data[$week_of_year]['shift'])) {
Debug::text('Date: ' . $day_epoch . ' Week: ' . $week_of_year . ' Setting Max Week shift to 0', __FILE__, __LINE__, __METHOD__, 10);
$max_week_data[$week_of_year]['shift'] = 1;
$max_week_data[$week_of_year]['labels'] = 0;
}
if (isset($max_week_data[$week_of_year]['shift']) and $schedule_shift_totals[$day_epoch]['total_shifts'] + $schedule_shift_totals[$day_epoch]['labels'] > $max_week_data[$week_of_year]['shift'] + $max_week_data[$week_of_year]['labels']) {
Debug::text('Date: ' . $day_epoch . ' Week: ' . $week_of_year . ' Setting Max Week shift to: ' . $schedule_shift_totals[$day_epoch]['total_shifts'] . ' Labels: ' . $schedule_shift_totals[$day_epoch]['labels'], __FILE__, __LINE__, __METHOD__, 10);
$max_week_data[$week_of_year]['shift'] = $schedule_shift_totals[$day_epoch]['total_shifts'];
$max_week_data[$week_of_year]['labels'] = $schedule_shift_totals[$day_epoch]['labels'];
}
//Debug::Arr($schedule_shift_totals, ' Schedule Shift Totals: ', __FILE__, __LINE__, __METHOD__,10);
//Debug::Arr($max_week_data, ' zMaxWeekData: ', __FILE__, __LINE__, __METHOD__,10);
}
}
if (isset($tmp_schedule_shifts)) {
//Sort Branches/Departments first
foreach ($tmp_schedule_shifts as $day_epoch => $day_tmp_schedule_shift) {
ksort($day_tmp_schedule_shift);
$tmp_schedule_shifts[$day_epoch] = $day_tmp_schedule_shift;
foreach ($day_tmp_schedule_shift as $branch => $department_schedule_shifts) {
ksort($tmp_schedule_shifts[$day_epoch][$branch]);
}
}
//Sort each department by start time.
foreach ($tmp_schedule_shifts as $day_epoch => $day_tmp_schedule_shift) {
foreach ($day_tmp_schedule_shift as $branch => $department_schedule_shifts) {
foreach ($department_schedule_shifts as $department => $department_schedule_shift) {
$department_schedule_shift = Sort::multiSort($department_schedule_shift, 'start_time');
$this->schedule_shifts[$day_epoch][$branch][$department] = $department_schedule_shift;
}
}
}
}
unset($day_tmp_schedule_shift, $department_schedule_shifts, $department_schedule_shift, $tmp_schedule_shifts, $branch, $department);
$calendar_array = TTDate::getCalendarArray($filter_data['start_date'], $filter_data['end_date'], $start_week_day);
//var_dump($calendar_array);
if (!is_array($calendar_array) or !isset($this->schedule_shifts) or !is_array($this->schedule_shifts)) {
continue;
//Skip to next user.
}
$ulf = TTnew('UserListFactory');
$ulf->getByIdAndCompanyId($user_id, $current_user->getCompany());
//.........这里部分代码省略.........
示例3: _outputPDFSchedule
function _outputPDFSchedule($format)
{
Debug::Text(' Format: ' . $format, __FILE__, __LINE__, __METHOD__, 10);
$current_company = $this->getUserObject()->getCompanyObject();
if (!is_object($current_company)) {
Debug::Text('Invalid company object...', __FILE__, __LINE__, __METHOD__, 10);
return FALSE;
}
$filter_data = $this->getFilterConfig();
$columns = Misc::trimSortPrefix($this->getOptions('columns'));
$adjust_x = 10;
$adjust_y = 10;
//Required fields
// 'first_name', 'last_name', 'branch', 'department', 'start_time', 'end_time'
$start_week_day = 0;
if (is_object($this->getUserObject()) and is_object($this->getUserObject()->getUserPreferenceObject())) {
$start_week_day = $this->getUserObject()->getUserPreferenceObject()->getStartWeekDay();
}
//Debug::Arr($this->form_data, 'Form Data: ', __FILE__, __LINE__, __METHOD__,10);
//Debug::Arr($this->data, 'Data: ', __FILE__, __LINE__, __METHOD__,10);
$this->getProgressBarObject()->start($this->getAMFMessageID(), 2, NULL, TTi18n::getText('Querying Database...'));
//Iterations need to be 2, otherwise progress bar is not created.
$this->getProgressBarObject()->set($this->getAMFMessageID(), 2);
$sf = TTNew('ScheduleFactory');
//getScheduleArray() doesn't accept pay_period_ids, so no data is returned if a time period of "last_pay_period" is selected.
if (isset($filter_data['pay_period_id'])) {
unset($filter_data['pay_period_id']);
$filter_data['start_date'] = TTDate::getBeginDayEpoch(time() - 86400 * 14);
//Default to the last 14days.
$filter_data['end_date'] = TTDate::getEndDayEpoch(time() - 86400);
}
$raw_schedule_shifts = $sf->getScheduleArray($filter_data);
if (is_array($raw_schedule_shifts)) {
//Debug::Arr($raw_schedule_shifts, 'Raw Schedule Shifts: ', __FILE__, __LINE__, __METHOD__,10);
$this->getProgressBarObject()->start($this->getAMFMessageID(), count($raw_schedule_shifts, COUNT_RECURSIVE), NULL, TTi18n::getText('Retrieving Data...'));
$key = 0;
foreach ($raw_schedule_shifts as $date_stamp => $day_schedule_shifts) {
foreach ($day_schedule_shifts as $shift_arr) {
$this->form_data['schedule_by_branch'][$shift_arr['branch']][$shift_arr['department']][$shift_arr['last_name'] . $shift_arr['first_name']][$date_stamp][] = $shift_arr;
//Need to be able to sort employees by last name first. Use names as keys instead of user_ids.
//$this->form_data['schedule_by_user'][$shift_arr['user_id']][$date_stamp][$shift_arr['branch']][$shift_arr['department']][] = $shift_arr;
$this->form_data['schedule_by_user'][$shift_arr['last_name'] . '_' . $shift_arr['first_name']][$date_stamp][$shift_arr['branch']][$shift_arr['department']][] = $shift_arr;
if (!isset($this->form_data['dates']['start_date']) or $this->form_data['dates']['start_date'] > $date_stamp) {
$this->form_data['dates']['start_date'] = $date_stamp;
}
if (!isset($this->form_data['dates']['end_date']) or $this->form_data['dates']['end_date'] < $date_stamp) {
$this->form_data['dates']['end_date'] = $date_stamp;
}
$this->getProgressBarObject()->set($this->getAMFMessageID(), $key);
$key++;
}
}
unset($date_stamp, $raw_schedule_shifts, $day_schedule_shifts);
} else {
Debug::Text('No schedule shifts returned...', __FILE__, __LINE__, __METHOD__, 10);
}
//Initialize array element if it doesn't exist to prevent PHP warning.
if (!isset($this->form_data['schedule_by_user'])) {
$this->form_data['schedule_by_user'] = array();
}
//Debug::Arr($this->form_data['schedule_by_branch'], '2Raw Schedule Shifts: ', __FILE__, __LINE__, __METHOD__,10);
//Debug::Arr($this->form_data['dates'], 'Dates: ', __FILE__, __LINE__, __METHOD__,10);
//If pay periods are requested, we need to convert those to start/end dates.
if (isset($this->form_data['dates']['start_date']) and isset($this->form_data['dates']['end_date']) and (!isset($filter_data['start_date']) or !isset($filter_data['end_date']))) {
$filter_data['start_date'] = strtotime($this->form_data['dates']['start_date']);
$filter_data['end_date'] = strtotime($this->form_data['dates']['end_date']);
}
if (isset($filter_data['start_date']) and isset($filter_data['end_date'])) {
$pdf_created_date = time();
$this->pdf = new TTPDF($this->config['other']['page_orientation'], 'mm', $this->config['other']['page_format'], $this->getUserObject()->getCompanyObject()->getEncoding());
$this->pdf->SetAuthor(APPLICATION_NAME);
$this->pdf->SetTitle($this->title);
$this->pdf->SetSubject(APPLICATION_NAME . ' ' . TTi18n::getText('Report'));
$this->pdf->setMargins($this->config['other']['left_margin'], $this->config['other']['top_margin'], $this->config['other']['right_margin']);
//Debug::Arr($this->config['other'], 'Margins: ', __FILE__, __LINE__, __METHOD__,10);
$this->pdf->SetAutoPageBreak(FALSE, 0);
$this->pdf->SetFont($this->config['other']['default_font'], '', $this->_pdf_fontSize(10));
//Debug::Arr($this->form_data, 'zabUser Raw Data: ', __FILE__, __LINE__, __METHOD__,10);
$calendar_array = TTDate::getCalendarArray($filter_data['start_date'], $filter_data['end_date'], $start_week_day);
//Debug::Arr($calendar_array, 'Calendar Array: ', __FILE__, __LINE__, __METHOD__,10);
switch ($format) {
case 'pdf_schedule_group':
case 'pdf_schedule_group_print':
case 'pdf_schedule_group_pagebreak':
case 'pdf_schedule_group_pagebreak_print':
//
// Group - Separate (branch/department on their own pages)
//
//Start displaying dates/times here. Start with header.
$column_widths = array('line' => 5, 'label' => 30, 'day' => ($this->pdf->getPageWidth() - $this->config['other']['left_margin'] - $this->config['other']['right_margin'] - 30) / 7);
if (isset($this->form_data['schedule_by_branch'])) {
$this->pdf->AddPage($this->config['other']['page_orientation'], 'Letter');
$n = 0;
ksort($this->form_data['schedule_by_branch']);
foreach ($this->form_data['schedule_by_branch'] as $branch => $level_2) {
ksort($level_2);
foreach ($level_2 as $department => $level_3) {
ksort($level_3);
if ($format == 'pdf_schedule_group_pagebreak' or $format == 'pdf_schedule_group_pagebreak_print') {
//Insert page breaks after each branch/department in this mode.
//.........这里部分代码省略.........