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]; }
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')]; }
public function ekskul_datalist(Request $request) { $data = Ekskul::get_siswa($request->input('ekstrakurikuler'), $request->input('id_semester')); $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:lihat('" . $i->siswa_id . "','" . htmlspecialchars($request->input('ekstrakurikuler')) . "','" . htmlspecialchars($request->input('id_semester')) . "')\">Lihat</a> ]</span> " . "</tr>"; } } return ['data' => $tbody, 'ekstrakurikuler' => $request->input('ekstrakurikuler')]; }
public function save(Request $request) { $this->validate($request, ['id' => 'required|min:0', 'nama' => 'required', 'nis' => 'required|unique:siswa,nis,' . $request->id, 'nisn' => 'required|unique:siswa,nisn,' . $request->id]); if ($request->id <= 0) { $new = new Siswa(); } else { $new = Siswa::find($request->id); } if ($request->id_kelas != null) { $c = Kelas::find($request->id_kelas); if (!$c) { return "ID kelas tidak ditemukan."; } } else { $request->id_kelas = null; } $new->nama = $request->nama; $new->nis = $request->nis; $new->nisn = $request->nisn; $new->id_kelas = $request->id_kelas; $new->tempat_lahir = $request->tempat_lahir; $new->tanggal_lahir = $this->id2sql_date_convert($request->tanggal_lahir); $new->agama = $request->agama; $new->status_dalam_keluarga = $request->status_dalam_keluarga; $new->anak_ke = $request->anak_ke; $new->alamat_siswa = $request->alamat_siswa; $new->nomor_telepon_rumah_siswa = $request->nomor_telepon_rumah_siswa; $new->sekolah_asal = $request->sekolah_asal; $new->diterima_di_kelas = $request->diterima_di_kelas; $new->tanggal_diterima = $this->id2sql_date_convert($request->tanggal_diterima); $new->nama_ayah = $request->nama_ayah; $new->nama_ibu = $request->nama_ibu; $new->alamat_orang_tua = $request->alamat_orang_tua; $new->nomor_telepon_rumah_orang_tua = $request->nomor_telepon_rumah_orang_tua; $new->pekerjaan_ayah = $request->pekerjaan_ayah; $new->pekerjaan_ibu = $request->pekerjaan_ibu; $new->nama_wali = $request->nama_wali; $new->alamat_wali = $request->alamat_wali; $new->nomor_telepon_rumah_wali = $request->nomor_telepon_rumah_wali; $new->pekerjaan_wali = $request->pekerjaan_wali; try { $new->save(); } catch (\Illuminate\Database\QueryException $e) { return $request->ajax() ? response($e, 422) : redirect()->route('siswa.tambah')->with('message', $e); } if ($request->ajax()) { return $request->id == 0 ? response('Data berhasil ditambahkan.', 200) : response('Data berhasil diubah.', 200); } else { return $request->id == 0 ? redirect()->route('siswa.tambah')->with('message', 'Data berhasil ditambahkan.') : redirect()->route('siswa.edit', ['message', 'Data berhasil diubah.', 'id' => $request->id]); } }
public function delete(Request $request) { $check = Siswa::where('id_kelas', $request->id)->first(); if ($check) { return response("Ada siswa yang terdaftar di dalam kelas ini.", 422); } $kelas = Kelas::find($request->id); if ($kelas) { try { $kelas->delete(); } catch (\Illuminate\Database\QueryException $e) { return response('Operasi gagal. Coba cek kembali, mungkin ada kesalahan atau data yang ingin ditambahkan sudah ada.', 422); } return response('Kelas telah dihapus.', 200); } else { return response('Kelas tidak ditemukan.', 422); } }
/** * 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]); } }
/** * 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 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']); }