$date_job_item_total_group[$user_date_stamp][$date_data['job_item_id']] = $date_data; } } unset($prev_total_time, $date_rows, $date_data); //var_dump($date_department_total_group); $date_worked_total_job_item_ids = array_unique($date_worked_total_job_item_ids); sort($date_worked_total_job_item_ids); if ($date_worked_total_job_item_ids[0] != FALSE or count($date_worked_total_job_item_ids) > 1) { $date_job_item_total_rows = TimeSheetFormatArrayByDate($date_job_item_total_group, $date_worked_total_job_item_ids, $calendar_array, 'job_item', 'job_item_id'); } } /* Get Premium Time */ $pplf_b = new PremiumPolicyListFactory(); $premium_policy_options = $pplf_b->getByCompanyIdArray($current_company->getId()); unset($pplf_b); $udtlf = new UserDateTotalListFactory(); //Get only worked totals. $udtlf->getByCompanyIDAndUserIdAndStatusAndTypeAndStartDateAndEndDate($current_company->getId(), $user_id, 10, 40, $start_date, $end_date); if ($udtlf->getRecordCount() > 0) { foreach ($udtlf as $udt_obj) { $user_date_stamp = TTDate::strtotime($udt_obj->getColumn('user_date_stamp')); if ($udt_obj->getPremiumPolicyID() !== FALSE and isset($premium_policy_options[$udt_obj->getPremiumPolicyID()])) { $premium_policy = $premium_policy_options[$udt_obj->getPremiumPolicyID()]; } else { $premium_policy = TTi18n::gettext('No Policy'); } $date_premium_totals[$user_date_stamp][] = array('date_stamp' => $udt_obj->getColumn('user_date_stamp'), 'id' => $udt_obj->getId(), 'user_date_id' => $udt_obj->getUserDateId(), 'status_id' => $udt_obj->getStatus(), 'type_id' => $udt_obj->getType(), 'over_time_policy_id' => $udt_obj->getOverTimePolicyID(), 'premium_policy_id' => $udt_obj->getPremiumPolicyID(), 'premium_policy' => $premium_policy, 'department_id' => $udt_obj->getDepartment(), 'total_time' => $udt_obj->getTotalTime(), 'override' => $udt_obj->getOverride()); $date_premium_total_policy_ids[] = (int) $udt_obj->getPremiumPolicyID(); $date_total_premium_ids[] = (int) $udt_obj->getPremiumPolicyID();
foreach ($uwlf as $uw_obj) { $user_wage_rows[$uw_obj->getUser()][] = array('type_id' => $uw_obj->getType(), 'type' => Option::getByKey($uw_obj->getType(), $uw_obj->getOptions('type')), 'wage' => $uw_obj->getWage(), 'currency_symbol' => $uw_obj->getUserObject()->getCurrencyObject()->getSymbol(), 'effective_date' => $uw_obj->getEffectiveDate(), 'effective_date_since' => TTDate::getHumanTimeSince($uw_obj->getEffectiveDate())); } } } /* Get Attendance History */ if (isset($columns['attendance'])) { //Get policy names. $oplf = new OverTimePolicyListFactory(); $over_time_policy_arr = $oplf->getByCompanyIdArray($current_company->getId(), FALSE); $aplf = new AbsencePolicyListFactory(); $absence_policy_arr = $aplf->getByCompanyIdArray($current_company->getId(), FALSE); $pplf = new PremiumPolicyListFactory(); $premium_policy_arr = $pplf->getByCompanyIdArray($current_company->getId(), FALSE); //Get stats on number of days worked per month/week $udlf = new UserDateListFactory(); $udlf->getDaysWorkedByTimePeriodAndUserIdAndCompanyIdAndStartDateAndEndDate('month', $filter_data['user_ids'], $current_company->getId(), $filter_data['start_date'], $filter_data['end_date']); if ($udlf->getRecordCount() > 0) { foreach ($udlf as $ud_obj) { //$user_days_worked[$ud_obj->getUser()]['month'] $user_attendance_rows[$ud_obj->getUser()]['days_worked']['month'] = array('avg' => round($ud_obj->getColumn('avg'), 2), 'min' => $ud_obj->getColumn('min'), 'max' => $ud_obj->getColumn('max')); } } $udlf->getDaysWorkedByTimePeriodAndUserIdAndCompanyIdAndStartDateAndEndDate('week', $filter_data['user_ids'], $current_company->getId(), $filter_data['start_date'], $filter_data['end_date']); if ($udlf->getRecordCount() > 0) { foreach ($udlf as $ud_obj) { $user_attendance_rows[$ud_obj->getUser()]['days_worked']['week'] = array('avg' => round($ud_obj->getColumn('avg'), 2), 'min' => $ud_obj->getColumn('min'), 'max' => $ud_obj->getColumn('max')); } }