12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <?php
- namespace App\Repositories\Models\School;
- use App\Repositories\Enums\ModelStatusEnum;
- use App\Repositories\Models\Base\Admin;
- use App\Repositories\Models\Model;
- use Carbon\Carbon;
- use Prettus\Repository\Contracts\Transformable;
- use Prettus\Repository\Traits\TransformableTrait;
- /**
- * Class Room.
- *
- * @package namespace App\Repositories\Models\School;
- */
- class LessonTeacher extends Model implements Transformable
- {
- use TransformableTrait;
- protected $table = 'school_lesson_teacher';
- /**
- * The attributes that are mass assignable.
- *
- * @var array
- */
- protected $guarded = [];
- public function lesson()
- {
- return $this->belongsTo(Lesson::class)->select(['id', 'name', 'lesson_hour', 'credit']);
- }
- public function teacher()
- {
- // return $this->belongsTo(Teacher::class)->select(['id', 'name', 'account']);
- return $this->belongsTo(Admin::class, 'teacher_admin_id')->select(['id', 'name', 'username']);
- }
- public function getProgressAttribute()
- {
- $id = $this->attributes['id'];
- $total = LessonSchedule::query()->where('lesson_teacher_id', $id)->where('status', ModelStatusEnum::OK)->count();
- $current = LessonSchedule::query()->where('lesson_teacher_id', $id)->where('day', '<', date('Y-m-d'))->where('status', ModelStatusEnum::OK)->count();
- if (!$total) return 0;
- return round($current / $total * 100);
- }
- public function grade()
- {
- return $this->belongsTo(Grade::class)->select(['id', 'name']);
- }
- }
|