function setRecurringHoliday($ids) { Debug::text('Setting Recurring Holiday IDs : ', __FILE__, __LINE__, __METHOD__, 10); if (is_array($ids) and count($ids) > 0) { $tmp_ids = array(); if (!$this->isNew()) { //If needed, delete mappings first. $hprhlf = new HolidayPolicyRecurringHolidayListFactory(); $hprhlf->getByHolidayPolicyId($this->getId()); foreach ($hprhlf as $obj) { $id = $obj->getRecurringHoliday(); Debug::text('Policy ID: ' . $obj->getHolidayPolicy() . ' ID: ' . $id, __FILE__, __LINE__, __METHOD__, 10); //Delete users that are not selected. if (!in_array($id, $ids)) { Debug::text('Deleting: ' . $id, __FILE__, __LINE__, __METHOD__, 10); $obj->Delete(); } else { //Save ID's that need to be updated. Debug::text('NOT Deleting : ' . $id, __FILE__, __LINE__, __METHOD__, 10); $tmp_ids[] = $id; } } unset($id, $obj); } //Insert new mappings. $rhlf = new RecurringHolidayListFactory(); foreach ($ids as $id) { if (isset($ids) and !in_array($id, $tmp_ids) and $id > 0) { $hprhf = new HolidayPolicyRecurringHolidayFactory(); $hprhf->setHolidayPolicy($this->getId()); $hprhf->setRecurringHoliday($id); $obj = $rhlf->getById($id)->getCurrent(); if ($this->Validator->isTrue('recurring_holiday', $hprhf->Validator->isValid(), TTi18n::gettext('Selected Recurring Holiday is invalid') . ' (' . $obj->getName() . ')')) { $hprhf->save(); } } } return TRUE; } Debug::text('No User IDs to set.', __FILE__, __LINE__, __METHOD__, 10); return FALSE; }
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); Debug::Text('Next Holiday Date: ' . TTDate::getDate('DATE+TIME', $next_holiday_date), __FILE__, __LINE__, __METHOD__, 10); if ($next_holiday_date <= $epoch + $offset) { Debug::Text('Next Holiday Date is within Time Period (offset) adding...', __FILE__, __LINE__, __METHOD__, 10); $hf = new HolidayFactory(); $hf->setHolidayPolicyId($hp_obj->getId()); $hf->setDateStamp($next_holiday_date); $hf->setName($rh_obj->getName()); if ($hf->isValid()) { $hf->Save(); } } else {