viewBuilder()->layout("customer_layout"); } public function about() { $this->viewBuilder()->layout("customer_layout"); } public function acreditation() { $this->viewBuilder()->layout("customer_layout"); } public function accomodation() { $this->viewBuilder()->layout("customer_layout"); } public function applicationProcess() { $this->viewBuilder()->layout("customer_layout"); } public function applyForm() { $this->loadModel('Students'); $this->loadModel('StudentSessions'); $this->loadModel('StudentCourses'); $this->loadModel('Courses'); $this->loadModel('Sessions'); $sessions = $this->Sessions->find('list', [ 'keyField' => 'id', 'valueField' => 'name' ])->where(['status'=>1])->toArray(); $courses = $this->Courses->find('list', [ 'keyField' => 'id', 'valueField' => 'name' ])->where(['status'=>1])->toArray(); if ($this->request->is('post')) { $student = $this->Students->newEntity(); $student_request = $this->request->getData(); $student_request['date_of_birth'] = $student_request["date_year"]."-".$student_request["date_month"]."-".$student_request["date_day"]; // $student_request['reference_number'] = STUDENT_ID_PREFIX . time() . rand(0, 9999); $student = $this->Students->patchEntity($student, $student_request); $student['updated_at'] = FrozenTime::now(); $student['created_at'] = FrozenTime::now(); $student['current_checklist_id'] = 1; $errors = $student->errors(); if (empty($errors)) { if ($this->Students->save($student)) { $student_session = $this->StudentSessions->newEntity(); $student_session_request['student_id'] = $student['id']; $student_session_request['session_id'] = $student_request['session_id']; $student_session = $this->StudentSessions->patchEntity($student_session, $student_session_request); $this->StudentSessions->save($student_session); $student_course = $this->StudentCourses->newEntity(); $student_course_request['student_id'] = $student['id']; $student_course_request['course_id'] = $student_request['course_id']; $student_course_request['enrollment_date'] = FrozenTime::now(); $student_course = $this->StudentCourses->patchEntity($student_course, $student_course_request); $this->StudentCourses->save($student_course); $session = $sessions[$student_request['session_id']]; $course = $courses[$student_request['course_id']]; $this->registration_email($student,$session,$course); $this->Flash->success(__('Registration Successful!')); } }else { $errorMessages = []; foreach ($errors as $field => $fieldErrors) { foreach ($fieldErrors as $error) { $errorMessages[] = ucfirst($field) . ': ' . $error; } } $allErrors = implode(' ', $errorMessages); $this->log(['request'=> $this->request->getData(),'Student Registration failed'=> $errors]); $this->Flash->error(__($allErrors), ['escape' => false]); } } $this->set(compact('sessions','courses')); $this->viewBuilder()->layout("customer_layout"); } public function courses() { $this->loadModel('Courses'); $courses = $this->Courses->find('all') ->contain(['CourseCategories', 'QualificationTypes']) ->where(['Courses.status' => 1, 'Courses.course_category_id !=' => ENGLISH_COURSE_CATEGORY_ID]); $this->set(compact('courses')); $this->viewBuilder()->layout("customer_layout"); } public function verification() { $message = ''; $student = []; if ($this->request->is('post')) { $this->loadModel('Students'); $this->loadModel('StudentSessions'); $this->loadModel('StudentCourses'); $this->loadModel('Courses'); $this->loadModel('Sessions'); $student_request = $this->request->getData(); $dateOfBirth = FrozenDate::createFromFormat('d-m-Y', $student_request['date_of_birth']); $student = $this->Students->find() ->select(['id', 'reference_number', 'first_name', 'surname', 'nationality','passport_number','date_of_birth']) ->where(['status' => 1,'current_checklist_id'=>7, 'reference_number' => $student_request['reference_number'], 'date_of_birth' => $dateOfBirth ]) ->first(); $student_session = $this->StudentSessions->find() ->select(['id','session_id']) ->where(['student_id' => $student['id']]) ->first(); $student_course = $this->StudentCourses->find() ->select(['id','course_id']) ->where(['student_id' => $student['id']]) ->first(); $session = $this->Sessions->find() ->where(['id' => $student_session['session_id']]) ->first(); $course = $this->Courses->find() ->where(['id' => $student_course['course_id']]) ->first(); if(empty($student)){ $message = "Sorry! You have not been enrolled "; } $this->set(compact('student','session','course','message')); } $this->viewBuilder()->layout("customer_layout"); } public function contact() { if ($this->request->is('post')) { $this->loadModel('Feedbacks'); $request = $this->request->getData(); $feedback = $this->Feedbacks->newEntity(); $feedback = $this->Feedbacks->patchEntity($feedback, $request); $errors = $feedback->errors(); $feedback['created_at'] = FrozenTime::now(); if (empty($errors)) { if ($this->Feedbacks->save($feedback)) { $this->Flash->success(__('Thank you for contacting us!')); return $this->redirect(['action' => 'contact']); } } } $this->viewBuilder()->layout("customer_layout"); } private function registration_email($student,$session,$course){ $this->loadModel('Personalizes'); $personalize = $this->Personalizes->find()->where(['member_id'=> DEFAULT_MEMBER_ID])->first(); $template_content = array( 'student_name' => $student['title'].' '.$student['first_name'], 'student_email' => $student['email'], 'phone_number' => $student['phone_number'], // 'reference_number' => $student['reference_number'], 'course_name' => $course, 'registration_date' => $student['created_at']->i18nFormat('dd MMMM yyyy') ); $this->sendEmail(MANDRILL_TEMPLATE_STUDENT_CONFIRMATION, $template_content, $student->email, 'Registration Confirmation', "", $personalize); $this->sendEmail(MANDRILL_TEMPLATE_STUDENT_CONFIRMATION_FOR_ADMIN, $template_content, ADMIN_EMAIL_LEARNING_HUB, 'Registration Confirmation', "", $personalize); } public function agent() { $this->loadModel('Agents'); $agents = $this->Agents->find('all'); $this->set(compact('agents')); $this->viewBuilder()->layout("customer_layout"); } public function viewCourses($slug) { $slug = str_replace('-', ' ', $slug); $this->loadModel('Courses'); $this->loadModel('CourseSemesterFees'); $this->loadModel('CourseSemesterSubjects'); $course = $this->Courses->find() ->where(function (QueryExpression $exp) use ($slug) { return $exp->eq( 'LOWER(Courses.name)', strtolower($slug) ); }) ->andWhere(['Courses.status' => 1]) ->contain(['CourseCategories', 'QualificationTypes']) ->first(); $course_fee = $this->CourseSemesterFees->find() ->where(['course_id' => $course->id]) ->first(); $course_subjects = $this->CourseSemesterSubjects->find() ->where(['course_id' => $course->id])->all(); $mandatoryCount =0 ; $optionalCount =0; if(!empty($course_subjects)) { $mandatoryCount = collection($course_subjects) ->filter(function ($subject) { return !empty($subject['is_mandatory']) && $subject['is_mandatory'] == 1; }) ->count(); $optionalCount = collection($course_subjects) ->filter(function ($subject) { return !empty($subject['is_mandatory']) && $subject['is_mandatory'] == 2; }) ->count(); } $this->set(compact('course', 'course_fee', 'course_subjects','mandatoryCount','optionalCount')); $this->viewBuilder()->layout("customer_layout"); } public function viewEnglishCourses() { $this->viewBuilder()->layout("customer_layout"); } }