Example #1
0
 public static function copy($previousSemester = null, $currentSemester = null)
 {
     $previousSemester = $previousSemester ? $previousSemester : Semester::get_previous_semester()->id;
     $currentSemester = $currentSemester ? $currentSemester : Semester::get_active_semester()->id;
     $jumpKelas = Semester::find($previousSemester)->semester == 2;
     $now = \Carbon\Carbon::now();
     $prevAssoc = Mengajar::select(\DB::raw("mengajar.id_guru, mengajar.id_kelas, mengajar.id_mapel"))->where('id_semester', '=', $previousSemester)->get()->toArray();
     $fail = 0;
     $success = 0;
     foreach ($prevAssoc as $assoc) {
         $kelas = Kelas::find($assoc['id_kelas']);
         $tingkat = $jumpKelas ? max($kelas->tingkat - 1, 1) : $kelas->tingkat;
         $id_jurusan = $kelas->id_jurusan;
         $kelas = $kelas->kelas;
         $newKelas = Kelas::where('tingkat', $tingkat)->where('id_jurusan', $id_jurusan)->where('kelas', $kelas)->first();
         if (!$newKelas) {
             $fail++;
             continue;
         }
         try {
             Mengajar::insert(['id_guru' => $assoc['id_guru'], 'id_kelas' => $newKelas->id, 'id_mapel' => $assoc['id_mapel'], 'id_semester' => $currentSemester]);
         } catch (\Illuminate\Database\QueryException $e) {
             $fail++;
             continue;
         }
         $success++;
     }
     return ['fail' => $fail, 'success' => $success];
 }