Esempio n. 1
0
 public function ralat(Request $request)
 {
     $this->validate($request, ['nis' => 'required|exists:siswa,nis', 'id_mapel' => 'required|exists:mapel,id', 'id_semester' => 'required|exists:semester,id']);
     $siswa = Siswa::where('nis', $request->input('nis'))->first();
     $check = NilaiAkhir::where('id_mapel', $request->input('id_mapel'))->where('id_siswa', $siswa->id)->where('id_semester', $request->input('id_semester'));
     $exist = $check->first();
     if ($exist) {
         $new = new NilaiAkhir();
         $new->id_mapel = $exist->id_mapel;
         $new->id_semester = $exist->id_semester;
         $new->id_siswa = $exist->id_siswa;
         $new->nilai_pengetahuan = $exist->nilai_pengetahuan;
         $new->nilai_keterampilan = $exist->nilai_keterampilan;
         $new->deskripsi_pengetahuan = $exist->deskripsi_pengetahuan;
         $new->deskripsi_keterampilan = $exist->deskripsi_keterampilan;
         if ($request->input('nilai_pengetahuan')) {
             $new->nilai_pengetahuan = $request->input('nilai_pengetahuan');
         }
         if ($request->input('deskripsi_pengetahuan')) {
             $new->deskripsi_pengetahuan = $request->input('deskripsi_pengetahuan');
         }
         if ($request->input('nilai_keterampilan')) {
             $new->nilai_keterampilan = $request->input('nilai_keterampilan');
         }
         if ($request->input('deskripsi_keterampilan')) {
             $new->deskripsi_keterampilan = $request->input('deskripsi_keterampilan');
         }
         $check->delete();
         if ($new->save()) {
             return redirect()->route('ralat')->with('message', 'Nilai berhasil diralat.');
         } else {
             return redirect()->route('ralat')->with('message', 'Nilai gagal diralat.');
         }
     }
 }
Esempio n. 2
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);
 }