コード例 #1
0
ファイル: Absensi.php プロジェクト: hermitpopcorn/arkxiii
 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();
 }
コード例 #2
0
ファイル: Pkl.php プロジェクト: hermitpopcorn/arkxiii
 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();
 }
コード例 #3
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);
     }
 }
コード例 #4
0
ファイル: Prestasi.php プロジェクト: hermitpopcorn/arkxiii
 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];
 }
コード例 #5
0
ファイル: Mengajar.php プロジェクト: hermitpopcorn/arkxiii
 /**
  * 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;
 }
コード例 #6
0
 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.");
 }
コード例 #7
0
ファイル: Mapel.php プロジェクト: hermitpopcorn/arkxiii
 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;
 }
コード例 #8
0
ファイル: NilaiAkhir.php プロジェクト: hermitpopcorn/arkxiii
 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;
 }
コード例 #9
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];
 }
コード例 #10
0
 /**
  * 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);
 }
コード例 #11
0
 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);
 }
コード例 #12
0
ファイル: Kelas.php プロジェクト: hermitpopcorn/arkxiii
 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;
 }
コード例 #13
0
ファイル: Ekskul.php プロジェクト: hermitpopcorn/arkxiii
 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()];
 }
コード例 #14
0
 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);
 }
コード例 #15
0
ファイル: Store.php プロジェクト: hermitpopcorn/arkxiii
 /**
  * Regenerate the CSRF token value.
  *
  * @return void
  */
 public function regenerateToken()
 {
     $this->put('_token', Str::random(40) . Semester::get_active_semester()->id);
 }
コード例 #16
0
 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);
 }
コード例 #17
0
 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']);
 }
コード例 #18
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.';
 }