123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- <?php
-
- class AnnualPlan extends \Eloquent
- {
- protected $fillable = [];
- protected $table = 'annual_plans';
- protected $appends = ["outcomes"];
-
-
- public function program()
- {
- return $this->belongsTo('Program');
- }
- public function annualCycle()
- {
-
- return $this->belongsTo('AnnualCycle');
- }
-
-
-
-
-
- public function getCoursesAttribute()
- {
-
-
- return Course::join('typ_semester_courses', 'typ_semester_courses.course_id', '=', 'courses.id')
- ->join('typ_semester_objectives', 'typ_semester_courses.typ_semester_objective_id', '=', 'typ_semester_objectives.id')
- ->join("typ_semester_outcome", 'typ_semester_outcome.id', '=', 'typ_semester_objectives.typ_semester_outcome_id')
- ->join("annual_cycle", function ($join) {
- $join->on('typ_semester_outcome.semester_id', '=', 'annual_cycle.semester_start')
- ->orOn('typ_semester_outcome.semester_id', '=', 'annual_cycle.semester_end');
- })
- ->join('annual_plans', 'annual_plans.annual_cycle_id', '=', 'annual_cycle.id')
- ->join('typ_program', function ($join) {
-
- $join->on('typ_program.program_id', '=', 'annual_plans.program_id')
- ->on('typ_program.id', '=', 'typ_semester_outcome.typ_program_id');
- })
-
- ->where('annual_plans.program_id', $this->program_id)
- ->where('annual_plans.id', $this->id)
- ->select('courses.*', 'typ_semester_courses.id as typ_semester_course_id', 'annual_plans.program_id', 'typ_semester_outcome.semester_id as semester_id')
- ->get();
- }
-
-
-
- public function getCoursesWithTransformativeActionsAttribute()
- {
-
-
-
- return Course::join('typ_semester_courses', 'typ_semester_courses.course_id', '=', 'courses.id')
- ->join('annual_plan_transformative', 'typ_semester_courses.id', '=', 'annual_plan_transformative.typ_semester_course_id')
- ->where('annual_plan_id', $this->id)
- ->select('courses.*', 'typ_semester_courses.id as typ_semester_course_id')
- ->groupBy("courses.id")
-
- ->get();
- }
-
-
-
-
-
- public function getOutcomesAttribute()
- {
-
-
- return Outcome::join('typ_semester_outcome', 'typ_semester_outcome.outcome_id', '=', 'outcomes.id')
- ->join('annual_cycle', function ($j) {
- $j->on('typ_semester_outcome.semester_id', '=', 'annual_cycle.semester_start')
- ->orOn('typ_semester_outcome.semester_id', '=', 'annual_cycle.semester_end');
- })
- ->join('annual_plans', 'annual_cycle.id', '=', 'annual_plans.annual_cycle_id')
- ->join('typ_program', function ($j) {
- $j->on('typ_semester_outcome.typ_program_id', '=', 'typ_program.id')
- ->on('typ_program.program_id', '=', 'annual_plans.program_id');
- })
- ->join('typ_semester_objectives', 'typ_semester_objectives.typ_semester_outcome_id', '=', 'typ_semester_outcome.id')
- ->join('typ_semester_courses', 'typ_semester_courses.typ_semester_objective_id', '=', 'typ_semester_objectives.id')
- ->where('annual_plans.id', $this->id)
- ->groupBy('outcomes.id', 'semester_id')
- ->orderBy('typ_semester_outcome.semester_id')
- ->select(
- 'outcomes.*',
- 'outcomes.id as outcome_id',
- 'typ_semester_outcome.id as typ_semester_outcome_id',
- 'typ_semester_outcome.semester_id as semester_id',
- DB::raw("{$this->program_id} as program_id")
- )->get();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }
- }
|