} $rows = Misc::ArrayGroupBy($rows, array(Misc::trimSortPrefix($filter_data['primary_group_by']), Misc::trimSortPrefix($filter_data['secondary_group_by'])), Misc::trimSortPrefix($ignore_elements)); } if (isset($rows)) { foreach ($rows as $row) { $tmp_rows[] = $row; } //var_dump($tmp_rows); $special_sort_columns = array('pay_period'); if (in_array(Misc::trimSortPrefix($filter_data['primary_sort']), $special_sort_columns)) { $filter_data['primary_sort'] = $filter_data['primary_sort'] . '_order'; } if (in_array(Misc::trimSortPrefix($filter_data['secondary_sort']), $special_sort_columns)) { $filter_data['secondary_sort'] = $filter_data['secondary_sort'] . '_order'; } $rows = Sort::Multisort($tmp_rows, Misc::trimSortPrefix($filter_data['primary_sort']), Misc::trimSortPrefix($filter_data['secondary_sort']), $filter_data['primary_sort_dir'], $filter_data['secondary_sort_dir']); $total_row = Misc::ArrayAssocSum($rows, NULL, 2); $last_row = count($rows); $rows[$last_row] = $total_row; foreach ($static_columns as $static_column_key => $static_column_val) { $rows[$last_row][Misc::trimSortPrefix($static_column_key)] = NULL; } unset($static_column_key, $static_column_val); //Convert units $tmp_rows = $rows; unset($rows); $trimmed_static_columns = array_keys(Misc::trimSortPrefix($static_columns)); foreach ($tmp_rows as $row) { foreach ($row as $column => $column_data) { if (!strstr($column, 'wage') and !strstr($column, 'worked_days') and !in_array($column, $trimmed_static_columns)) { $column_data = TTDate::getTimeUnit($column_data);
$deviation = $value / $row['prev_entries'][$key] * 100; if ($deviation >= 100 + $red_alert_deviation or $deviation <= 100 - $red_alert_deviation) { $alert = 'red'; } elseif ($deviation >= 100 + $yellow_alert_deviation or $deviation <= 100 - $yellow_alert_deviation) { $alert = 'yellow'; } else { $alert = FALSE; } $row['percent_deviation'][$key] = array('deviation' => number_format($deviation, 2, '.', ''), 'alert' => $alert); //$row['percent_deviation'][$key] = number_format( $deviation, 2, '.', ''); } unset($deviation, $alert); } $rows[] = $row; } $rows = Sort::Multisort($rows, 'last_name', 'pay_period_transaction_date', 'DESC'); } //Since the array order matters for this opertation, we have to do it last, after //all ordering as been done. if (isset($rows)) { $i = 0; $prev_user = NULL; foreach ($rows as $row) { if ($row['user_id'] != $prev_user) { $rows[$i]['user_changed'] = TRUE; } else { $rows[$i]['user_changed'] = FALSE; } $prev_user = $row['user_id']; $i++; }
$column_widths = array('line' => 5, 'date_stamp' => 20, 'dow' => 10, 'in_punch_time_stamp' => 20, 'out_punch_time_stamp' => 20, 'worked_time' => 15, 'paid_time' => 15, 'regular_time' => 15, 'over_time' => 37, 'absence_time' => 43); if (isset($user_data['data']) and is_array($user_data['data'])) { if (isset($filter_data['date_type']) and $filter_data['date_type'] == 'pay_period_ids') { //Fill in any missing days, only if they select by pay period. $pplf = new PayPeriodListFactory(); $pplf->getById($user_data['pay_period_id']); if ($pplf->getRecordCount() == 1) { $pp_obj = $pplf->getCurrent(); for ($d = TTDate::getBeginDayEpoch($pp_obj->getStartDate()); $d <= $pp_obj->getEndDate(); $d += 86400) { if (Misc::inArrayByKeyAndValue($user_data['data'], 'date_stamp', TTDate::getBeginDayEpoch($d)) == FALSE) { $user_data['data'][] = array('date_stamp' => TTDate::getBeginDayEpoch($d), 'in_punch_time' => NULL, 'out_punch_time' => NULL, 'worked_time' => NULL, 'regular_time' => NULL, 'over_time' => NULL, 'paid_time' => NULL, 'absence_time' => NULL); } } } } $user_data['data'] = Sort::Multisort($user_data['data'], 'date_stamp', NULL, 'ASC'); $week_totals = Misc::preSetArrayValues(NULL, array('worked_time', 'paid_time', 'absence_time', 'regular_time', 'over_time'), 0); $totals = array(); $totals = Misc::preSetArrayValues($totals, array('worked_time', 'paid_time', 'absence_time', 'regular_time', 'over_time'), 0); $i = 1; $x = 1; $y = 1; $max_i = count($user_data['data']); foreach ($user_data['data'] as $data) { //print_r($data); //Show Header if ($i == 1 or $x == 1) { if ($x == 1) { $pdf->Ln(); } $line_h = 5;
foreach ($ids as $id) { $rhlf->getByIdAndCompanyId($id, $current_company->getId()); foreach ($rhlf as $rh_obj) { $rh_obj->setDeleted($delete); if ($rh_obj->isValid()) { $rh_obj->Save(); } } } Redirect::Page(URLBuilder::getURL(NULL, 'RecurringHolidayList.php')); break; default: $rhlf = new RecurringHolidayListFactory(); $rhlf->getByCompanyId($current_company->getId(), $current_user_prefs->getItemsPerPage(), $page, NULL, $sort_array); $pager = new Pager($rhlf); //$type_options = $aplf->getOptions('type'); foreach ($rhlf as $rh_obj) { $rows[] = array('id' => $rh_obj->getId(), 'name' => $rh_obj->getName(), 'next_date' => $rh_obj->getNextDate(time()), 'deleted' => $rh_obj->getDeleted()); } //Special sorting since next_date is calculated outside of the DB. if ($sort_column == 'next_date') { Debug::Text('Sort By Date!', __FILE__, __LINE__, __METHOD__, 10); $rows = Sort::Multisort($rows, $sort_column, NULL, $sort_order); } $smarty->assign_by_ref('rows', $rows); $smarty->assign_by_ref('sort_column', $sort_column); $smarty->assign_by_ref('sort_order', $sort_order); $smarty->assign_by_ref('paging_data', $pager->getPageVariables()); break; } $smarty->display('policy/RecurringHolidayList.tpl');