function createAccrualPolicy($company_id, $type) { $apf = new AccrualPolicyFactory(); $apf->setCompany($company_id); switch ($type) { case 10: //Bank Time $apf->setName('Bank Time'); $apf->setType(10); break; case 20: //Calendar Based: Vacation/PTO $apf->setName('Personal Time Off (PTO)/Vacation'); $apf->setType(20); $apf->setApplyFrequency(10); $apf->setMilestoneRolloverHireDate(TRUE); $apf->setMinimumEmployedDays(30); break; case 30: //Calendar Based: Vacation/PTO $apf->setName('Sick Time'); $apf->setType(20); $apf->setApplyFrequency(10); $apf->setMilestoneRolloverHireDate(TRUE); $apf->setMinimumEmployedDays(30); break; } if ($apf->isValid()) { $insert_id = $apf->Save(); Debug::Text('Accrual Policy ID: ' . $insert_id, __FILE__, __LINE__, __METHOD__, 10); $apmf = new AccrualPolicyMilestoneFactory(); if ($type == 20) { $apmf->setAccrualPolicy($insert_id); $apmf->setLengthOfService(1); $apmf->setLengthOfServiceUnit(40); $apmf->setAccrualRate(3600 * 8 * 5); $apmf->setMaximumTime(3600 * 8 * 5); if ($apmf->isValid()) { Debug::Text('Saving Milestone...', __FILE__, __LINE__, __METHOD__, 10); $apmf->Save(); } $apmf->setAccrualPolicy($insert_id); $apmf->setLengthOfService(2); $apmf->setLengthOfServiceUnit(40); $apmf->setAccrualRate(3600 * 8 * 10); $apmf->setMaximumTime(3600 * 8 * 10); if ($apmf->isValid()) { Debug::Text('Saving Milestone...', __FILE__, __LINE__, __METHOD__, 10); $apmf->Save(); } $apmf->setAccrualPolicy($insert_id); $apmf->setLengthOfService(3); $apmf->setLengthOfServiceUnit(40); $apmf->setAccrualRate(3600 * 8 * 15); $apmf->setMaximumTime(3600 * 8 * 15); if ($apmf->isValid()) { Debug::Text('Saving Milestone...', __FILE__, __LINE__, __METHOD__, 10); $apmf->Save(); } } elseif ($type == 30) { $apmf->setAccrualPolicy($insert_id); $apmf->setLengthOfService(1); $apmf->setLengthOfServiceUnit(10); $apmf->setAccrualRate(3600 * 8 * 3); $apmf->setMaximumTime(3600 * 8 * 3); if ($apmf->isValid()) { Debug::Text('Saving Milestone...', __FILE__, __LINE__, __METHOD__, 10); $apmf->Save(); } $apmf->setAccrualPolicy($insert_id); $apmf->setLengthOfService(1); $apmf->setLengthOfServiceUnit(40); $apmf->setAccrualRate(3600 * 8 * 6); $apmf->setMaximumTime(3600 * 8 * 6); if ($apmf->isValid()) { Debug::Text('Saving Milestone...', __FILE__, __LINE__, __METHOD__, 10); $apmf->Save(); } } return $insert_id; } Debug::Text('Failed Creating Accrual Policy!', __FILE__, __LINE__, __METHOD__, 10); return FALSE; }
foreach ($data['milestone_rows'] as $milestone_row_id => $milestone_row) { if ($data['type_id'] == 20 and isset($milestone_row['accrual_rate']) and $milestone_row['accrual_rate'] != '') { $data['milestone_rows'][$milestone_row_id]['accrual_rate'] = TTDate::parseTimeUnit($milestone_row['accrual_rate']); } if (isset($milestone_row['maximum_time']) and $milestone_row['maximum_time'] != '') { $data['milestone_rows'][$milestone_row_id]['maximum_time'] = TTDate::parseTimeUnit($milestone_row['maximum_time']); } /* if ( isset($milestone_row['minimum_time']) AND $milestone_row['minimum_time'] != '' ) { $data['milestone_rows'][$milestone_row_id]['minimum_time'] = TTDate::parseTimeUnit($milestone_row['minimum_time'] ); } */ } } $apf = new AccrualPolicyFactory(); $apmf = new AccrualPolicyMilestoneFactory(); $action = Misc::findSubmitButton(); $action = strtolower($action); switch ($action) { case 'delete': //Debug::setVerbosity(11); if (count($ids) > 0) { foreach ($ids as $apm_id) { if ($apm_id > 0) { Debug::Text('cDeleting Milestone Row ID: ' . $apm_id, __FILE__, __LINE__, __METHOD__, 10); $apmlf = new AccrualPolicyMilestoneListFactory(); $apmlf->getById($apm_id); if ($apmlf->getRecordCount() == 1) { foreach ($apmlf as $apm_obj) { $apm_obj->setDeleted(TRUE); if ($apm_obj->isValid()) {