Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
forbidals
/
admin_panel
/
app
/
Models
:
Timetable.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Models; use App\Repositories\Semester\SemesterInterface; use App\Services\CachingService; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Auth; use App\Traits\DateFormatTrait; class Timetable extends Model { use DateFormatTrait; protected $fillable = [ "subject_teacher_id", "class_section_id", "subject_id", "start_time", "end_time", "note", "day", "type", "semester_id", "school_id", "session_year_id" ]; protected $appends = ['title']; protected $hidden = ['created_at','updated_at']; public function subject_teacher() { return $this->belongsTo(SubjectTeacher::class); } public function class_section() { return $this->belongsTo(ClassSection::class)->withTrashed(); } public function subject() { return $this->belongsTo(Subject::class)->withTrashed(); } public function teacher() { return $this->hasOneThrough(User::class, SubjectTeacher::class, 'id', 'id', 'subject_teacher_id', 'teacher_id')->withTrashed(); } public function scopeOwner($query) { if (Auth::user()) { $user = Auth::user(); $sessionYearId = app(CachingService::class)->getSessionYear()->id; if ($user->hasRole('School Admin')) { return $query->where(['school_id' => $user->school_id, 'session_year_id' => $sessionYearId]); } if (Auth::user()->hasRole('Student')) { return $query->where(['school_id' => Auth::user()->school_id, 'session_year_id' => $sessionYearId]); } if (Auth::user()->school_id) { return $query->where(['school_id' => $user->school_id, 'session_year_id' => $sessionYearId]); } } return $query; } public function getTitleAttribute() { if ($this->type === "Lecture") { if ($this->relationLoaded('subject') && $this->relationLoaded('teacher')) { if (!isset($this->subject->name) && !isset($this->teacher->full_name)) { return $this->note; } $teacherName = $this->teacher->full_name ?? ''; return $this->subject->name . ' ( ' .$this->subject->type . ' ) ' . ' - ' . $teacherName; } if ($this->relationLoaded('subject')) { return $this->subject->name . ' ( ' .$this->subject->type . ' ) '; } return $this->note; } if ($this->type === "Break") { return trans("Break"); } return $this->note; } public function scopeCurrentSemesterData($query){ // $currentSemester = app(SemesterInterface::class)->default(); $currentSemester = app(CachingService::class)->getSemester(); if($currentSemester){ $query->where(function ($query) use($currentSemester){ $query->where('timetables.semester_id', $currentSemester->id)->orWhereNull('timetables.semester_id'); }); } } }