Issues (367)

app/Models/Education_grade.php (7 issues)

1
<?php
2
3
namespace App\Models;
4
5
use Illuminate\Database\Eloquent\Model;
6
7
class Education_grade extends Model  {
8
9
    /**
10
     * The database table used by the model.
11
     *
12
     * @var string
13
     */
14
    protected $table = 'education_grades';
15
16
    /**
17
     * Attributes that should be mass-assignable.
18
     *
19
     * @var array
20
     */
21
    protected $fillable = ['code', 'name', 'admission_age', 'order', 'visible', 'education_stage_id', 'education_programme_id', 'modified_user_id', 'modified', 'created_user_id', 'created'];
22
23
    /**
24
     * The attributes excluded from the model's JSON form.
25
     *
26
     * @var array
27
     */
28
    protected $hidden = [];
29
30
    /**
31
     * The attributes that should be casted to native types.
32
     *
33
     * @var array
34
     */
35
    protected $casts = [];
36
37
    /**
38
     * The attributes that should be mutated to dates.
39
     *
40
     * @var array
41
     */
42
    protected $dates = ['modified', 'created'];
43
44
    public function getNextGrade($gradeId,$getNextProgrammeGrades = false, $firstGradeOnly = false){
0 ignored issues
show
The parameter $getNextProgrammeGrades is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

44
    public function getNextGrade($gradeId,/** @scrutinizer ignore-unused */ $getNextProgrammeGrades = false, $firstGradeOnly = false){

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
The parameter $firstGradeOnly is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

44
    public function getNextGrade($gradeId,$getNextProgrammeGrades = false, /** @scrutinizer ignore-unused */ $firstGradeOnly = false){

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
45
        if (!empty($gradeId)) {
46
            $gradeObj = $this->find($gradeId);
47
            $programmeId = $gradeObj->education_programme_id;
0 ignored issues
show
The property education_programme_id does not seem to exist on App\Models\Education_grade. Are you sure there is no database migration missing?

Checks if undeclared accessed properties appear in database migrations and if the creating migration is correct.

Loading history...
48
            $order = $gradeObj->order;
0 ignored issues
show
The property order does not seem to exist on App\Models\Education_grade. Are you sure there is no database migration missing?

Checks if undeclared accessed properties appear in database migrations and if the creating migration is correct.

Loading history...
49
            $gradeOptions = self::where( 'education_programme_id',$programmeId
50
            )->where('order',$order+1)->get()->first();
51
            $nextProgramme = self::getNextProgrammeList($programmeId);
0 ignored issues
show
Bug Best Practice introduced by
The method App\Models\Education_grade::getNextProgrammeList() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

51
            /** @scrutinizer ignore-call */ 
52
            $nextProgramme = self::getNextProgrammeList($programmeId);
Loading history...
52
            if(is_null($gradeOptions) && !is_null($nextProgramme)){
53
                $programmeId =  $nextProgramme->next_programme_id;
54
                $gradeOptions = self::where( 'education_programme_id',$programmeId
55
                )
56
                ->orderBy('order')
57
                ->get()->first();
58
            }
59
            // Default is to get the list of grades with the next programme grades
60
//            if ($getNextProgrammeGrades) {
61
//                if ($firstGradeOnly) {
62
//                    $nextProgrammesGradesOptions = $this->getNextProgrammeFirstGradeList($programmeId);
63
//                } else {
64
//                    $nextProgrammesGradesOptions = $this->getNextGradeList($programmeId);
65
//                }
66
//                $results =  array_merge($gradeOptions,$nextProgrammesGradesOptions);
67
//            } else {
68
//                $results = $gradeOptions;
69
//            }
70
            return $gradeOptions;
71
        } else {
72
            return null;
73
        }
74
    }
75
76
    public function getNextProgrammeFirstGradeList($id) {
77
        $nextProgrammeList = self::getNextProgrammeList($id);
0 ignored issues
show
Bug Best Practice introduced by
The method App\Models\Education_grade::getNextProgrammeList() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

77
        /** @scrutinizer ignore-call */ 
78
        $nextProgrammeList = self::getNextProgrammeList($id);
Loading history...
78
        if (!empty($nextProgrammeList)) {
79
            $results = [];
80
81
            foreach ($nextProgrammeList as $nextProgrammeId) {
82
                $nextProgrammeGradeResults = self::
83
                    where('education_programme_id',$nextProgrammeId->next_programme_id)->get()->toArray();
84
85
                $results = $results + [key($nextProgrammeGradeResults) => current($nextProgrammeGradeResults)];
86
            }
87
        } else {
88
            $results = [];
89
        }
90
91
        return (object)$results;
92
    }
93
94
95
    /**
96
     * Function to get the list of the next education grade base on a given education programme id
97
     *
98
     * @param $id Education programme id
99
     * @return array List of next education grades id
100
     */
101
    public function getNextGradeList($id) {
102
103
        $nextProgrammeList = $this->getNextProgrammeList($id);
104
        if (!empty($nextProgrammeList)) {
105
            $results = self::whereIn('education_programme_id',$nextProgrammeList)
106
                ->get()->toArray();
107
        } else {
108
            $results = [];
109
        }
110
111
        return $results;
112
    }
113
114
    /**
115
     * Function to get the list of the next programme base on a given programme id
116
     *
117
     * @param $id Education programme id
118
     * @return array List of next education programmes id
119
     */
120
    public function getNextProgrammeList($id) {
121
        return Education_programmes_next_programme::where('education_programme_id',$id)
0 ignored issues
show
Bug Best Practice introduced by
The expression return App\Models\Educat...', $id)->get()->first() also could return the type App\Models\Education_programmes_next_programme which is incompatible with the documented return type array.
Loading history...
122
            ->get()->first();
123
    }
124
125
126
}
127