private function getLeaveRuleOnly($employee, $leaveType)
 {
     $rule = null;
     $leaveRule = new LeaveRule();
     $leaveTypeObj = new LeaveType();
     $rules = $leaveRule->Find("employee = ? and leave_type = ?", array($employee->id, $leaveType));
     if (count($rules) > 0) {
         return $rules[0];
     }
     //Check whether this employee has a leave group
     $leaveGroupId = $this->getEmployeeLeaveGroup($employee->id);
     if (!empty($leaveGroupId)) {
         $rules = $leaveRule->Find("leave_group = ? and leave_type = ?", array($leaveGroupId, $leaveType));
         if (count($rules) > 0) {
             return $rules[0];
         }
         $rules = $leaveRule->Find("leave_group = ? and job_title = ? and employment_status = ? and leave_type = ? and employee is null", array($leaveGroupId, $employee->job_title, $employee->employment_status, $leaveType));
         if (count($rules) > 0) {
             return $rules[0];
         }
         $rules = $leaveRule->Find("leave_group = ? and job_title = ? and employment_status is null and leave_type = ? and employee is null", array($leaveGroupId, $employee->job_title, $leaveType));
         if (count($rules) > 0) {
             return $rules[0];
         }
         $rules = $leaveRule->Find("leave_group = ? and job_title is null and employment_status = ? and leave_type = ? and employee is null", array($leaveGroupId, $employee->employment_status, $leaveType));
         if (count($rules) > 0) {
             return $rules[0];
         }
         $rules = $leaveTypeObj->Find("leave_group = ? and id = ?", array($leaveGroupId, $leaveType));
         if (count($rules) > 0) {
             return $rules[0];
         }
     }
     $rules = $leaveRule->Find("job_title = ? and employment_status = ? and leave_type = ? and employee is null", array($employee->job_title, $employee->employment_status, $leaveType));
     if (count($rules) > 0) {
         return $rules[0];
     }
     $rules = $leaveRule->Find("job_title = ? and employment_status is null and leave_type = ? and employee is null", array($employee->job_title, $leaveType));
     if (count($rules) > 0) {
         return $rules[0];
     }
     $rules = $leaveRule->Find("job_title is null and employment_status = ? and leave_type = ? and employee is null", array($employee->employment_status, $leaveType));
     if (count($rules) > 0) {
         return $rules[0];
     }
     $rules = $leaveTypeObj->Find("id = ?", array($leaveType));
     if (count($rules) > 0) {
         return $rules[0];
     }
 }
Esempio n. 2
0
	private function getLeaveRule($employee,$leaveType){
		$rule = null;
		$leaveRule = new LeaveRule();
		$leaveTypeObj = new LeaveType();
		$rules = $leaveRule->Find("employee = ? and leave_type = ?",array($employee->id,$leaveType));
		if(count($rules)>0){
			return $rules[0];
		}

		$rules = $leaveRule->Find("job_title = ? and employment_status = ? and leave_type = ? and employee is null",array($employee->job_title,$employee->employment_status,$leaveType));
		if(count($rules)>0){
			return $rules[0];
		}

		$rules = $leaveRule->Find("job_title = ? and employment_status is null and leave_type = ? and employee is null",array($employee->job_title,$leaveType));
		if(count($rules)>0){
			return $rules[0];
		}

		$rules = $leaveRule->Find("job_title is null and employment_status = ? and leave_type = ? and employee is null",array($employee->employment_status,$leaveType));
		if(count($rules)>0){
			return $rules[0];
		}

		$rules = $leaveTypeObj->Find("id = ?",array($leaveType));
		if(count($rules)>0){
			return $rules[0];
		}

	}