public function akhir()
 {
     $pass['kelas_list'] = Kelas::get_daftar_kelas(false, false);
     $pass['mapel_list'] = Mapel::get_daftar_mapel(true);
     $pass['semester_list'] = Semester::get_daftar_semester(true);
     return view('nilai.lama.akhir', $pass);
 }
 public static function check($semester = null)
 {
     $mapel = Mapel::where('kelompok', '!=', 'WK')->get()->count();
     if ($mapel < 1) {
         return -1;
     }
     $kb = self::where('id_semester', $semester ? $semester : Semester::get_active_semester()->id)->get()->count();
     return $mapel - $kb;
 }
Example #3
0
 public static function get_all_nilai($siswa, $mapel_list)
 {
     $data = [];
     $tingkat = $siswa->kelas_link->tingkat;
     foreach ($mapel_list as $entry) {
         $id_mapel = $entry->id_mapel;
         $mapel = Mapel::find($id_mapel);
         $nilai = self::get_nilai($siswa->id, $id_mapel);
         $kb = $mapel->ketuntasan_belajar->where('id_semester', Semester::get_active_semester()->id)->first();
         if ($kb) {
             if ($tingkat == 1) {
                 $kbp = $kb->kb_tingkat_1p;
             } elseif ($tingkat == 2) {
                 $kbp = $kb->kb_tingkat_2p;
             } elseif ($tingkat == 3) {
                 $kbp = $kb->kb_tingkat_3p;
             } else {
                 $kbp = NULL;
             }
         }
         $data[$mapel->kelompok][$mapel->nama]['pengetahuan']['kb'] = $kbp;
         $data[$mapel->kelompok][$mapel->nama]['pengetahuan']['angka'] = $nilai ? $nilai->nilai_pengetahuan : NULL;
         $data[$mapel->kelompok][$mapel->nama]['pengetahuan']['predikat'] = $nilai ? self::predikat($nilai->nilai_pengetahuan) : NULL;
         $data[$mapel->kelompok][$mapel->nama]['pengetahuan']['deskripsi'] = $nilai ? $nilai->deskripsi_pengetahuan : NULL;
         if ($kb) {
             if ($tingkat == 1) {
                 $kbk = $kb->kb_tingkat_1k;
             } elseif ($tingkat == 2) {
                 $kbk = $kb->kb_tingkat_2k;
             } elseif ($tingkat == 3) {
                 $kbk = $kb->kb_tingkat_3k;
             } else {
                 $kbk = NULL;
             }
         }
         $data[$mapel->kelompok][$mapel->nama]['keterampilan']['kb'] = $kbk;
         $data[$mapel->kelompok][$mapel->nama]['keterampilan']['angka'] = $nilai ? $nilai->nilai_keterampilan : NULL;
         $data[$mapel->kelompok][$mapel->nama]['keterampilan']['predikat'] = $nilai ? self::predikat($nilai->nilai_keterampilan) : NULL;
         $data[$mapel->kelompok][$mapel->nama]['keterampilan']['deskripsi'] = $nilai ? $nilai->deskripsi_keterampilan : NULL;
     }
     return $data;
 }
 public function setup(Request $request)
 {
     // Set semester
     $new = new Semester();
     $new->semester = $request->input('semester');
     $new->tahun_ajaran = $request->input('tahun_ajaran');
     $new->aktif = 1;
     $new->save();
     $input = $request->except(['_token', 'semester', 'tahun_ajaran']);
     // Set pengaturan
     foreach ($input as $key => $value) {
         Pengaturan::vset($key, $value);
     }
     // Cek apakah mata pelajaran wali kelas sudah ada, kalau belum, tambah
     $wk = Mapel::where('kelompok', 'WK')->get();
     if (!$wk) {
         App\Mapel::create(['nama' => 'Wali kelas', 'singkat' => 'WALI', 'kelompok' => 'WK']);
     }
     return redirect()->route('kelas.jurusan')->with('message', "Data semester dan informasi sekolah telah dikonfigurasi.");
 }
 public function save(Request $request)
 {
     $validation = ['id_guru' => 'required|exists:guru,id', 'id_kelas' => 'required|exists:kelas,id', 'id_mapel' => 'required|exists:mapel,id'];
     $this->validate($request, $validation);
     if (Mapel::find($request->input('id_mapel'))->kelompok == "WK") {
         $c = Mengajar::join('mapel', 'mengajar.id_mapel', '=', 'mapel.id')->where('mengajar.id_kelas', $request->input('id_kelas'))->where('mapel.kelompok', 'WK')->where('mengajar.id_semester', Semester::get_active_semester()->id)->first();
         if ($c) {
             return response("Kelas ini sudah memiliki wali kelas (" . $c->guru_link->nama . ").", 422);
         }
     }
     $new = new Mengajar();
     $new->id_guru = $request->input('id_guru');
     $new->id_kelas = $request->input('id_kelas');
     $new->id_mapel = $request->input('id_mapel');
     $new->id_semester = Semester::get_active_semester()->id;
     try {
         $save = $new->save();
     } catch (\Illuminate\Database\QueryException $e) {
         return response('Operasi gagal. Coba cek kembali, mungkin ada kesalahan atau data yang ingin ditambahkan sudah ada.', 422);
     }
     return "Asosiasi pengajaran baru berhasil ditambahkan.";
 }
Example #6
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function destroy(Mapel $mapel)
 {
     $mapel->delete();
     return redirect('/mapel');
 }
 public function index()
 {
     $pass['semester_list'] = Semester::get_daftar_semester(true);
     $pass['mapel_list'] = Mapel::get_daftar_mapel(true);
     return view('ralat.form', $pass);
 }
 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.';
 }
 public function upload_save(Request $request)
 {
     $this->validate($request, ['id_mapel' => 'required|exists:mapel,id', 'excel' => 'required']);
     $inputFileName = $request->excel;
     try {
         $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
         $objReader = PHPExcel_IOFactory::createReader($inputFileType);
         $objPHPExcel = $objReader->load($inputFileName);
     } catch (Exception $e) {
         die('Error loading file "' . pathinfo($inputFileName, PATHINFO_BASENAME) . '": ' . $e->getMessage());
     }
     $data_count = 0;
     $errors = 0;
     $semester = Semester::get_active_semester()->id;
     foreach ($objPHPExcel->getWorksheetIterator() as $sheet) {
         $highestRow = $sheet->getHighestRow();
         $highestColumn = $sheet->getHighestColumn();
         $start = false;
         $id_mapel = $request->input('id_mapel');
         for ($row = 1; $row <= $highestRow; $row++) {
             $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
             if (!$start) {
                 // Start check
                 if ($rowData[0][0] == "1" || $rowData[0][0] == "1.") {
                     $start = true;
                 }
                 // Mapel set
                 foreach ($rowData[0] as $colNum => $colVal) {
                     if (strpos(strtolower($colVal), 'mata pelajaran:') !== FALSE || strpos(strtolower($colVal), 'mapel:') !== FALSE) {
                         $c = Mapel::where('nama', 'LIKE', $rowData[0][$colNum + 1])->first();
                         if ($c) {
                             $id_mapel = $c->id;
                         }
                     }
                 }
             }
             if ($start) {
                 $id_siswa = null;
                 $data_count++;
                 if (!empty($rowData[0][1])) {
                     $siswa = Siswa::where('nis', $rowData[0][1])->first();
                     if (!$siswa) {
                         $errors++;
                         $id_siswa = null;
                         continue;
                     }
                     $id_siswa = $siswa->id;
                 }
                 if (!$id_siswa) {
                     continue;
                 }
                 $new = new NilaiAkhir();
                 $created = null;
                 $check = NilaiAkhir::where('id_mapel', $id_mapel)->where('id_siswa', $id_siswa)->where('id_semester', $semester);
                 $old = $check->first();
                 if ($old) {
                     $created = $old->created_at;
                     $check->delete();
                 }
                 $new->id_siswa = $id_siswa;
                 $new->id_mapel = $id_mapel;
                 $new->id_semester = $semester;
                 $new->nilai_pengetahuan = $rowData[0][3] ? $rowData[0][3] : null;
                 $new->deskripsi_pengetahuan = $rowData[0][4] ? $rowData[0][4] : null;
                 $new->nilai_keterampilan = $rowData[0][5] ? $rowData[0][5] : null;
                 $new->deskripsi_keterampilan = $rowData[0][6] ? $rowData[0][6] : null;
                 if ($created) {
                     $new->created_at = $created;
                 }
                 try {
                     $new->save();
                 } catch (\Illuminate\Database\QueryException $e) {
                     $errors++;
                 }
             }
         }
     }
     $message = "Upload file selesai. Terbaca ada {$data_count} data. ";
     $message .= $errors > 0 ? "Ada masalah dengan {$errors} data, dan tidak dapat dimasukkan ke dalam database." : "Semua data berhasil ditambahkan.";
     return redirect()->route('nilai.akhir')->with('message', $message);
 }