function createOverTimePolicy($company_id, $type, $accrual_policy_id = NULL) { $otpf = new OverTimePolicyFactory(); $otpf->setCompany($company_id); switch ($type) { case 10: $otpf->setName('OverTime (>8hrs)'); $otpf->setType(10); $otpf->setTriggerTime(3600 * 8); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 1')); $otpf->setAccrualPolicyId(0); $otpf->setAccrualRate(0); break; case 20: $otpf->setName('Daily (>10hrs)'); $otpf->setType(10); $otpf->setTriggerTime(3600 * 10); $otpf->setRate('1.0'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId($accrual_policy_id); $otpf->setAccrualRate('1.0'); } if ($otpf->isValid()) { $insert_id = $otpf->Save(); Debug::Text('Overtime Policy ID: ' . $insert_id, __FILE__, __LINE__, __METHOD__, 10); return $insert_id; } Debug::Text('Failed Creating Overtime Policy!', __FILE__, __LINE__, __METHOD__, 10); return FALSE; }
function createOverTimePolicy($company_id, $type, $accrual_policy_id = NULL) { $otpf = new OverTimePolicyFactory(); $otpf->setCompany($company_id); switch ($type) { case 100: $otpf->setName('Daily (>8hrs)'); $otpf->setType(10); $otpf->setTriggerTime(3600 * 8); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 1')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 110: $otpf->setName('Daily (>9hrs)'); $otpf->setType(10); $otpf->setTriggerTime(3600 * 9); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 120: $otpf->setName('Daily (>10hrs)'); $otpf->setType(10); $otpf->setTriggerTime(3600 * 10); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 200: $otpf->setName('Weekly (>47hrs)'); $otpf->setType(20); $otpf->setTriggerTime(3600 * 47); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 210: $otpf->setName('Weekly (>59hrs)'); $otpf->setType(20); $otpf->setTriggerTime(3600 * 59); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 220: $otpf->setName('Weekly (>71hrs)'); $otpf->setType(20); $otpf->setTriggerTime(3600 * 71); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 230: $otpf->setName('Weekly (>31hrs)'); $otpf->setType(20); $otpf->setTriggerTime(3600 * 31); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 240: $otpf->setName('Weekly (>39hrs)'); $otpf->setType(20); $otpf->setTriggerTime(3600 * 39); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 250: $otpf->setName('Weekly (>47hrs)'); $otpf->setType(20); $otpf->setTriggerTime(3600 * 47); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 500: $otpf->setName('Holiday'); $otpf->setType(180); $otpf->setTriggerTime(0); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; } if ($otpf->isValid()) { $insert_id = $otpf->Save(); Debug::Text('Overtime Policy ID: ' . $insert_id, __FILE__, __LINE__, __METHOD__, 10); return $insert_id; } Debug::Text('Failed Creating Overtime Policy!', __FILE__, __LINE__, __METHOD__, 10); return FALSE; }
switch ($action) { case 'submit': Debug::Text('Submit!', __FILE__, __LINE__, __METHOD__, 10); $otpf->setId($data['id']); $otpf->setCompany($current_company->getId()); $otpf->setName($data['name']); $otpf->setType($data['type_id']); //$otpf->setLevel( $data['level'] ); $otpf->setTriggerTime($data['trigger_time']); $otpf->setRate($data['rate']); $otpf->setWageGroup($data['wage_group_id']); $otpf->setAccrualPolicyId($data['accrual_policy_id']); $otpf->setAccrualRate($data['accrual_rate']); $otpf->setPayStubEntryAccountId($data['pay_stub_entry_account_id']); if ($otpf->isValid()) { $otpf->Save(); Redirect::Page(URLBuilder::getURL(NULL, 'OverTimePolicyList.php')); break; } default: if (isset($id)) { BreadCrumb::setCrumb($title); $otplf = new OverTimePolicyListFactory(); $otplf->getByIdAndCompanyID($id, $current_company->getID()); foreach ($otplf as $otp_obj) { //Debug::Arr($station,'Department', __FILE__, __LINE__, __METHOD__,10); $data = array('id' => $otp_obj->getId(), 'name' => $otp_obj->getName(), 'type_id' => $otp_obj->getType(), 'trigger_time' => $otp_obj->getTriggerTime(), 'rate' => Misc::removeTrailingZeros($otp_obj->getRate()), 'wage_group_id' => $otp_obj->getWageGroup(), 'accrual_rate' => Misc::removeTrailingZeros($otp_obj->getAccrualRate()), 'accrual_policy_id' => $otp_obj->getAccrualPolicyID(), 'pay_stub_entry_account_id' => $otp_obj->getPayStubEntryAccountId(), 'created_date' => $otp_obj->getCreatedDate(), 'created_by' => $otp_obj->getCreatedBy(), 'updated_date' => $otp_obj->getUpdatedDate(), 'updated_by' => $otp_obj->getUpdatedBy(), 'deleted_date' => $otp_obj->getDeletedDate(), 'deleted_by' => $otp_obj->getDeletedBy()); } } elseif ($action != 'submit') { $data = array('trigger_time' => 0, 'rate' => '1.00', 'accrual_rate' => '1.00'); }
function createOverTimePolicy($company_id, $type, $accrual_policy_id = NULL) { $otpf = new OverTimePolicyFactory(); $otpf->setCompany($company_id); switch ($type) { // //Changing the OT rates will make a big difference is how these tests are calculated. // case 100: $otpf->setName('Daily (>8hrs)'); $otpf->setType(10); $otpf->setTriggerTime(3600 * 8); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 1')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 110: $otpf->setName('Daily (>9hrs)'); $otpf->setType(10); $otpf->setTriggerTime(3600 * 9); $otpf->setRate('2.0'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 120: $otpf->setName('Daily (>10hrs)'); $otpf->setType(10); $otpf->setTriggerTime(3600 * 10); $otpf->setRate('2.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 200: $otpf->setName('Weekly (>47hrs)'); $otpf->setType(20); $otpf->setTriggerTime(3600 * 47); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 210: $otpf->setName('Weekly (>59hrs)'); $otpf->setType(20); $otpf->setTriggerTime(3600 * 59); $otpf->setRate('2.0'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 220: $otpf->setName('Weekly (>71hrs)'); $otpf->setType(20); $otpf->setTriggerTime(3600 * 71); $otpf->setRate('2.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 230: $otpf->setName('Weekly (>31hrs)'); $otpf->setType(20); $otpf->setTriggerTime(3600 * 31); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 240: $otpf->setName('Weekly (>39hrs)'); $otpf->setType(20); $otpf->setTriggerTime(3600 * 39); $otpf->setRate('2.0'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 250: $otpf->setName('Weekly (>47hrs)'); $otpf->setType(20); $otpf->setTriggerTime(3600 * 47); $otpf->setRate('2.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 300: $otpf->setName('BiWeekly (>80hrs)'); $otpf->setType(30); $otpf->setTriggerTime(3600 * 80); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 310: $otpf->setName('BiWeekly (>84hrs)'); $otpf->setType(30); $otpf->setTriggerTime(3600 * 84); $otpf->setRate('2.0'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 320: $otpf->setName('BiWeekly (>86hrs)'); $otpf->setType(30); $otpf->setTriggerTime(3600 * 86); $otpf->setRate('2.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 500: $otpf->setName('Holiday'); $otpf->setType(180); $otpf->setTriggerTime(0); $otpf->setRate('1.5'); $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; case 510: $otpf->setName('Holiday'); $otpf->setType(180); $otpf->setTriggerTime(0); $otpf->setRate('4.0'); //This should have the highest rate as it always takes precedance. $otpf->setPayStubEntryAccountId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, 'Over Time 2')); $otpf->setAccrualPolicyId((int) $accrual_policy_id); $otpf->setAccrualRate(1.0); break; } if ($otpf->isValid()) { $insert_id = $otpf->Save(); Debug::Text('Overtime Policy ID: ' . $insert_id, __FILE__, __LINE__, __METHOD__, 10); return $insert_id; } Debug::Text('Failed Creating Overtime Policy!', __FILE__, __LINE__, __METHOD__, 10); return FALSE; }