示例#1
0
         $filter_data['permission_children_ids'] = $permission_children_ids;
     }
     if ($permission->Check('punch', 'view_own')) {
         $filter_data['permission_children_ids'][] = $current_user->getId();
     }
 }
 $pplf = new PayPeriodListFactory();
 $pplf->getByCompanyId($current_company->getId());
 $pay_period_options = $pplf->getArrayByListFactory($pplf, FALSE, FALSE);
 $pay_period_ids = array_keys((array) $pay_period_options);
 if (isset($pay_period_ids[0]) and (!isset($filter_data['pay_period_ids']) or $filter_data['pay_period_ids'] == '')) {
     $filter_data['pay_period_ids'] = '-1';
 }
 //Order In punches before Out punches.
 $sort_array = Misc::prependArray($sort_array, array('c.pay_period_id' => 'asc', 'c.user_id' => 'asc', 'a.time_stamp' => 'asc', 'a.punch_control_id' => 'asc', 'a.status_id' => 'desc'));
 $plf->getSearchByCompanyIdAndArrayCriteria($current_company->getId(), $filter_data, $current_user_prefs->getItemsPerPage(), $page, NULL, $sort_array);
 $pager = new Pager($plf);
 $punch_status_options = $plf->getOptions('status');
 $punch_type_options = $plf->getOptions('type');
 $utlf = new UserTitleListFactory();
 $utlf->getByCompanyId($current_company->getId());
 $title_options = $utlf->getArrayByListFactory($utlf, FALSE, TRUE);
 $blf = new BranchListFactory();
 $blf->getByCompanyId($current_company->getId());
 $branch_options = $blf->getArrayByListFactory($blf, FALSE, TRUE);
 $dlf = new DepartmentListFactory();
 $dlf->getByCompanyId($current_company->getId());
 $department_options = $dlf->getArrayByListFactory($dlf, FALSE, TRUE);
 $uglf = new UserGroupListFactory();
 $group_options = $uglf->getArrayByNodes(FastTree::FormatArray($uglf->getByCompanyIdArray($current_company->getId()), 'TEXT', TRUE));
 $ulf = new UserListFactory();
         $tmp_rows[$pay_period_id][$user_id][$date_stamp]['schedule_working'] = $schedule_rows[$pay_period_id][$user_id][$date_stamp]['working'];
     } else {
         $tmp_rows[$pay_period_id][$user_id][$date_stamp]['schedule_working'] = NULL;
     }
     if (isset($schedule_rows[$pay_period_id][$user_id][$date_stamp]['absence'])) {
         $tmp_rows[$pay_period_id][$user_id][$date_stamp]['schedule_absence'] = $schedule_rows[$pay_period_id][$user_id][$date_stamp]['absence'];
     } else {
         $tmp_rows[$pay_period_id][$user_id][$date_stamp]['schedule_absence'] = NULL;
     }
     $tmp_rows[$pay_period_id][$user_id][$date_stamp]['min_punch_time_stamp'] = TTDate::strtotime($udt_obj->getColumn('min_punch_time_stamp'));
     $tmp_rows[$pay_period_id][$user_id][$date_stamp]['max_punch_time_stamp'] = TTDate::strtotime($udt_obj->getColumn('max_punch_time_stamp'));
 }
 //Get all punches
 if ($action == 'display_detailed_timesheet') {
     $plf = new PunchListFactory();
     $plf->getSearchByCompanyIdAndArrayCriteria($current_company->getId(), $filter_data);
     if ($plf->getRecordCount() > 0) {
         foreach ($plf as $p_obj) {
             $punch_rows[$p_obj->getColumn('pay_period_id')][$p_obj->getColumn('user_id')][TTDate::strtotime($p_obj->getColumn('date_stamp'))][$p_obj->getPunchControlID()][$p_obj->getStatus()] = array('status_id' => $p_obj->getStatus(), 'type_id' => $p_obj->getType(), 'type_code' => $p_obj->getTypeCode(), 'time_stamp' => $p_obj->getTimeStamp());
         }
     }
     unset($plf, $p_obj);
 }
 $ulf = new UserListFactory();
 $utlf = new UserTitleListFactory();
 $title_options = $utlf->getByCompanyIdArray($current_company->getId());
 $blf = new BranchListFactory();
 $branch_options = $blf->getByCompanyIdArray($current_company->getId());
 $dlf = new DepartmentListFactory();
 $department_options = $dlf->getByCompanyIdArray($current_company->getId());
 $uglf = new UserGroupListFactory();