input('search'); // Query untuk mengambil data diklat berdasarkan pencarian $diklats = Diklat::when($search, function ($query, $search) { return $query->where('jenis_diklat', 'LIKE', "%{$search}%") ->orWhere('nama_diklat', 'LIKE', "%{$search}%") ->orWhere('rumpun', 'LIKE', "%{$search}%") ->orWhere('kode_jabatan', 'LIKE', "%{$search}%") ->orWhere('penyelenggara', 'LIKE', "%{$search}%"); }) ->orderBy('created_at', 'desc') ->paginate(10); return view('ekatalog.diklat', compact('diklats')); } // Show the form for creating a new Diklat public function create() { $jabatan = Jabatan::all(); $metodePelaksanaan = MetodePelatihan::all(); return view('ekatalog.creatediklat', compact('jabatan','metodePelaksanaan')); } // Store a new Diklat in the database public function store(Request $request) { // Validasi input form $request->validate([ 'jenis_pelatihan' => 'required|string|max:255', 'nama_diklat' => 'required|string|max:255', 'rumpun' => 'required|string|max:255', 'kode_jabatan' => 'required|string|exists:jabatan,kode_jabatan', // Memastikan kode jabatan ada di tabel jabatan 'penyelenggara' => 'required|string|max:255', 'tanggal_pelaksanaan' => 'required|date', 'tempat_pelaksanaan' => 'required|string|max:255', 'metode_pelaksanaan' => 'required|exists:metode_pelatihan,kode_pelatihan', // Memastikan metode pelaksanaan ada di tabel metode_pelatihan 'jenis_biaya' => 'required|string|max:255', 'biaya_per_orang' => 'required|numeric', 'link_katalog' => 'nullable|url', ]); // Ambil data jabatan berdasarkan kode_jabatan $jabatan = Jabatan::where('kode_jabatan', $request->kode_jabatan)->first(); // Jika jabatan tidak ditemukan, redirect dengan pesan error if (!$jabatan) { return redirect()->back()->with('error', 'Jabatan dengan kode yang diberikan tidak ditemukan.'); } // Ambil data metode pelaksanaan berdasarkan kode_pelatihan $metodePelaksanaan = MetodePelatihan::where('kode_pelatihan', $request->metode_pelaksanaan)->first(); // Jika metode pelaksanaan tidak ditemukan, redirect dengan pesan error if (!$metodePelaksanaan) { return redirect()->back()->with('error', 'Metode pelaksanaan yang diberikan tidak ditemukan.'); } // Simpan data diklat Diklat::create([ 'jenis_pelatihan' => $request->jenis_pelatihan, 'nama_diklat' => $request->nama_diklat, 'rumpun' => $request->rumpun, 'kode_jabatan' => $request->kode_jabatan, 'nama_jabatan' => $jabatan->jabatan, // Simpan nama jabatan 'penyelenggara' => $request->penyelenggara, 'tanggal_pelaksanaan' => $request->tanggal_pelaksanaan, 'tempat_pelaksanaan' => $request->tempat_pelaksanaan, 'metode_pelaksanaan' => $request->metode_pelaksanaan, 'jenis_biaya' => $request->jenis_biaya, 'biaya_per_orang' => $request->biaya_per_orang, 'link_katalog' => $request->link_katalog, ]); // Redirect ke halaman daftar diklat dengan pesan sukses return redirect()->route('ekatalog.diklat')->with('success', 'Diklat successfully added.'); } // Show the form for editing a Diklat public function edit($id) { $diklat = Diklat::findOrFail($id); return view('ekatalog.editdiklat', compact('diklat')); } // Update a Diklat entry in the database public function update(Request $request, $id) { // Validate the form data $request->validate([ 'jenis_pelatihan' => 'required|string|max:255', 'nama_diklat' => 'required|string|max:255', 'rumpun' => 'required|string|max:255', 'kode_jabatan' => 'required|string|max:50', 'penyelenggara' => 'required|string|max:255', 'tanggal_pelaksanaan' => 'required|date', 'tempat_pelaksanaan' => 'required|string|max:255', 'metode_pelaksanaan' => 'required|string|max:255', 'jenis_biaya' => 'required|string|max:255', 'biaya_per_orang' => 'required|numeric', 'link_katalog' => 'nullable|url', ]); // Find and update the Diklat record $diklat = Diklat::findOrFail($id); $diklat->update([ 'jenis_pelatihan' => $request->jenis_pelatihan, 'nama_diklat' => $request->nama_diklat, 'rumpun' => $request->rumpun, 'kode_jabatan' => $request->kode_jabatan, 'penyelenggara' => $request->penyelenggara, 'tanggal_pelaksanaan' => $request->tanggal_pelaksanaan, 'tempat_pelaksanaan' => $request->tempat_pelaksanaan, 'metode_pelaksanaan' => $request->metode_pelaksanaan, 'jenis_biaya' => $request->jenis_biaya, 'biaya_per_orang' => $request->biaya_per_orang, 'link_katalog' => $request->link_katalog, ]); // Redirect to the Diklat list with a success message return redirect()->route('ekatalog.diklat')->with('success', 'Diklat successfully updated.'); } // Delete a Diklat entry from the database public function destroy($id) { $diklat = Diklat::findOrFail($id); $diklat->delete(); // Redirect to the Diklat list with a success message return redirect()->route('ekatalog.diklat')->with('success', 'Diklat successfully deleted.'); } public function view($id) { // Retrieve the Diklat entry by its ID $diklat = Diklat::findOrFail($id); // Pass the Diklat data to the viewdiklat view return view('ekatalog.viewdiklat', compact('diklat')); } }