$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');
        }
        $aplf = new AccrualPolicyListFactory();
        $accrual_options = $aplf->getByCompanyIDArray($current_company->getId(), TRUE);
        $psealf = new PayStubEntryAccountListFactory();
        $pay_stub_entry_options = $psealf->getByCompanyIdAndStatusIdAndTypeIdArray($current_company->getId(), 10, array(10, 20, 30, 50));
        $wglf = new WageGroupListFactory();
        $data['wage_group_options'] = $wglf->getArrayByListFactory($wglf->getByCompanyId($current_company->getId()), TRUE);
        //Select box options;
        $data['type_options'] = $otpf->getOptions('type');
        $data['accrual_options'] = $accrual_options;
        $data['pay_stub_entry_options'] = $pay_stub_entry_options;
        $smarty->assign_by_ref('data', $data);
        break;
}
$smarty->assign_by_ref('otpf', $otpf);
$smarty->display('policy/EditOverTimePolicy.tpl');
     } else {
         $user_id = $current_user->getId();
         $filter_user_id = $current_user->getId();
     }
 } else {
     $filter_user_id = $user_id = $current_user->getId();
 }
 $filter_data = NULL;
 //Get user object
 $ulf->getByIdAndCompanyID($user_id, $current_company->getId());
 if ($ulf->getRecordCount() > 0) {
     $user_obj = $ulf->getCurrent();
     $ablf->getByUserIdAndCompanyId($user_id, $current_company->getId(), $current_user_prefs->getItemsPerPage(), $page, NULL, $sort_array);
     $pager = new Pager($ablf);
     $aplf = new AccrualPolicyListFactory();
     $accrual_policy_options = $aplf->getByCompanyIDArray($current_company->getId());
     foreach ($ablf as $ab_obj) {
         $accruals[] = array('id' => $ab_obj->getId(), 'user_id' => $ab_obj->getUser(), 'accrual_policy_id' => $ab_obj->getAccrualPolicyId(), 'accrual_policy' => $accrual_policy_options[$ab_obj->getAccrualPolicyId()], 'balance' => $ab_obj->getBalance(), 'deleted' => $ab_obj->getDeleted());
     }
     $smarty->assign_by_ref('accruals', $accruals);
     $hlf = new HierarchyListFactory();
     $permission_children_ids = $hlf->getHierarchyChildrenByCompanyIdAndUserIdAndObjectTypeID($current_company->getId(), $current_user->getId());
     Debug::Arr($permission_children_ids, 'Permission Children Ids:', __FILE__, __LINE__, __METHOD__, 10);
     if ($permission->Check('accrual', 'view') == FALSE) {
         if ($permission->Check('accrual', 'view_child')) {
             $filter_data['permission_children_ids'] = $permission_children_ids;
         }
         if ($permission->Check('accrual', 'view_own')) {
             $filter_data['permission_children_ids'][] = $current_user->getId();
         }
     }