$semester->start) { $min_start = $semester->start; } if ($max_end < $semester->end) { $max_end = $semester->end; } } $outcomes = Outcome::where(function ($query) use ($min_start) { $query->where('deactivation_date', '>=', $min_start) ->orWhere('deactivation_date', null); }) ->where('activation_date', '<=', $max_end) ->where(function ($query2) use ($level) { $query2->where("level", $level + 1) ->orWhere("level", 3); }) ->orderBy('name', 'ASC') ->get(); $outcomeCount = Outcome::where(function ($query) use ($min_start) { $query->where('deactivation_date', '>=', $min_start) ->orWhere('deactivation_date', null); }) ->where('activation_date', '<=', $max_end) ->where(function ($query2) use ($level) { $query2->where("level", $level + 1) ->orWhere("level", 3); }) ->count(); foreach ($outcomes as $outcome) { // var_dump($outcome->id); // print "
"; $outcomes_attempted[$outcome->id] = $outcome->attempted($selected_semesters, $level); $outcomes_achieved[$outcome->id] = $outcome->achieved($selected_semesters, $level); } $uhs_school_id = School::where('name', 'LIKE', '%UHS%')->first()->id; $uhs_program_id = Program::where('name', 'LIKE', '%UHS%')->first()->id; foreach ($outcomes as $outcome) { $achievedProgramsPerOutcome[$outcome->id] = 0; // For each program with courses that do assessment $attemptedProgramsPerOutcome[$outcome->id] = 0; // For each program with courses that do assessment foreach (Program::with(array('courses' => function ($query) { // $query->whereNotNull('outcomes_attempted'); $query->where('code', '!=', 'TEST'); $query->whereIn('semester_id', Session::get('semesters_ids')); }))->where('is_graduate', $level)->where('school_id', '!=', $uhs_school_id)->orderBy('name', 'asc')->get() as $program) { $achieved_outcomes_per_program[$program->id] = 0; $attempted_outcomes_per_program[$program->id] = 0; $participating_programs[$program->id] = (object)array('id' => $program->id, 'name' => $program->name, 'is_graduate' => $program->is_graduate, 'school_id' => $program->school_id); // SELECT ac.id activity_criterion_id, ac.activity_id, ac.expected_student_score, ac.expected_percentage_students_achieving, co.program_id FROM activity_criterion ac, criteria c, activities a, objectives o, courses co where co.id=a.course_id and co.semester_id=13 and a.id=ac.activity_id and c.id = ac.criterion_id and o.id=c.objective_id and o.outcome_id = 2 order by program_id $program_attempted_outcome = $program->attempted_outcome($outcome->id, $selected_semesters); $attempted_outcomes_per_program[$program->id] += $program_attempted_outcome; // var_dump($program_attempted_outcome); // exit(); if ($program_attempted_outcome) { $program_achieved_outcome = $program->achieved_outcome($outcome->id, $selected_semesters); $achieved_outcomes_per_program[$program->id] += $program_achieved_outcome; $attemptedProgramsPerOutcome[$outcome->id] += $program_attempted_outcome; // $attemptedProgramsPerOutcome[$outcome->id]+=1; $achievedProgramsPerOutcome[$outcome->id] += $program_achieved_outcome; // $achieved_outcomes_per_program[$outcome->id]=$program->achieved_outcome($outcome->id, $selected_semesters); // if($attempted_outcomes_per_program[$outcome->id]!=0 && 100.0*$achieved_outcomes_per_program[$outcome->id]/$attempted_outcomes_per_program[$outcome->id] >= $outcome->expected_outcome) // { // $achievedProgramsPerOutcome[$outcome->id]+=1; // // $output[]= 'END OF PROGRAM: '.$program->name.'-'.json_encode($achievedProgramsPerOutcome); // } } } } return array('outcomes' => $outcomes, 'outcomes_attempted' => $outcomes_attempted, 'outcomes_achieved' => $outcomes_achieved, 'attemptedProgramsPerOutcome' => $attemptedProgramsPerOutcome, 'achievedProgramsPerOutcome' => $achievedProgramsPerOutcome, 'participating_programs' => $participating_programs); } public function overview() { $selected_semesters = Semester::find(Session::get('semesters_ids')); $subgraduado = $this->outcomes_semesters($selected_semesters, 0); $outcomes_subgrad = $subgraduado['outcomes']; $undergrad_outcomes_achieved = $subgraduado['outcomes_achieved']; $undergrad_outcomes_attempted = $subgraduado['outcomes_attempted']; $attemptedUndergradProgramsPerOutcome = $subgraduado['attemptedProgramsPerOutcome']; $achievedUndergradProgramsPerOutcome = $subgraduado['achievedProgramsPerOutcome']; $participating_undergrad_programs = $subgraduado['participating_programs']; $graduado = $this->outcomes_semesters($selected_semesters, 1); $outcomes_grad = $graduado['outcomes']; $grad_outcomes_achieved = $graduado['outcomes_achieved']; $grad_outcomes_attempted = $graduado['outcomes_attempted']; $attemptedGradProgramsPerOutcome = $graduado['attemptedProgramsPerOutcome']; $achievedGradProgramsPerOutcome = $graduado['achievedProgramsPerOutcome']; $participating_grad_programs = $graduado['participating_programs']; //Total amount of learning outcomes // $outcomeCount = Outcome::withTrashed()->count(); // $selected_semester = Semester::find(Session::get('semesters_ids')[0]); // $outcomes_subgrad = Outcome::where(function($query) use ($selected_semester) // { // $query->where('deactivation_date', '>=', $selected_semester->start) // ->orWhere('deactivation_date', null); // }) // ->where('activation_date', '<=', $selected_semester->end) // ->where(function($query2) // { // $query2->where("level",1) // ->orWhere("level",3); // }) // ->orderBy('name', 'ASC') // ->get(); // $outcomeCount_subgrad = Outcome::where(function($query) use ($selected_semester) // { // $query->where('deactivation_date', '>=', $selected_semester->start) // ->orWhere('deactivation_date', null); // }) // ->where('activation_date', '<=', $selected_semester->end) // ->where(function($query2) // { // $query2->where("level",1) // ->orWhere("level",3); // }) // ->count(); // // $outcomes_grad = Outcome::where(function($query) use ($selected_semester){$query->where('deactivation_date', '>=', $selected_semester->start)->orWhere('deactivation_date', null);})->where(function($query2){$query2->where("level",2)->orWhere("level",3);})->orderBy('name', 'ASC')->get(); // $outcomeCount_grad = Outcome::where(function($query) use ($selected_semester){$query->where('deactivation_date', '>=', $selected_semester->start)->orWhere('deactivation_date', null);})->where(function($query2){$query2->where("level",2)->orWhere("level",3);})->count(); // print($outcomeCount_subgrad); // print($outcomeCount_grad); // Id for excluding UHS from records $uhs_school_id = School::where('name', 'LIKE', '%UHS%')->first()->id; // $uhs_program_id = Program::where('name', 'LIKE', '%UHS%')->first()->id; $schools = School::where('id', '!=', $uhs_school_id)->orderBy('name', 'asc')->get(); $title = 'Campus Overview'; /** * Calculate campus wide outcome performance by counting the number of students $undergrad_outcomes_attempted will have the number of criteria that was assessed in undergradute courses during the selected semester $undergrad_outcomes_achieved will have the number of criteria that was assessed in undergradute courses during the selected semester where the percentage of students that obtained a better or equal score than the expected_student_score established in the activity_criterion table is greater or equal than the expected_percentage_students_achieving also established in the activity_criterion table */ // foreach($outcomes_subgrad as $outcome) // { // $undergrad_outcomes_attempted[$outcome->id]=$outcome->attempted($selected_semester->id,0); // $undergrad_outcomes_achieved[$outcome->id]=$outcome->achieved($selected_semester->id,0); // } // var_dump($undergrad_outcomes_attempted); // print"
"; // var_dump($undergrad_outcomes_achieved); // print"
"; // foreach($outcomes_grad as $outcome) // { // $grad_outcomes_attempted[$outcome->id]=$outcome->attempted($selected_semester->id,1); // $grad_outcomes_achieved[$outcome->id]=$outcome->achieved($selected_semester->id,1); // } /** * Calculate how many programs achieved and attempted each outcome */ // Number of programs that achieved a particular learning outcome // $achievedUndergradProgramsPerOutcome = array_fill(1, $outcomeCount_subgrad, 0); // Number of programs that attempted a particular learning outcome // $attemptedUndergradProgramsPerOutcome = array_fill(1, $outcomeCount_subgrad, 0); // Names of programs doing assessment // Fetch programs with participation // $participating_undergrad_programs = DB::table('VIEW_participating_programs') // ->whereIn('semester_id', Session::get('semesters_ids')) // ->where('is_graduate', 0) // ->groupBy('id') // ->orderBy('name', 'asc') // ->get(); // $output = array(); /** * Calculate how many undergrad programs achieved and attempted each outcome */ // foreach ($outcomes_subgrad as $outcome) // { // $achieved_outcomes_per_undergrad_program[$outcome->id]=0; // $attempted_outcomes_per_undergrad_program[$outcome->id]=0; // $achievedUndergradProgramsPerOutcome[$outcome->id]=0; // For each program with courses that do assessment // $attemptedUndergradProgramsPerOutcome[$outcome->id]=0; // For each program with courses that do assessment // foreach (Program::with(array('courses' => function($query){ // // $query->whereNotNull('outcomes_attempted'); // $query->where('code', '!=', 'TEST'); // $query->whereIn('semester_id', Session::get('semesters_ids')); // }))->where('is_graduate', 0)->where('school_id', '!=', $uhs_school_id)->orderBy('name', 'asc')->get() as $program) // { // $participating_undergrad_programs[$program->id]=(object)array('id'=>$program->id, 'name'=>$program->name, 'is_graduate'=> $program->is_graduate, 'school_id'=>$program->school_id,'semestre_id',$selected_semester); // // // SELECT ac.id activity_criterion_id, ac.activity_id, ac.expected_student_score, ac.expected_percentage_students_achieving, co.program_id FROM activity_criterion ac, criteria c, activities a, objectives o, courses co where co.id=a.course_id and co.semester_id=13 and a.id=ac.activity_id and c.id = ac.criterion_id and o.id=c.objective_id and o.outcome_id = 2 order by program_id // $program_attempted_outcome=$program->attempted_outcome($outcome->id, $selected_semester->id); // $attempted_outcomes_per_undergrad_program[$outcome->id]+=$program_attempted_outcome; // // var_dump($program_attempted_outcome); // // exit(); // if($program_attempted_outcome) // { // $attemptedUndergradProgramsPerOutcome[$outcome->id]+=1; // $achieved_outcomes_per_undergrad_program[$outcome->id]=$program->achieved_outcome($outcome->id, $selected_semester->id); // if($attempted_outcomes_per_undergrad_program[$outcome->id]!=0 && 100.0*$achieved_outcomes_per_undergrad_program[$outcome->id]/$attempted_outcomes_per_undergrad_program[$outcome->id] >= $outcome->expected_outcome) // { // $achievedUndergradProgramsPerOutcome[$outcome->id]+=1; // // $output[]= 'END OF PROGRAM: '.$program->name.'-'.json_encode($achievedUndergradProgramsPerOutcome); // } // } // } // } // var_dump($attempted_outcomes_per_undergrad_program); // print"
"; // var_dump($achieved_outcomes_per_undergrad_program); // print"
"; // var_dump($attemptedUndergradProgramsPerOutcome); // print"
"; // var_dump($achievedUndergradProgramsPerOutcome); // print"
"; // exit(); /** * Calculate how many grad programs achieved and attempted each outcome $grad_outcomes_attempted will have the number of criteria that was assessed in gradute courses during the selected semester $grad_outcomes_achieved will have the number of criteria that was assessed in gradute courses during the selected semester where the percentage of students that obtained a better or equal score than the expected_student_score established in the activity_criterion table is greater or equal than the expected_percentage_students_achieving also established in the activity_criterion table */ // Names of programs doing assessment // $participating_grad_programs = DB::table('VIEW_participating_programs') // ->whereIn('semester_id', Session::get('semesters_ids')) // ->where('is_graduate', 1) // ->groupBy('id') // ->orderBy('name', 'asc') // ->get(); // foreach ($outcomes_grad as $outcome) // { // $achieved_outcomes_per_grad_program[$outcome->id]=0; // $attempted_outcomes_per_grad_program[$outcome->id]=0; // $achievedGradProgramsPerOutcome[$outcome->id]=0; // For each program with courses that do assessment // $attemptedGradProgramsPerOutcome[$outcome->id]=0; // For each program with courses that do assessment // foreach (Program::with(array('courses' => function($query){ // $query->whereNotNull('outcomes_attempted'); // $query->where('code', '!=', 'TEST'); // $query->whereIn('semester_id', Session::get('semesters_ids')); // }))->where('is_graduate', 1)->where('school_id', '!=', $uhs_school_id)->orderBy('name', 'asc')->get() as $program) // { // $participating_grad_programs[$program->id]=(object)array('id'=>$program->id, 'name'=>$program->name, 'is_graduate'=> $program->is_graduate, 'school_id'=>$program->school_id,'semestre_id',$selected_semester); // // SELECT ac.id activity_criterion_id, ac.activity_id, ac.expected_student_score, ac.expected_percentage_students_achieving, co.program_id FROM activity_criterion ac, criteria c, activities a, objectives o, courses co where co.id=a.course_id and co.semester_id=13 and a.id=ac.activity_id and c.id = ac.criterion_id and o.id=c.objective_id and o.outcome_id = 2 order by program_id // $program_attempted_outcome=$program->attempted_outcome($outcome->id, $selected_semester->id); // $attempted_outcomes_per_grad_program[$outcome->id]+=$program_attempted_outcome; // // var_dump($attempted_outcomes_per_undergrad_program); // // exit(); // if($program_attempted_outcome) // { // $attemptedGradProgramsPerOutcome[$outcome->id]+=1; // $achieved_outcomes_per_grad_program[$outcome->id]=$program->achieved_outcome($outcome->id, $selected_semester->id); // if($attempted_outcomes_per_grad_program[$outcome->id]!=0 && (float)$achieved_outcomes_per_grad_program[$outcome->id]/$attempted_outcomes_per_grad_program[$outcome->id]*100 >= $outcome->expected_outcome) // { // $achievedGradProgramsPerOutcome[$outcome->id]+=1; // // $output[]= 'END OF PROGRAM: '.$program->name.'-'.json_encode($achievedUndergradProgramsPerOutcome); // } // } // } // } // var_dump($grad_outcomes_attempted); // print("
"); // var_dump($grad_outcomes_achieved); // exit(); return View::make('local.managers.admins.overview', compact('title', 'schools', 'outcomes_subgrad', 'outcomes_grad', 'undergrad_outcomes_achieved', 'undergrad_outcomes_attempted', 'grad_outcomes_achieved', 'grad_outcomes_attempted', 'attemptedUndergradProgramsPerOutcome', 'participating_undergrad_programs', 'achievedUndergradProgramsPerOutcome', 'attemptedGradProgramsPerOutcome', 'participating_grad_programs', 'achievedGradProgramsPerOutcome')); } public function overview2() { // ''' //stucture of outcomes array: // // $outcome->id // $outcome->name // $outcome->semesters // // $outcome->semesters[i]->id // $outcome->semesters[i]->code // $outcome->semesters[i]->name // $outcome->semesters[i]->tested // $outcome->semesters[i]->achievers // ''' $is_graduate=0; $levels=array(1,3); $selected_semesters = Semester::find(Session::get('semesters_ids')); $title = 'Overview'; $semesters = DB::table('overview') ->join('semesters', 'semesters.id', '=', 'overview.semester_id') ->select('semesters.id', 'semesters.name', 'semesters.code') ->orderBy('semesters.code', 'asc') ->groupBy('semesters.id') ->get(); $outcomes = DB::table('overview') ->rightJoin('outcomes', 'outcomes.id', '=', 'overview.outcome_id') ->whereIn('outcomes.level',$levels) ->selectRaw('outcomes.name, coalesce(outcomes.new_outcome_id,outcomes.id) as id, sum(overview.total_evaluated) as total_evaluated, sum(overview.total_achieved) as total_achieved') ->orderBy('outcomes.name', 'asc') ->groupBy(DB::raw('coalesce(outcomes.new_outcome_id,outcomes.id)')) ->get(); //outcomes activos // $outcomes = DB::table('outcomes') // ->whereNull('deactivation_date') // // ->get(); // DB::enableQueryLog(); foreach ($outcomes as $outcome) { // select semester_id, program_id, sum(`total_evaluated`) eval, sum(`total_achieved`) ach from overview where outcome_id in (select id from outcomes where coalesce(`new_outcome_id`,id) = 12) group by semester_id, program_id $outcome->semesters = DB::table('overview') ->join('semesters', 'semesters.id', '=', 'overview.semester_id') ->whereIn('overview.outcome_id',function ($query) use ($outcome) { $query->select('outcomes.id') ->from('outcomes') ->whereRaw('coalesce(outcomes.new_outcome_id,outcomes.id)=?',[$outcome->id]); }) ->selectRaw('semesters.id, semesters.name, semesters.code, sum(overview.total_evaluated) as total_evaluated, sum(overview.total_achieved) as total_achieved') ->orderBy('semesters.code', 'asc') ->groupBy('overview.semester_id') ->get(); } // var_dump($outcomes); // exit(); // dd(DB::getQueryLog()); $filters = array(); $filters['school'] = DB::table('overview') ->join('programs', 'programs.id', '=', 'overview.program_id') ->join('schools', 'schools.id', '=', 'programs.school_id') ->where('programs.is_graduate',$is_graduate) ->select('schools.id', 'schools.name') ->orderBy('schools.name', 'asc') ->groupBy('schools.id') ->get(); // DB::enableQueryLog(); $filters['program'] = DB::table('overview') ->join('programs', 'programs.id', '=', 'overview.program_id') ->where('programs.is_graduate',$is_graduate) ->select('programs.id', 'programs.name') ->orderBy('programs.name', 'asc') ->groupBy('overview.program_id') ->get(); // dd(DB::getQueryLog()); $filters['semester'] = DB::table('overview') ->join('semesters', 'semesters.id', '=', 'overview.semester_id') ->select('semesters.id', 'semesters.name', 'semesters.code') ->orderBy('semesters.code', 'asc') ->groupBy('overview.semester_id') ->get(); $filters['year'] = DB::table('overview') // ->join('semesters', 'semesters.id', '=', 'overview.semester_id') ->select('semesters.id', 'semesters.start') ->orderBy('semesters.code', 'asc') ->groupBy('overview.semester_id') ->get(); // DB::enableQueryLog(); //select `outcomes`.`id`, `outcomes`.`name` from outcomes where deactivation_date is null and `outcomes`.`id` in (select outcome_id from overview) $filters['outcome'] = DB::table('outcomes') ->select('outcomes.id', 'outcomes.name') ->whereNull('deactivation_date') ->whereIn('outcomes.id',function($query) { $query->select('outcome_id') ->from('overview'); } ) ->orderBy('outcomes.name', 'asc') ->get(); // dd(DB::getQueryLog()); // exit(); $target = 0.70; return View::make('local.managers.admins.overview2', compact('title', 'selected_semesters', 'outcomes', 'semesters', 'filters', 'target')); } // this is called when filters are changed public function overview2_filter_results() { // selected filter data $schools = Input::get('schools'); $programs = Input::get('programs'); $semesters = Input::get('semesters'); $years = Input::get('years'); $outcomes = Input::get('outcomes'); $is_graduate=Input::get('is_graduate'); // $is_graduate=0; if($is_graduate)$levels=array(2,3); else $levels=array(1,3); // make an array id's of schools selected. if All, use All available id's if ($schools == array("0")) { $result = DB::table('overview') ->join('programs', 'programs.id', '=', 'overview.program_id') ->join('schools', 'schools.id', '=', 'programs.school_id') ->where('programs.is_graduate',$is_graduate) ->select('schools.id') ->orderBy('schools.name', 'asc') ->groupBy('schools.id') ->get(); $schools_id = array(); foreach ($result as $school) { array_push($schools_id, $school->id); } } else { $schools_id = array(); foreach ($schools as $school_id) { array_push($schools_id, intval($school_id)); } } // make an array id's of programs selected. if All, use All available id's if ($programs == array("0")) { $result = DB::table('overview') ->join('programs', 'programs.id', '=', 'overview.program_id') ->where('programs.is_graduate',$is_graduate) ->select('programs.id') ->orderBy('programs.name', 'asc') ->groupBy('overview.program_id') ->get(); $programs_id = array(); foreach ($result as $program) { array_push($programs_id, $program->id); } } else { $programs_id = array(); foreach ($programs as $program_id) { array_push($programs_id, intval($program_id)); } } // make an array id's of semesters selected. if All, use All available id's if ($semesters == array("0")) { $result = DB::table('overview') ->join('semesters', 'semesters.id', '=', 'overview.semester_id') ->select('semesters.id') ->orderBy('semesters.code', 'asc') ->groupBy('overview.semester_id') ->get(); $semesters_id = array(); foreach ($result as $semester) { array_push($semesters_id, $semester->id); } } else { $semesters_id = array(); foreach ($semesters as $semester_id) { array_push($semesters_id, intval($semester_id)); } } // make an array id's of years selected. if All, use All available id's // if ($years == array("0")) { // $result = DB::table('overview') // // ->join('semesters', 'semesters.id', '=', 'overview.semester_id') // ->select('semesters.id') // ->orderBy('semesters.code', 'asc') // ->groupBy('overview.semester_id') // ->get(); // $years_id = array(); // foreach ($result as $year) { // array_push($years_id, $year->id); // } // } else { // $years_id = array(); // foreach ($years as $year_id) { // array_push($years_id, intval($year_id)); // } // } // make an array id's of outcomes selected. if All, use All available id's if ($outcomes == array("0")) { $result = DB::table('overview') ->rightJoin('outcomes', 'outcomes.id', '=', 'overview.outcome_id') ->whereIn('outcomes.level',$levels) ->selectRaw('coalesce(outcomes.new_outcome_id,outcomes.id) as id') ->orderBy('outcomes.name', 'asc') ->groupBy(DB::raw('coalesce(outcomes.new_outcome_id,outcomes.id)')) ->get(); // $result = DB::table('outcomes') // ->select('outcomes.id') // ->whereIn('outcomes.level',$levels) // ->whereNull('deactivation_date') // // ->whereIn('outcomes.id',function($query) // // { // // $query->select('outcome_id') // // ->from('overview'); // // } // // ) // ->orderBy('outcomes.name', 'asc') // ->get(); // // $result = DB::table('overview') // ->join('outcomes', 'outcomes.id', '=', 'overview.outcome_id') // ->select('outcomes.id') // ->orderBy('outcomes.name', 'asc') // ->groupBy('overview.outcome_id') // ->get(); $outcomes_id = array(); foreach ($result as $outcome) { array_push($outcomes_id, $outcome->id); } } else { $outcomes_id = array(); foreach ($outcomes as $outcome_id) { array_push($outcomes_id, intval($outcome_id)); } } // get data for graph $semesters = DB::table('overview') ->join('programs', 'programs.id', '=', 'overview.program_id') ->join('schools', 'schools.id', '=', 'programs.school_id') ->join('semesters', 'semesters.id', '=', 'overview.semester_id') ->join('outcomes', 'outcomes.id', '=', 'overview.outcome_id') // ->where('programs.is_graduate',$is_graduate) ->whereIn('schools.id', $schools_id) ->whereIn('programs.id', $programs_id) ->whereIn('semesters.id', $semesters_id) // ->whereIn('years.id',$years_id) ->whereIn('outcomes.id', $outcomes_id) ->select('semesters.name', 'semesters.code') ->orderBy('semesters.code', 'asc') ->groupBy('semesters.id') ->get(); // $outcomes = DB::table('overview') // ->rightJoin('outcomes', 'outcomes.id', '=', 'overview.outcome_id') // ->join('programs', 'programs.id', '=', 'overview.program_id') // ->join('schools', 'schools.id', '=', 'programs.school_id') // ->join('semesters', 'semesters.id', '=', 'overview.semester_id') // ->whereIn('schools.id', $schools_id) // ->whereIn('programs.id', $programs_id) // ->whereIn('semesters.id', $semesters_id) // ->whereIn('outcomes.id', $outcomes_id) // ->selectRaw('outcomes.name, coalesce(outcomes.new_outcome_id,outcomes.id) as id, sum(overview.total_evaluated) as total_evaluated, sum(overview.total_achieved) as total_achieved') // ->orderBy('outcomes.name', 'asc') // ->groupBy(DB::raw('coalesce(outcomes.new_outcome_id,outcomes.id)')) // ->get(); // $sql=DB::table('overview') // ->join('programs', 'programs.id', '=', 'overview.program_id') // ->join('schools', 'schools.id', '=', 'programs.school_id') // ->join('semesters', 'semesters.id', '=', 'overview.semester_id') // ->select('overview.id','program_id','outcome_id','semester_id','total_evaluated','total_achieved') // ->whereIn('schools.id', $schools_id) // ->whereIn('programs.id', $programs_id) // ->whereIn('semesters.id', $semesters_id); $schools_text=implode(",", $schools_id); $programs_text=implode(",", $programs_id); $semesters_text=implode(",", $semesters_id); $sql="select overview.* from `overview` inner join `programs` on `programs`.`id` = `overview`.`program_id` inner join `schools` on `schools`.`id` = `programs`.`school_id` inner join `semesters` on `semesters`.`id` = `overview`.`semester_id` where `schools`.`id` in ($schools_text) and `programs`.`id` in ($programs_text) and `semesters`.`id` in ($semesters_text)"; $outcomes = DB::table('outcomes') ->leftJoin(DB::raw("({$sql}) as overview2"),'outcomes.id', '=', 'overview2.outcome_id') ->whereIn('outcomes.id', $outcomes_id) ->selectRaw('outcomes.name, coalesce(outcomes.new_outcome_id,outcomes.id) as id, sum(overview2.total_evaluated) as total_evaluated, sum(overview2.total_achieved) as total_achieved') ->orderBy('outcomes.name', 'asc') ->groupBy(DB::raw('coalesce(outcomes.new_outcome_id,outcomes.id)')) // ->mergeBindings($sql->getQuery()) ->get(); foreach ($outcomes as $outcome) { // $outcome->semesters = DB::table('overview') // ->join('programs', 'programs.id', '=', 'overview.program_id') // ->join('schools', 'schools.id', '=', 'programs.school_id') // ->join('semesters', 'semesters.id', '=', 'overview.semester_id') // ->join('outcomes', 'outcomes.id', '=', 'overview.outcome_id') // ->whereIn('schools.id', $schools_id) // ->whereIn('programs.id', $programs_id) // ->whereIn('semesters.id', $semesters_id) // // ->whereIn('years.id',$years_id) // ->whereIn('outcomes.id', $outcomes_id) // ->where('overview.outcome_id', $outcome->id) // ->selectRaw('semesters.id, semesters.name, semesters.code, sum(overview.total_evaluated) as total_evaluated, sum(overview.total_achieved) as total_achieved') // ->orderBy('semesters.code', 'asc') // ->groupBy('overview.outcome_id') // ->groupBy('overview.semester_id') // ->get(); $outcome->semesters = DB::table('overview') ->join('programs', 'programs.id', '=', 'overview.program_id') ->join('schools', 'schools.id', '=', 'programs.school_id') ->join('semesters', 'semesters.id', '=', 'overview.semester_id') ->whereIn('schools.id', $schools_id) ->whereIn('programs.id', $programs_id) ->whereIn('semesters.id', $semesters_id) ->whereIn('overview.outcome_id',function ($query) use ($outcome) { $query->select('outcomes.id') ->from('outcomes') ->whereRaw('coalesce(outcomes.new_outcome_id,outcomes.id)=?',[$outcome->id]); }) ->selectRaw('semesters.id, semesters.name, semesters.code, sum(overview.total_evaluated) as total_evaluated, sum(overview.total_achieved) as total_achieved') ->orderBy('semesters.code', 'asc') ->groupBy('overview.semester_id') ->get(); } // get data for filters $filters = array(); $filters['school'] = DB::table('overview') ->join('programs', 'programs.id', '=', 'overview.program_id') ->join('schools', 'schools.id', '=', 'programs.school_id') ->join('semesters', 'semesters.id', '=', 'overview.semester_id') ->join('outcomes', 'outcomes.id', '=', 'overview.outcome_id') ->whereIn('schools.id', $schools_id) ->whereIn('programs.id', $programs_id) ->whereIn('semesters.id', $semesters_id) // ->whereIn('years.id',$years_id) ->whereIn('outcomes.id', $outcomes_id) ->where('programs.is_graduate',$is_graduate) ->select('schools.id', 'schools.name') ->orderBy('schools.name', 'asc') ->groupBy('schools.id') ->get(); $filters['program'] = DB::table('overview') ->join('programs', 'programs.id', '=', 'overview.program_id') ->join('schools', 'schools.id', '=', 'programs.school_id') ->join('semesters', 'semesters.id', '=', 'overview.semester_id') ->join('outcomes', 'outcomes.id', '=', 'overview.outcome_id') ->whereIn('schools.id', $schools_id) // ->whereIn('programs.id',$programs_id) ->whereIn('semesters.id', $semesters_id) // ->whereIn('years.id',$years_id) ->whereIn('outcomes.id', $outcomes_id) ->where('programs.is_graduate',$is_graduate) ->select('programs.id', 'programs.name') ->orderBy('programs.name', 'asc') ->groupBy('overview.program_id') ->get(); $filters['semester'] = DB::table('overview') ->join('programs', 'programs.id', '=', 'overview.program_id') ->join('schools', 'schools.id', '=', 'programs.school_id') ->join('semesters', 'semesters.id', '=', 'overview.semester_id') ->join('outcomes', 'outcomes.id', '=', 'overview.outcome_id') ->whereIn('schools.id', $schools_id) ->whereIn('programs.id', $programs_id) // ->whereIn('semesters.id',$semesters_id) // ->whereIn('years.id',$years_id) ->whereIn('outcomes.id', $outcomes_id) ->where('programs.is_graduate',$is_graduate) ->select('semesters.id', 'semesters.name', 'semesters.code') ->orderBy('semesters.code', 'asc') ->groupBy('overview.semester_id') ->get(); // $filters['year'] = DB::table('overview') //////////////////////////////////////////// // ->join('programs', 'programs.id', '=', 'overview.program_id') // ->join('schools', 'schools.id', '=', 'programs.school_id') // ->join('semesters', 'semesters.id', '=', 'overview.semester_id') // ->join('outcomes', 'outcomes.id', '=', 'overview.outcome_id') // ->whereIn('schools.id', $schools_id) // ->whereIn('programs.id', $programs_id) // ->whereIn('semesters.id', $semesters_id) // // ->whereIn('years.id',$years_id) // ->whereIn('outcomes.id', $outcomes_id) // // ->get(); $sql="select overview.* from `overview` inner join `programs` on `programs`.`id` = `overview`.`program_id` inner join `schools` on `schools`.`id` = `programs`.`school_id` inner join `semesters` on `semesters`.`id` = `overview`.`semester_id` where `schools`.`id` in ($schools_text) and `programs`.`id` in ($programs_text) and `semesters`.`id` in ($semesters_text) and programs.is_graduate=$is_graduate"; $filters['outcome'] = DB::table('outcomes') ->leftJoin(DB::raw("({$sql}) as overview2"),'outcomes.id', '=', 'overview2.outcome_id') ->select('outcomes.id', 'outcomes.name') ->orderBy('outcomes.name', 'asc') ->groupBy(DB::raw('coalesce(outcomes.new_outcome_id,outcomes.id)')) // ->mergeBindings($sql->getQuery()) ->get(); // $filters['outcome'] = DB::table('overview') // ->join('programs', 'programs.id', '=', 'overview.program_id') // ->join('schools', 'schools.id', '=', 'programs.school_id') // ->join('semesters', 'semesters.id', '=', 'overview.semester_id') // ->join('outcomes', 'outcomes.id', '=', 'overview.outcome_id') // ->whereIn('schools.id', $schools_id) // ->whereIn('programs.id', $programs_id) // ->whereIn('semesters.id', $semesters_id) // // ->whereIn('years.id',$years_id) // // ->whereIn('outcomes.id',$outcomes_id) // ->where('programs.is_graduate',$is_graduate) // ->select('outcomes.id', 'outcomes.name') // ->orderBy('outcomes.name', 'asc') // ->groupBy('overview.outcome_id') // ->get(); return array( "semesters" => $semesters, "outcomes_info" => $outcomes, "filters" => $filters, ); } }