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;
 }
if (isset($data['trigger_time'])) {
    $data['trigger_time'] = TTDate::parseTimeUnit($data['trigger_time']);
}
$otpf = new OverTimePolicyFactory();
$action = Misc::findSubmitButton();
$action = strtolower($action);
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) {
Example #4
0
 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;
 }