/home/techb158/ileadtechnology.com/SSM/app/Repositories/student
NameSizeModeActions
AttendanceRepository.php431170644editdlrm
PromotionRepository.php95850644editdlrm
RegistrationRepository.php329570644editdlrm
StudentAccountRepository.php54220644editdlrm
StudentDocumentRepository.php65340644editdlrm
StudentFeePaymentRepository.php106630644editdlrm
StudentFeeRecordRepository.php152040644editdlrm
StudentImportRepository.php344810644editdlrm
StudentParentRepository.php71700644editdlrm
StudentQualificationRepository.php65800644editdlrm
StudentRecordRepository.php529030644editdlrm
StudentRepository.php408490644editdlrm
StudentSiblingRepository.php61520644editdlrm
TerminationRepository.php92510644editdlrm
Edit: /home/techb158/ileadtechnology.com/SSM/app/Repositories/student/StudentSiblingRepository.php (6152B)
student_sibling = $student_sibling; $this->student = $student; } /** * Get student sibling query * * @return StudentSibling query */ public function getQuery() { return $this->student_sibling; } /** * Find student sibling with given id. * * @param integer $student_id * @param integer $id * @return StudentSibling */ public function find($student_id, $id) { return $this->student_sibling->filterByStudentId($student_id)->filterById($id)->first(); } /** * Find student sibling with given id or throw an error. * * @param integer $student_id * @param integer $id * @return StudentSibling */ public function findOrFail($student_id, $id, $field = 'message') { $student_sibling = $this->student_sibling->filterByStudentId($student_id)->filterById($id)->first(); if (! $student_sibling) { throw ValidationException::withMessages([$field => trans('student.could_not_find_sibling')]); } return $student_sibling; } /** * Paginate all student siblings using given params. * * @param integer $student_id * @param array $params * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator */ public function paginate($student_id, $params) { $sort_by = gv($params, 'sort_by', 'created_at'); $order = gv($params, 'order', 'desc'); $page_length = gv($params, 'page_length', config('config.page_length')); return $this->student_sibling->with(['studentSibling','studentSibling.studentRecords' => function ($q) { $q->where('academic_session_id', config('config.default_academic_session.id'))->orderBy('date_of_entry', 'desc'); }, 'studentSibling.studentRecords.batch','studentSibling.studentRecords.batch.course','studentSibling.studentRecords.admission'])->filterByStudentId($student_id)->orderBy($sort_by, $order)->paginate($page_length); } /** * Create a new student sibling. * * @param integer $student_id * @param array $params * @return StudentSibling */ public function create($student_id, $params) { $this->validateInput($student_id, $params); $student_sibling = $this->student_sibling->forceCreate([ 'student_id' => $student_id, 'sibling_student_id' => gv($params, 'id'), 'options' => [] ]); if (! $this->student_sibling->filterByStudentId(gv($params, 'id'))->filterBySiblingStudentId($student_id)->count()) { $this->student_sibling->forceCreate([ 'student_id' => gv($params, 'id'), 'sibling_student_id' => $student_id, 'options' => [] ]); } return $student_sibling; } /** * Validate unique sibling number with student. * * @param array $params * @param integer $id [default null] * @return null */ public function validateInput($student_id, $params) { $id = gv($params, 'id'); if ($student_id == $id) { throw ValidationException::withMessages(['message' => trans('general.invalid_action')]); } if (! $this->student->filterById($id)->count()) { throw ValidationException::withMessages(['message' => trans('student.could_not_find_student')]); } } /** * Delete student sibling. * * @param integer $id * @return bool|null */ public function delete(StudentSibling $student_sibling) { $this->student_sibling->filterByStudentId($student_sibling->sibling_student_id)->filterBySiblingStudentId($student_sibling->student_id)->delete(); return $student_sibling->delete(); } /** * Delete multiple student siblings. * * @param array $ids * @return bool|null */ public function deleteMultiple($ids) { return $this->student_sibling->whereIn('id', $ids)->delete(); } /** * Get Student Sibling suggestion * * @param Student $student * @return Student $student */ public function getSuggestion(Student $student) { } /** * Get search result Student Sibling suggestion * * @param Student $student * @param Array $params * @return Student $student */ public function search(Student $student, $params = array()) { $query = gv($params, 'query'); $page_length = gv($params, 'page_length', config('config.page_length')); if (! $query) { throw ValidationException::withMessages(['message' => trans('student.sibling_search_query_required')]); } $student_sibling_id = $student->siblings()->pluck('sibling_student_id')->all(); array_push($student_sibling_id, $student->id); return $this->student->with(['studentRecords' => function ($q) { $q->where('academic_session_id', config('config.default_academic_session.id'))->orderBy('date_of_entry', 'desc'); }, 'studentRecords.batch','studentRecords.batch.course','studentRecords.admission']) ->whereNotIn('id', $student_sibling_id) ->where(function ($q) use ($query) { $q->where('first_name', 'like', '%'.$query.'%')->orWhere('last_name', 'like', '%'.$query.'%')->orWhere('first_guardian_name', 'like', '%'.$query.'%')->orWhere('second_guardian_name', 'like', '%'.$query.'%'); })->orderBy('first_name', 'asc')->orderBy('last_name', 'asc')->paginate($page_length); } }