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]; } }
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]; } }