コード例 #1
0
 public function mass(Request $request)
 {
     if (!$request->ajax()) {
         abort(404);
     }
     $semester = Semester::get_active_semester()->id;
     if (!($prevSemester = Semester::get_previous_semester())) {
         return response("Semester sebelumnya tidak dapat ditemukan.", 422);
     }
     $prevSemester = $prevSemester->id;
     if ($request->input('type') == 2) {
         $backup = null;
         try {
             $backup = Mengajar::reset($semester);
         } catch (Exception $e) {
             return response("Penghapusan aturan asosiasi gagal dilakukan.", 422);
         }
         return response("Penghapusan berhasil.", 200);
     }
     if ($request->input('type') == 1) {
         $copy = null;
         try {
             $copy = Mengajar::copy($prevSemester, $semester);
         } catch (Exception $e) {
             return response("Penyalinan aturan asosiasi dari semester sebelumnya gagal dilakukan.", 422);
         }
         return response("Proses penyamaan selesai. {$copy['success']} entri asosiasi berhasil disamakan." . ($copy['fail'] > 0 ? " {$copy['fail']} entri gagal disamakan karena entri sudah ada atau tidak ditemukannya kelas." : ""), 200);
     }
 }
コード例 #2
0
ファイル: Mengajar.php プロジェクト: hermitpopcorn/arkxiii
 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];
 }
コード例 #3
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;
     $now = \Carbon\Carbon::now();
     $prevKB = KetuntasanBelajar::where('id_semester', '=', $previousSemester)->get()->toArray();
     $fail = 0;
     $success = 0;
     foreach ($prevKB as $KB) {
         try {
             KetuntasanBelajar::where('id_mapel', $KB['id_mapel'])->where('id_semester', $currentSemester)->delete();
             KetuntasanBelajar::insert(['id_mapel' => $KB['id_mapel'], 'id_semester' => $currentSemester, 'kb_tingkat_1p' => $KB['kb_tingkat_1p'], 'kb_tingkat_1k' => $KB['kb_tingkat_1k'], 'kb_tingkat_2p' => $KB['kb_tingkat_2p'], 'kb_tingkat_2k' => $KB['kb_tingkat_2k'], 'kb_tingkat_3p' => $KB['kb_tingkat_3p'], 'kb_tingkat_3k' => $KB['kb_tingkat_3k']]);
         } catch (\Illuminate\Database\QueryException $e) {
             $fail++;
             continue;
         }
         $success++;
     }
     return ['fail' => $fail, 'success' => $success];
 }
コード例 #4
0
 public function mass(Request $request)
 {
     if (!$request->ajax()) {
         abort(404);
     }
     $this->validate($request, ['type' => 'required|integer']);
     $semester = Semester::get_active_semester()->id;
     if (!($prevSemester = Semester::get_previous_semester())) {
         return response("Semester sebelumnya tidak dapat ditemukan.", 422);
     }
     $prevSemester = $prevSemester->id;
     if ($request->type == 1 || $request->type == 2) {
         $targets = Mapel::get_unset_kb();
         foreach ($targets as $target) {
             $new = new KetuntasanBelajar();
             $new->id_mapel = $target->id;
             $new->id_semester = $semester;
             if ($target->kelompok == 'A' | $target->kelompok == 'B' | $target->kelompok == 'C1') {
                 $n = 60;
             } elseif ($target->kelompok == 'C2' | $target->kelompok == 'C3') {
                 $n = 70;
             }
             $new->kb_tingkat_1p = $n;
             $new->kb_tingkat_2p = $n;
             $new->kb_tingkat_3p = $n;
             $new->kb_tingkat_1k = $n;
             $new->kb_tingkat_2k = $n;
             $new->kb_tingkat_3k = $n;
             $new->save();
         }
     }
     if ($request->type == 2) {
         $targets = Mapel::get_set_kb();
         foreach ($targets as $target) {
             $new = KetuntasanBelajar::where('id_mapel', '=', $target->id)->where('id_semester', '=', $semester)->first();
             $new->id_semester = $semester;
             if ($target->kelompok == 'A' | $target->kelompok == 'B' | $target->kelompok == 'C1') {
                 $n = 60;
             } elseif ($target->kelompok == 'C2' | $target->kelompok == 'C3') {
                 $n = 70;
             }
             KetuntasanBelajar::where('id_mapel', '=', $target->id)->where('id_semester', '=', $semester)->update(['kb_tingkat_1p' => $n, 'kb_tingkat_2p' => $n, 'kb_tingkat_3p' => $n, 'kb_tingkat_1k' => $n, 'kb_tingkat_2k' => $n, 'kb_tingkat_3k' => $n]);
         }
     }
     if ($request->input('type') == 3) {
         $copy = null;
         try {
             $copy = KetuntasanBelajar::copy($prevSemester, $semester);
         } catch (Exception $e) {
             return response("Penyalinan aturan ketuntasan belajar dari semester sebelumnya gagal dilakukan.", 422);
         }
     }
     return 'KB berhasil diubah secara massal.';
 }