/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/StudentDocumentRepository.php (6534B)
student_document = $student_document; $this->upload = $upload; $this->student_document_type = $student_document_type; } /** * Get student document query * * @return StudentDocument query */ public function getQuery() { return $this->student_document; } /** * Get student document pre requisite. * * @return Array */ public function getPreRequisite() { return $this->student_document_type->selectAll(); } /** * Find student document with given id. * * @param integer $student_id * @param integer $id * @return StudentDocument */ public function find($student_id, $id) { return $this->student_document->with('studentDocumentType')->filterByStudentId($student_id)->filterById($id)->first(); } /** * Find student document with given id or throw an error. * * @param integer $student_id * @param integer $id * @return StudentDocument */ public function findOrFail($student_id, $id, $field = 'message') { $student_document = $this->student_document->with('studentDocumentType')->filterByStudentId($student_id)->filterById($id)->first(); if (! $student_document) { throw ValidationException::withMessages([$field => trans('student.could_not_find_document')]); } return $student_document; } /** * Paginate all student documents 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_document->with('studentDocumentType')->filterByStudentId($student_id)->orderBy($sort_by, $order)->paginate($page_length); } /** * Create a new student document. * * @param integer $student_id * @param array $params * @return StudentDocument */ public function create($student_id, $params) { $this->validateInput($student_id, $params); $this->upload->validateUpload($params, $this->module); $student_document = $this->student_document->forceCreate($this->formatParams($params, $student_id)); $this->processUpload($student_document, $params); return $student_document; } /** * Validate unique title with student. * * @param array $params * @param integer $id [default null] * @return null */ public function validateInput($student_id, $params, $id = null) { if (! $this->student_document_type->find(gv($params, 'student_document_type_id'))) { throw ValidationException::withMessages(['student_document_type_id' => trans('student.could_not_find_document_type')]); } $query = $this->student_document->filterByStudentId($student_id); if ($id) { $query->where('id', '!=', $id); } if ($query->filterByTitle(gv($params, 'title'), 1)->count()) { throw ValidationException::withMessages(['title' => trans('validation.unique', ['attribute' => trans('student.document_title')])]); } } /** * Prepare given params for inserting into database. * * @param array $params * @param string $type * @return array */ private function formatParams($params, $student_id = null, $action = 'create') { $formatted = [ 'title' => gv($params, 'title'), 'description' => gv($params, 'description'), 'student_document_type_id' => gv($params, 'student_document_type_id') ]; if ($action === 'create') { $formatted['student_id'] = $student_id; $formatted['upload_token'] = gv($params, 'upload_token'); } return $formatted; } /** * Upload attachment * * @param StudentDocument $student_document * @param array $params * @param string $action * @return void */ public function processUpload(StudentDocument $student_document, $params = array(), $action = 'create') { $upload_token = gv($params, 'upload_token'); if ($action === 'create') { $this->upload->store($this->module, $student_document->id, $upload_token); } else { $this->upload->update($this->module, $student_document->id, $upload_token); } } /** * Update given student document. * * @param StudentDocument $student_document * @param array $params * * @return StudentDocument */ public function update(StudentDocument $student_document, $params) { $this->validateInput($student_document->student_id, $params, $student_document->id); $this->upload->validateUpload($params, $this->module, $student_document->id); $student_document->forceFill($this->formatParams($params, null, 'update'))->save(); $this->processUpload($student_document, $params, 'update'); return $student_document; } /** * Delete student document. * * @param integer $id * @return bool|null */ public function delete(StudentDocument $student_document) { return $student_document->delete(); } /** * Delete multiple student documents. * * @param array $ids * @return bool|null */ public function deleteMultiple($ids) { return $this->student_document->whereIn('id', $ids)->delete(); } }