function setHolidayPolicyID($id) { $id = trim($id); $hplf = new HolidayPolicyListFactory(); if ($this->Validator->isResultSetWithRows('holiday_policy', $hplf->getByID($id), TTi18n::gettext('Holiday Policy is invalid'))) { $this->data['holiday_policy_id'] = $id; return TRUE; } return FALSE; }
$none_array_option = array('0' => TTi18n::gettext('-- None --')); $ulf = new UserListFactory(); $user_options = $ulf->getByCompanyIDArray($current_company->getId(), FALSE, TRUE); $otplf = new OverTimePolicyListFactory(); $over_time_policy_options = Misc::prependArray($none_array_option, $otplf->getByCompanyIDArray($current_company->getId(), FALSE)); $pplf = new PremiumPolicyListFactory(); $premium_policy_options = Misc::prependArray($none_array_option, $pplf->getByCompanyIDArray($current_company->getId(), FALSE)); $riplf = new RoundIntervalPolicyListFactory(); $round_interval_policy_options = Misc::prependArray($none_array_option, $riplf->getByCompanyIDArray($current_company->getId(), FALSE)); $mplf = new MealPolicyListFactory(); $meal_options = Misc::prependArray($none_array_option, $mplf->getByCompanyIdArray($current_company->getId(), FALSE)); $bplf = new BreakPolicyListFactory(); $break_options = Misc::prependArray($none_array_option, $bplf->getByCompanyIdArray($current_company->getId(), FALSE)); $epclf = new ExceptionPolicyControlListFactory(); $exception_options = Misc::prependArray($none_array_option, $epclf->getByCompanyIdArray($current_company->getId(), FALSE)); $hplf = new HolidayPolicyListFactory(); $holiday_policy_options = Misc::prependArray($none_array_option, $hplf->getByCompanyIdArray($current_company->getId(), FALSE)); $aplf = new AccrualPolicyListFactory(); $aplf->getByCompanyIdAndTypeID($current_company->getId(), array(20, 30)); //Calendar and Hour based. $accrual_options = Misc::prependArray($none_array_option, $aplf->getArrayByListFactory($aplf, FALSE)); //Select box options; $data['user_options'] = $user_options; $data['over_time_policy_options'] = $over_time_policy_options; $data['premium_policy_options'] = $premium_policy_options; $data['round_interval_policy_options'] = $round_interval_policy_options; $data['accrual_policy_options'] = $accrual_options; $data['meal_options'] = $meal_options; $data['break_options'] = $break_options; $data['exception_options'] = $exception_options; $data['holiday_policy_options'] = $holiday_policy_options;
function getByCompanyIdArray($company_id, $include_blank = TRUE) { $hplf = new HolidayPolicyListFactory(); $hplf->getByCompanyId($company_id); if ($include_blank == TRUE) { $list[0] = '--'; } foreach ($hplf as $hp_obj) { $list[$hp_obj->getID()] = $hp_obj->getName(); } if (isset($list)) { return $list; } return FALSE; }
$hpf->setRoundIntervalPolicyID($data['round_interval_policy_id']); if ($hpf->isValid()) { $hpf->Save(FALSE); $hpf->setRecurringHoliday($data['recurring_holiday_ids']); if ($hpf->isValid()) { $hpf->Save(); $hpf->CommitTransaction(); Redirect::Page(URLBuilder::getURL(NULL, 'HolidayPolicyList.php')); break; } } $hpf->FailTransaction(); default: if (isset($id)) { BreadCrumb::setCrumb($title); $hplf = new HolidayPolicyListFactory(); $hplf->getByIdAndCompanyID($id, $current_company->getID()); foreach ($hplf as $hp_obj) { //Debug::Arr($station,'Department', __FILE__, __LINE__, __METHOD__,10); $data = array('id' => $hp_obj->getId(), 'name' => $hp_obj->getName(), 'type_id' => $hp_obj->getType(), 'default_schedule_status_id' => $hp_obj->getDefaultScheduleStatus(), 'minimum_employed_days' => $hp_obj->getMinimumEmployedDays(), 'minimum_worked_period_days' => $hp_obj->getMinimumWorkedPeriodDays(), 'minimum_worked_days' => $hp_obj->getMinimumWorkedDays(), 'worked_scheduled_days' => $hp_obj->getWorkedScheduledDays(), 'minimum_worked_after_period_days' => $hp_obj->getMinimumWorkedAfterPeriodDays(), 'minimum_worked_after_days' => $hp_obj->getMinimumWorkedAfterDays(), 'worked_after_scheduled_days' => $hp_obj->getWorkedAfterScheduledDays(), 'average_time_days' => $hp_obj->getAverageTimeDays(), 'average_time_worked_days' => $hp_obj->getAverageTimeWorkedDays(), 'force_over_time_policy' => $hp_obj->getForceOverTimePolicy(), 'include_over_time' => $hp_obj->getIncludeOverTime(), 'include_paid_absence_time' => $hp_obj->getIncludePaidAbsenceTime(), 'minimum_time' => $hp_obj->getMinimumTime(), 'maximum_time' => $hp_obj->getMaximumTime(), 'round_interval_policy_id' => $hp_obj->getRoundIntervalPolicyID(), 'absence_policy_id' => $hp_obj->getAbsencePolicyID(), 'recurring_holiday_ids' => $hp_obj->getRecurringHoliday(), 'created_date' => $hp_obj->getCreatedDate(), 'created_by' => $hp_obj->getCreatedBy(), 'updated_date' => $hp_obj->getUpdatedDate(), 'updated_by' => $hp_obj->getUpdatedBy(), 'deleted_date' => $hp_obj->getDeletedDate(), 'deleted_by' => $hp_obj->getDeletedBy()); } } elseif ($action != 'submit') { //Defaults $data = array('default_schedule_status_id' => 20, 'minimum_employed_days' => 30, 'minimum_worked_period_days' => 30, 'minimum_worked_days' => 15, 'minimum_worked_after_period_days' => 0, 'minimum_worked_after_days' => 0, 'average_time_days' => 30, 'force_over_time_policy' => FALSE, 'include_over_time' => FALSE, 'include_paid_absence_time' => TRUE, 'minimum_time' => 0, 'maximum_time' => 0); } $aplf = new AbsencePolicyListFactory(); $absence_options = $aplf->getByCompanyIDArray($current_company->getId(), TRUE); $riplf = new RoundIntervalPolicyListFactory(); $round_interval_options = $riplf->getByCompanyIDArray($current_company->getId(), TRUE); $rhlf = new RecurringHolidayListFactory(); $recurring_holiday_options = $rhlf->getByCompanyIDArray($current_company->getId(), TRUE);
} $hplf = new HolidayPolicyListFactory(); foreach ($ids as $id) { $hplf->getByIdAndCompanyId($id, $current_company->getId()); foreach ($hplf as $hp_obj) { $hp_obj->setDeleted($delete); if ($hp_obj->isValid()) { $hp_obj->Save(); } } } Redirect::Page(URLBuilder::getURL(NULL, 'HolidayPolicyList.php')); break; default: BreadCrumb::setCrumb($title); $hplf = new HolidayPolicyListFactory(); $hplf->getByCompanyId($current_company->getId()); $pager = new Pager($hplf); $type_options = $hplf->getOptions('type'); $show_no_policy_group_notice = FALSE; foreach ($hplf as $hp_obj) { if ((int) $hp_obj->getColumn('assigned_policy_groups') == 0) { $show_no_policy_group_notice = TRUE; } $policies[] = array('id' => $hp_obj->getId(), 'name' => $hp_obj->getName(), 'type_id' => $hp_obj->getType(), 'type' => $type_options[$hp_obj->getType()], 'assigned_policy_groups' => (int) $hp_obj->getColumn('assigned_policy_groups'), 'deleted' => $hp_obj->getDeleted()); } $smarty->assign_by_ref('policies', $policies); $smarty->assign_by_ref('show_no_policy_group_notice', $show_no_policy_group_notice); $smarty->assign_by_ref('sort_column', $sort_column); $smarty->assign_by_ref('sort_order', $sort_order); $smarty->assign_by_ref('paging_data', $pager->getPageVariables());
********************************************************************************/ /* * $Revision: 1396 $ * $Id: AddRecurringHoliday.php 1396 2007-11-07 16:49:35Z ipso $ * $Date: 2007-11-07 08:49:35 -0800 (Wed, 07 Nov 2007) $ */ /* * Adds recurring holidays X days in advance, * This file should run once a day. * */ require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'global.inc.php'; require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'CLI.inc.php'; $offset = 86400 * 60; //60 days $hplf = new HolidayPolicyListFactory(); //Get all holiday policies $hplf->getAll(NULL, NULL, NULL); $epoch = time(); foreach ($hplf as $hp_obj) { //Get all recurring holidays $recurring_holiday_ids = $hp_obj->getRecurringHoliday(); if (is_array($recurring_holiday_ids) and count($recurring_holiday_ids) > 0) { Debug::Text('Found Recurring Holidays...', __FILE__, __LINE__, __METHOD__, 10); foreach ($recurring_holiday_ids as $recurring_holiday_id) { $rhlf = new RecurringHolidayListFactory(); $rhlf->getById($recurring_holiday_id); if ($rhlf->getRecordCount() == 1) { $rh_obj = $rhlf->getCurrent(); Debug::Text('Found Recurring Holiday: ' . $rh_obj->getName(), __FILE__, __LINE__, __METHOD__, 10); $next_holiday_date = $rh_obj->getNextDate($epoch);
function getHolidayUserDateIDs() { Debug::text('reCalculating Holiday...', __FILE__, __LINE__, __METHOD__, 10); //Get Holiday policies and determine how many days we need to look ahead/behind in order //to recalculate the holiday eligilibility/time. $holiday_before_days = 0; $holiday_after_days = 0; $hplf = new HolidayPolicyListFactory(); $hplf->getByCompanyId($this->getUserDateObject()->getUserObject()->getCompany()); if ($hplf->getRecordCount() > 0) { foreach ($hplf as $hp_obj) { if ($hp_obj->getMinimumWorkedPeriodDays() > $holiday_before_days) { $holiday_before_days = $hp_obj->getMinimumWorkedPeriodDays(); } if ($hp_obj->getAverageTimeDays() > $holiday_before_days) { $holiday_before_days = $hp_obj->getAverageTimeDays(); } if ($hp_obj->getMinimumWorkedAfterPeriodDays() > $holiday_after_days) { $holiday_after_days = $hp_obj->getMinimumWorkedAfterPeriodDays(); } } } Debug::text('Holiday Before Days: ' . $holiday_before_days . ' Holiday After Days: ' . $holiday_after_days, __FILE__, __LINE__, __METHOD__, 10); if ($holiday_before_days > 0 or $holiday_after_days > 0) { $retarr = array(); $search_start_date = TTDate::getBeginWeekEpoch($this->getUserDateObject()->getDateStamp() - $holiday_after_days * 86400); $search_end_date = TTDate::getEndWeekEpoch(TTDate::getEndDayEpoch($this->getUserDateObject()->getDateStamp()) + $holiday_before_days * 86400 + 3601); Debug::text('Holiday search start date: ' . TTDate::getDate('DATE', $search_start_date) . ' End date: ' . TTDate::getDate('DATE', $search_end_date) . ' Current Date: ' . TTDate::getDate('DATE', $this->getUserDateObject()->getDateStamp()), __FILE__, __LINE__, __METHOD__, 10); $hlf = new HolidayListFactory(); //$hlf->getByPolicyGroupUserIdAndStartDateAndEndDate( $this->getUserDateObject()->getUser(), TTDate::getEndWeekEpoch( $this->getUserDateObject()->getDateStamp() )+86400, TTDate::getEndDayEpoch()+($max_average_time_days*86400)+3601 ); $hlf->getByPolicyGroupUserIdAndStartDateAndEndDate($this->getUserDateObject()->getUser(), $search_start_date, $search_end_date); if ($hlf->getRecordCount() > 0) { Debug::text('Found Holidays within range: ' . $hlf->getRecordCount(), __FILE__, __LINE__, __METHOD__, 10); $udlf = new UserDateListFactory(); foreach ($hlf as $h_obj) { Debug::text('ReCalculating Day due to Holiday: ' . TTDate::getDate('DATE', $h_obj->getDateStamp()), __FILE__, __LINE__, __METHOD__, 10); $user_date_ids = $udlf->getArrayByListFactory($udlf->getByUserIdAndDate($this->getUserDateObject()->getUser(), $h_obj->getDateStamp())); if (is_array($user_date_ids)) { $retarr = array_merge($retarr, $user_date_ids); } unset($user_date_ids); } } } if (isset($retarr) and is_array($retarr) and count($retarr) > 0) { //Debug::Arr($retarr, 'Holiday UserDateIDs: ', __FILE__, __LINE__, __METHOD__, 10); return $retarr; } Debug::text('No Holidays within range...', __FILE__, __LINE__, __METHOD__, 10); return FALSE; }