<?php namespace App\Http\Controllers; use App\Models\UsulanDiklat; use App\Models\Direktori; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; class DirektoriController extends Controller { // Display paginated usulan diklat data public function index(Request $request) { // Fetch usulan diklat data with pagination $search = $request->input('search'); $usulan_laporan_diklat = Direktori::when($search, function ($query, $search) { return $query->where('nama_penulis', 'like', "%{$search}%"); })->paginate(10); return view('umum3.direktori', compact('usulan_laporan_diklat')); } // Show form to create new usulan diklat public function create() { return view('umum3.createdirektori'); } // Store new usulan diklat data public function store(Request $request) { // Validate input and files $request->validate([ 'nip' => 'required', 'nama_penulis' => 'required', 'jabatan' => 'required', 'golongan' => 'required', 'unit_kerja' => 'required', 'jenis_pelatihan' => 'required', 'nama_pelatihan' => 'required', 'tahun_pelatihan' => 'required|numeric', 'pelaksanaan' => 'required', 'mode_pelatihan' => 'required', 'waktu_pelaksanaan' => 'required', 'tempat_pelaksanaan'=> 'required', //'biaya_per_orang' => 'nullable|numeric', 'judul_laporan' => 'required', 'latar_belakang' => 'required', //'link_katalog' => 'nullable|url', 'unggah_laporan' => 'nullable|mimes:pdf,doc,docx|max:2048', ]); // Create a new instance of UsulanDiklat model $usulan_laporan_diklat = new Direktori(); $usulan_laporan_diklat->nip = $request->nip; $usulan_laporan_diklat->nama_penulis = $request->nama_penulis; $usulan_laporan_diklat->jabatan = $request->jabatan; $usulan_laporan_diklat->golongan = $request->golongan; $usulan_laporan_diklat->unit_kerja = $request->unit_kerja; $usulan_laporan_diklat->jenis_pelatihan = $request->jenis_pelatihan; $usulan_laporan_diklat->nama_pelatihan = $request->nama_pelatihan; $usulan_laporan_diklat->tahun_pelatihan = $request->tahun_pelatihan; $usulan_laporan_diklat->pelaksanaan = $request->pelaksanaan; $usulan_laporan_diklat->mode_pelatihan = $request->mode_pelatihan; $usulan_laporan_diklat->waktu_pelaksanaan = $request->waktu_pelaksanaan; $usulan_laporan_diklat->tempat_pelaksanaan = $request->tempat_pelaksanaan; //$usulan_laporan_diklat->biaya_per_orang = $request->biaya_per_orang; $usulan_laporan_diklat->judul_laporan = $request->judul_laporan; $usulan_laporan_diklat->latar_belakang = $request->latar_belakang; //$usulan_laporan_diklat->link_katalog = $request->link_katalog; // Process file upload for report (PDF, DOC, DOCX) if ($request->hasFile('unggah_laporan')) { $file = $request->file('unggah_laporan'); $fileName = time() . '_' . $file->getClientOriginalName(); $file->move(public_path('uploads/reports'), $fileName); $usulan_laporan_diklat->unggah_laporan = 'uploads/reports/' . $fileName; } // Save data to the database $usulan_laporan_diklat->save(); // Redirect with success message return redirect()->route('umum3.direktori')->with('success', 'Usulan laporan berhasil ditambahkan.'); } public function view($id) { // Retrieve the Diklat entry by its ID $usulan_laporan_diklat = Direktori::findOrFail($id); // Pass the Diklat data to the viewdiklat view return view('umum3.viewdirektori', compact('usulan_laporan_diklat')); } }