public static function get_absensi($id_siswa, $id_semester = false) { if (!$id_semester) { $id_semester = Semester::get_active_semester()->id; } return self::where('id_siswa', $id_siswa)->where('id_semester', $id_semester)->first(); }
public static function get_catatan($id_siswa, $mitra, $lokasi, $id_semester = null) { if (!$id_semester) { $id_semester = Semester::get_active_semester()->id; } return self::where('id_siswa', $id_siswa)->where('mitra', $mitra)->where('lokasi', $lokasi)->where('id_semester', $id_semester)->first(); }
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); } }
public static function get_table_data($request = null) { $semester = Semester::get_active_semester()->id; if ($request != null) { if ($request->input('semester')) { $semester = $request->input('semester'); } } $data = self::select(DB::raw("\n siswa.nis as `NIS`,\n siswa.nama as `Nama`, nilai_prestasi.prestasi as `Prestasi`,\n nilai_prestasi.keterangan as `Keterangan`,\n nilai_prestasi.id as `id`\n "))->join('siswa', 'siswa.id', '=', 'nilai_prestasi.id_siswa')->where('id_semester', $semester)->get()->toArray(); return ['data' => $data]; }
/** * Mengecek apakah ada guru yang belum mendapat asosiasi pengajaran * @param integer $semester ID dari semester yang ingin dicek. Secara default menggunakan ID semester yang aktif * @return integer Jumlah guru yang belum mendapat asosiasi */ public static function check($semester = null) { $guru = Guru::where('staf', 0)->orWhere('staf', 2)->get()->count(); if ($guru < 1) { return -1; } $asosiasi = self::join('guru', 'guru.id', '=', 'mengajar.id_guru')->where('mengajar.id_semester', $semester ? $semester : Semester::get_active_semester()->id)->where(function ($q) { $q->where('staf', 0)->orWhere('staf', 2); })->groupBy('guru.id')->get()->count(); return $guru - $asosiasi; }
public function save(Request $request) { $this->validate($request, ['semester' => 'required', 'tahun_ajaran' => 'required', 'password' => 'required']); if (!\Hash::check($request->input('password'), \Auth::user()->password)) { return redirect()->route('semester')->with('message', "Password tidak tepat."); } $check = Semester::where('semester', $request->input('semester'))->where('tahun_ajaran', $request->input('tahun_ajaran'))->first(); if ($check) { return redirect()->route('semester')->with('message', "Semester sudah ada."); } $old = Semester::get_active_semester(); Semester::where('aktif', 1)->update(['aktif' => 0]); try { $new = new Semester(); $new->semester = $request->input('semester'); $new->tahun_ajaran = $request->input('tahun_ajaran'); $new->aktif = 1; $new->save(); } catch (\Illuminate\Database\QueryException $e) { $old->aktif = 1; $old->save(); } // Naik kelas if ($request->input('semester') == 1) { $all_kelas = Kelas::get(); foreach ($all_kelas as $kelas) { $kelas->tingkat = $kelas->tingkat + 1; $kelas->save(); } } // AUTO // Buat kelas X if ($request->input('autoKelas')) { $all_kelas = Kelas::where('tingkat', '=', 2)->get(); foreach ($all_kelas as $kelas) { $new = new Kelas(); $new->tingkat = 1; $new->id_jurusan = $kelas->id_jurusan; $new->kelas = $kelas->kelas; $new->angkatan = $kelas->angkatan; $new->save(); } } // Ketuntasan Belajar if ($request->input('autoKB')) { KetuntasanBelajar::copy(); } // Asosiasi Mengajar if ($request->input('autoMengajar')) { Mengajar::copy(); } return redirect()->route('panel_utama')->with('message', "Semester telah berhasil dimajukan."); }
public static function get_details($id) { $mapel = self::find($id); if (!$mapel) { return false; } $details = ['id' => $id, 'nama' => $mapel->nama, 'singkat' => $mapel->singkat, 'kelompok' => $mapel->kelompok]; $kb = $mapel->ketuntasan_belajar->where('id_semester', Semester::get_active_semester()->id)->first(); if ($kb) { $details = array_merge($details, ['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]); } return $details; }
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 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]; }
/** * Halaman utama bagi staf. */ public function index() { // Ambil data semester yang aktif $pass['semester'] = Semester::get_active_semester(); // Pengecekan // 0 = fine // 1 = warning // 2 = error // Cek apakah ada jurusan tercatat $pass['jurusan'] = Jurusan::all()->count(); // Cek apakah kelas tingkat 1 sudah dibuat $kelas = Kelas::check_firstyears(); $pass['kelas'] = $kelas; if ($kelas['total'] == 0) { $pass['kelas']['cek'] = 2; } elseif ($kelas['count'] < $kelas['jurusan']) { $pass['kelas']['cek'] = 1; } else { $pass['kelas']['cek'] = 0; } // Cek apakah ada kelas tingkat 1 yang kosong $siswa = Siswa::check_firstyears(); $pass['siswa'] = $siswa; if ($siswa['siswa_tingkat_x'] <= 0) { $pass['siswa']['cek'] = 2; } elseif ($siswa['kelas_kosong'] > 0) { $pass['siswa']['cek'] = 1; } else { $pass['siswa']['cek'] = 0; } // Cek apakah semua mapel sudah memiliki angka KB untuk semester ini $pass['kb'] = KetuntasanBelajar::check(); // Cek apakah ada guru yang belum mendapat asosiasi pengajaran $pass['mengajar'] = Mengajar::check(); return view('panel', $pass); }
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); }
public function get_wali_kelas() { $g = Mengajar::join('mapel', 'mengajar.id_mapel', '=', 'mapel.id')->where('mengajar.id_kelas', $this->id)->where('mapel.kelompok', 'WK')->where('mengajar.id_semester', Semester::get_active_semester()->id)->first(); return $g ? Guru::find($g->id_guru) : false; }
public static function get_stats($semester = null) { $semester = $id_semester ? $id_semester : Semester::get_active_semester()->id; return ['siswa' => self::where('id_semester', $semester)->groupBy('id_siswa')->get()->count(), 'nilai' => self::where('id_semester', $semester)->get()->count()]; }
public function upload_save(Request $request) { $this->validate($request, ['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()); } $sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestRow(); $highestColumn = $sheet->getHighestColumn(); $start = false; $data_count = 0; $errors = 0; $semester = Semester::get_active_semester()->id; $id_siswa = null; for ($row = 1; $row <= $highestRow; $row++) { $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE); if (!$start) { if ($rowData[0][0] == "1" || $rowData[0][0] == "1.") { $start = true; } } if ($start) { if (empty($rowData[0][3]) || empty($rowData[0][4])) { continue; } $data_count++; $new = new Ekskul(); if (!empty($rowData[0][1])) { $siswa = Siswa::where('nis', $rowData[0][1])->first(); if (!$siswa) { $errors++; $id_siswa = null; continue; } $id_siswa = $siswa->id; } else { if ($id_siswa == null) { continue; } } $created = null; $check = Ekskul::where('ekstrakurikuler', $rowData[0][3])->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_semester = $semester; $new->ekstrakurikuler = $rowData[0][3]; $new->nilai = $rowData[0][4]; if ($created) { $new->created_at = $created; } try { $new->save(); } catch (\Illuminate\Database\QueryException $e) { $errors++; } } } if (!$start) { $message = "Tidak ada data ditemukan. Pastikan kolom nomor ada pada kolom A dan dimulai dengan angka 1."; } else { $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.ekskul')->with('message', $message); }
/** * Regenerate the CSRF token value. * * @return void */ public function regenerateToken() { $this->put('_token', Str::random(40) . Semester::get_active_semester()->id); }
public function upload_save(Request $request) { $this->validate($request, ['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; 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; } } 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 Absensi(); $created = null; $check = Absensi::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_semester = $semester; $new->sakit = $rowData[0][3] !== null ? $rowData[0][3] : null; $new->izin = $rowData[0][4] !== null ? $rowData[0][4] : null; $new->alpa = $rowData[0][5] !== null ? $rowData[0][5] : 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('absensi')->with('message', $message); }
public function make(Request $request) { $docObj = new PhpWord(); $schDetails = Pengaturan::get_school_details(); $printLocDate = $request->input('tempat_tanggal'); $headmaster = Pengaturan::get_headmaster(); $semester = Semester::get_active_semester(); $siswa_to_print = []; $nis_array = []; if ($request->input('siswa') == 'kelas') { $siswa_to_print = Siswa::where('id_kelas', $request->input('kelas'))->get(); } elseif ($request->input('siswa') == 'nis') { $nis_array = explode(' ', $request->input('nis')); foreach ($nis_array as $nis) { if (count($range = explode('-', $nis)) == 2) { $range = Siswa::whereBetween('nis', $range)->get(); foreach ($range as $get) { $siswa_to_print[] = $get; } } elseif ($get = Siswa::where('nis', $nis)->first()) { $siswa_to_print[] = $get; } else { return back()->with('message', "NIS {$nis} tidak ditemukan."); } } } else { return back(); } if (count($siswa_to_print) < 1) { return back()->with('message', "Tidak ada data untuk dicetak."); } $id_kelas = 0; $mapel_list = null; foreach ($siswa_to_print as $siswa) { if ($siswa->id_kelas == null) { continue; } if (!Semester::is_active_latest()) { $siswa->kelas_link->tingkat -= Semester::get_year_difference(); } if ($request->input('cover')) { $docObj = $this->wordHalamanCover($docObj, $siswa); $docObj = $this->wordHalamanDataSekolah($docObj, $schDetails); } if ($request->input('bio')) { $docObj = $this->wordHalamanBiodata($docObj, $siswa, $printLocDate, $headmaster); } if ($request->input('nilai')) { if ($id_kelas != $siswa->id_kelas) { $id_kelas = $siswa->id_kelas; $mapel_list = NilaiAkhir::get_mapel_list($id_kelas); } $sikap = NilaiSikap::get_nilai($siswa->id); $nilai['sikap'] = $sikap ? $sikap->sikap : ""; $nilai['mapel'] = NilaiAkhir::get_all_nilai($siswa, $mapel_list); $absensi = Absensi::get_absensi($siswa->id); $nilai['absensi'] = ['sakit' => $absensi ? $absensi->sakit : null, 'izin' => $absensi ? $absensi->izin : null, 'alpa' => $absensi ? $absensi->alpa : null]; $nilai['prestasi'] = Prestasi::get_for_print($siswa->id, $semester->id); $nilai['ekskul'] = Ekskul::get_for_print($siswa->id, $semester->id); $nilai['pkl'] = Pkl::get_for_print($siswa->id, $semester->id); $docObj = $this->wordHalamanNilai($docObj, $schDetails, $siswa, $nilai, $headmaster, $printLocDate, $semester); } } $objWriter = IOFactory::createWriter($docObj, 'Word2007'); $fn = date('Y-n-j_His'); if ($request->input('siswa') == 'kelas') { $kelas = Kelas::find($request->input('kelas')); if (!Semester::is_active_latest()) { $kelas->tingkat -= Semester::get_year_difference(); } $fn .= "_" . $kelas->name(false); } if ($request->input('siswa') == 'nis') { $fn .= "_" . $nis_array[0] . '-' . $nis_array[count($nis_array) - 1]; } $objWriter->save("print/{$fn}.docx"); return Response::download("print/{$fn}.docx", "{$fn}.docx", ['Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document']); }
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.'; }