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 function mass(Request $request)
 {
     $this->validate($request, ['tingkat' => 'required|integer', 'kelas' => 'required', 'angkatan' => 'required|integer']);
     $jurusan = Jurusan::all();
     $fails = [];
     foreach ($jurusan as $j) {
         try {
             $new = new Kelas();
             $new->tingkat = $request->tingkat;
             $new->id_jurusan = $j->id;
             $new->kelas = $request->kelas;
             $new->angkatan = $request->angkatan;
             $new->save();
         } catch (\Illuminate\Database\QueryException $e) {
             $fails[] = "{$request->tingkat} {$j->singkat} {$request->kelas}";
         }
     }
     if (count($fails) == count($jurusan)) {
         return response("Operasi gagal; mungkin kelasnya sudah ada.", 422);
     } elseif (count($fails) > 0) {
         $responseText = "Kelas berhasil ditambahkan kecuali kelas: ";
         foreach ($fails as $f) {
             $responseText .= "{$f}, ";
         }
         return response(rtrim($responseText, ', '), 422);
     } else {
         return response(count($jurusan) . " kelas berhasil ditambahkan.", 200);
     }
 }
Beispiel #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;
     $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];
 }
 /**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function index()
 {
     $data = Siswa::get();
     $kelas = Kelas::select('kelas')->get();
     $ta = TahunAjaran::get();
     return view('admin/daftarsiswa/view')->with(['data' => $data, 'kelas' => $kelas, 'ta' => $ta]);
 }
 public function delete(Request $request)
 {
     $this->validate($request, ['id' => 'required|exists:jurusan,id']);
     $check = Kelas::where('id_jurusan', $request->id)->count();
     if ($check) {
         $responseText = "Jurusan batal dihapus: ada kelas yang terdaftar dengan jurusan ini.";
         if ($request->ajax()) {
             return response($responseText, 422);
         } else {
             return redirect()->route('kelas.jurusan')->with('message', $responseText);
         }
     }
     $responseText = "";
     $responseCode = 0;
     $jurusan = Jurusan::findOrFail($request->id);
     if ($jurusan->delete()) {
         $responseText = "Jurusan berhasil dihapus.";
         $responseCode = 200;
     } else {
         $responseText = "Jurusan gagal dihapus.";
         $responseCode = 422;
     }
     if ($request->ajax()) {
         return response($responseText, $responseCode);
     } else {
         return redirect()->route('kelas.jurusan')->with('message', $responseText);
     }
 }
Beispiel #6
0
 /**
  * Show the application dashboard to the user.
  *
  * @return Response
  */
 public function index()
 {
     $user_id = \Auth::user()->id;
     $user = User::findOrFail($user_id);
     $kuis = $user->kuis;
     $daftarKelas = Kelas::take(5)->get();
     $daftarMateri = Materi::take(5)->get();
     $daftarKuis = Kuis::take(5)->get();
     return view('home')->with('user', $user)->with('kuis', $kuis)->with('daftarKelas', $daftarKelas)->with('daftarMateri', $daftarMateri)->with('daftarKuis', $daftarKuis);
 }
 public function datalist(Request $request)
 {
     $data = Ekskul::get_siswa($request->input('ekstrakurikuler'));
     $tbody = '';
     if (count($data) < 1) {
         return response(null, 422);
     } else {
         foreach ($data as $i) {
             $tbody .= '<tr><td>' . $i->siswa_nis . '</td>' . '<td>' . $i->siswa_nama . '</td>' . '<td>' . Kelas::find($i->kelas)->name(false) . '</td>' . '<td>' . $i->nilai . '</td>' . "<td><span class='nobr'><a href=\"javascript:edit('" . $i->siswa_id . "','" . htmlspecialchars($request->input('ekstrakurikuler')) . "')\"><i class='fa fa-pencil'></i> Edit</a></span> " . "<span class='nobr'><a href=\"javascript:hapus('" . $i->siswa_id . "','" . htmlspecialchars($request->input('ekstrakurikuler')) . "')\"><i class='fa fa-eraser'></i> Hapus</a></span></td>" . "</tr>";
         }
     }
     return ['data' => $tbody, 'ekstrakurikuler' => $request->input('ekstrakurikuler')];
 }
 /**
  * Run the database seeds.
  */
 public function run()
 {
     $faker = Faker\Factory::create('id_ID');
     for ($i = 1; $i <= 120; ++$i) {
         $kelas = 1;
         if ($i > 30) {
             $kelas = 2;
         }
         if ($i > 60) {
             $kelas = 3;
         }
         if ($i > 90) {
             $kelas = 4;
         }
         $gender = $faker->randomElement(array('male', 'female'));
         $jk = $gender == 'male' ? 'L' : 'P';
         $alamat = $faker->address;
         $kota = $faker->city;
         $kelas_menerima = 'X ' . Jurusan::find(Kelas::find($kelas)->id_jurusan)->lengkap . ' ' . Kelas::find($kelas)->kelas;
         App\Siswa::create(['nama' => strtoupper($faker->firstName($gender) . ' ' . $faker->lastName), 'nis' => ($kelas <= 2 ? '14' : '15') . str_pad($i, 7, '0', STR_PAD_LEFT), 'nisn' => '999' . str_pad($i, 7, '0', STR_PAD_LEFT), 'tempat_lahir' => strtoupper($kota), 'tanggal_lahir' => $faker->date('Y-m-d', '1999-12-31'), 'jenis_kelamin' => $jk, 'agama' => 'Islam', 'anak_ke' => $faker->numberBetween(1, 4), 'alamat_siswa' => $alamat, 'nomor_telepon_rumah_siswa' => null, 'sekolah_asal' => strtoupper('SMP Negeri ' . $faker->numberBetween(1, 9) . ' ' . $kota), 'id_kelas' => $kelas, 'diterima_di_kelas' => $kelas_menerima, 'tanggal_diterima' => '2013-07-15', 'nama_ayah' => strtoupper($faker->name('male')), 'nama_ibu' => strtoupper($faker->name('female')), 'alamat_orang_tua' => $alamat, 'nomor_telepon_rumah_orang_tua' => null, 'pekerjaan_ayah' => 'Wirausaha', 'pekerjaan_ibu' => 'Ibu rumah tangga', 'nama_wali' => null, 'nomor_telepon_rumah_wali' => null, 'pekerjaan_wali' => null]);
     }
 }
 /**
  * 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);
 }
Beispiel #10
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id, Request $request)
 {
     if ($request->ajax()) {
         $kelas = Kelas::find($request->id);
         $countUser = $kelas->user->count();
         if ($countUser > 0) {
             return response("Kelas tidak bisa dihapus karena terdapat siswa dalam kelas");
         } else {
             $kelas->delete();
             return response("deleted");
         }
     } else {
         return "not ajax";
     }
 }
 public function index()
 {
     $pass['kelas_list'] = Kelas::get_daftar_kelas();
     return view('absensi.panel', $pass);
 }
 public function index()
 {
     $kelas = Kelas::get_daftar_kelas();
     $mapel = Mapel::get_daftar_mapel();
     return view('asosiasi.panel', ['kelas_list' => $kelas, 'mapel_list' => $mapel]);
 }
 public function getKelasByTingkat($nisn, $tingkat)
 {
     $data = Kelas::where('tingkat', $tingkat)->select('kelas')->get();
     $kelasSiswa = KelasSiswa::where('NISN', $nisn)->select('kelas')->firstOrFail();
     return view('admin/parsed/getTingkat')->with(['data' => $data, 'kelasSiswa' => $kelasSiswa]);
 }
 public function index()
 {
     $pass['kelas_list'] = Kelas::get_daftar_kelas();
     return view('nilai.sikap', $pass);
 }
 public function akhir()
 {
     $pass['kelas_list'] = Kelas::get_daftar_kelas();
     $pass['mapel_list'] = Mapel::get_daftar_mapel(true);
     return view('nilai.akhir', $pass);
 }
Beispiel #16
0
 public function saveSiswa(Request $request, Kelas $kelas)
 {
     $kelas->siswas()->sync($request->input('siswa'));
     return redirect('/kelas/' . $kelas->id);
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param int $id
  *
  * @return \Illuminate\Http\Response
  */
 public function destroy($id)
 {
     Kelas::destroy($id);
     return redirect('kelas');
 }
 public function pkl()
 {
     $pass['semester_list'] = Semester::get_daftar_semester(true);
     $pass['kelas_list'] = Kelas::get_daftar_kelas(false, false);
     return view('nilai.lama.pkl', $pass);
 }
 public function upload(Request $request)
 {
     $this->validate($request, ['id_kelas' => 'required|exists:kelas,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;
     foreach ($objPHPExcel->getWorksheetIterator() as $sheet) {
         $highestRow = $sheet->getHighestRow();
         $highestColumn = $sheet->getHighestColumn();
         $start = false;
         $id_kelas = $request->input('id_kelas');
         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;
                 }
                 // Kelas set
                 foreach ($rowData[0] as $colNum => $colVal) {
                     if (strpos(strtolower($colVal), 'kelas:') !== FALSE) {
                         $kcheck = explode(" ", $rowData[0][$colNum + 1]);
                         if (count($kcheck) < 3) {
                             continue;
                         }
                         $kc_kelas = array_pop($kcheck);
                         $kc_tingkat = array_shift($kcheck);
                         if (!is_numeric($kc_tingkat)) {
                             $kc_tingkat = array('X' => 1, 'XI' => 2, 'XII' => 3, 'XIV' => 4)[$kc_tingkat];
                         }
                         $kc_jurusan = strtolower(implode(" ", $kcheck));
                         $jc = Jurusan::whereRaw("LOWER(lengkap) LIKE '{$kc_jurusan}'")->orWhereRaw("LOWER(singkat) LIKE '{$kc_jurusan}'")->first();
                         if (!$jc) {
                             continue;
                         }
                         $kc_jurusan = $jc->id;
                         $c = Kelas::where('tingkat', $kc_tingkat)->where('kelas', $kc_kelas)->where('id_jurusan', $kc_jurusan)->first();
                         if ($c) {
                             $id_kelas = $c->id;
                         }
                     }
                 }
             }
             if ($start) {
                 $siswa = null;
                 $data_count++;
                 if (!empty($rowData[0][1])) {
                     $siswa = Siswa::where('nis', $rowData[0][1])->first();
                     if ($siswa) {
                         $siswa = Siswa::find($siswa->id);
                     } else {
                         $siswa = new Siswa();
                     }
                 }
                 if (!$siswa) {
                     $errors++;
                     continue;
                 }
                 $siswa->nis = $rowData[0][1];
                 $siswa->nisn = $rowData[0][2];
                 $siswa->nama = $rowData[0][3];
                 $siswa->id_kelas = $id_kelas;
                 $siswa->tempat_lahir = $rowData[0][4];
                 $sheet->getStyle('F' . $row)->getNumberFormat()->setFormatCode('dd/mm/yyyy');
                 $siswa->tanggal_lahir = $this->id2sql_date_convert($sheet->getCellByColumnAndRow(5, $row)->getFormattedValue());
                 $siswa->jenis_kelamin = substr($rowData[0][6], 0, 1);
                 $siswa->agama = $rowData[0][7];
                 $siswa->status_dalam_keluarga = str_replace('anak ', '', strtolower($rowData[0][8]));
                 $siswa->anak_ke = $rowData[0][9];
                 $siswa->alamat_siswa = $rowData[0][10];
                 $siswa->nomor_telepon_rumah_siswa = $rowData[0][11];
                 $siswa->sekolah_asal = $rowData[0][12];
                 $siswa->diterima_di_kelas = $rowData[0][13];
                 $sheet->getStyle('O' . $row)->getNumberFormat()->setFormatCode('dd/mm/yyyy');
                 $siswa->tanggal_diterima = $this->id2sql_date_convert($sheet->getCellByColumnAndRow(14, $row)->getFormattedValue());
                 $siswa->nama_ayah = $rowData[0][15];
                 $siswa->nama_ibu = $rowData[0][16];
                 $siswa->alamat_orang_tua = $rowData[0][17];
                 $siswa->nomor_telepon_rumah_orang_tua = $rowData[0][18];
                 $siswa->pekerjaan_ayah = $rowData[0][19];
                 $siswa->pekerjaan_ibu = $rowData[0][20];
                 $siswa->nama_wali = $rowData[0][21];
                 $siswa->alamat_wali = $rowData[0][22];
                 $siswa->nomor_telepon_rumah_wali = $rowData[0][23];
                 $siswa->pekerjaan_wali = $rowData[0][24];
                 try {
                     $siswa->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('siswa')->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']);
 }