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;
 }
Esempio n. 2
0
 $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;
 }