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; }
} } unset($data['milestone_rows'][$apm_id]); } unset($apm_id); } Redirect::Page(URLBuilder::getURL(array('id' => $data['id']), 'EditAccrualPolicy.php')); break; case 'submit': //Debug::setVerbosity(11); Debug::Text('Submit!', __FILE__, __LINE__, __METHOD__, 10); $redirect = 0; $apf->StartTransaction(); $apf->setId($data['id']); $apf->setCompany($current_company->getId()); $apf->setName($data['name']); $apf->setType($data['type_id']); if (isset($data['enable_pay_stub_balance_display'])) { $apf->setEnablePayStubBalanceDisplay(TRUE); } else { $apf->setEnablePayStubBalanceDisplay(FALSE); } $apf->setApplyFrequency($data['apply_frequency_id']); $apf->setApplyFrequencyMonth($data['apply_frequency_month']); $apf->setApplyFrequencyDayOfMonth($data['apply_frequency_day_of_month']); $apf->setApplyFrequencyDayOfWeek($data['apply_frequency_day_of_week']); if (isset($data['milestone_rollover_hire_date'])) { $apf->setMilestoneRolloverHireDate(TRUE); } else { $apf->setMilestoneRolloverHireDate(FALSE); $apf->setMilestoneRolloverMonth($data['milestone_rollover_month']);