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.'); } } }
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); }