MIF_E31221105/app/Http/Controllers/FormAlumniController.php

96 lines
3.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\DataAlumni;
use App\Models\Jabatan;
use App\Models\KualifikasiBidang;
use App\Models\TahunAngkatan;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class FormAlumniController extends Controller
{
public function index()
{
$nim = session('username');
$dataAlumni = \App\Models\DataAlumni::where('nim', $nim)->first();
return view('formalumni', [
'dataAlumni' => $dataAlumni,
'angkatans' => TahunAngkatan::all(),
'kualifikasis' => KualifikasiBidang::all(),
'jabatans' => Jabatan::all(),
]);
}
public function store(Request $request)
{
// Validasi data
$validatedData = $request->validate([
'nama' => 'required|string|max:255',
'nim' => 'required|string|max:50|unique:data_alumni,nim',
'angkatan' => 'required|exists:tahun_angkatan,id_angkatan',
'masa_tunggu' => 'nullable|integer',
'pekerjaan' => 'nullable|string',
'instansi' => 'nullable|string',
'link_linkedin' => 'nullable|string',
'Jenis_profesi' => 'nullable|string',
'lingkup_pekerjaan' => 'nullable|string',
'kualifikasi_bidang_kerja' => 'required',
'jabatan' => 'required',
]);
// Tambahkan default nilai perlu_review false untuk data baru
$validatedData['perlu_review'] = false;
// Membuat data alumni baru
DataAlumni::create($validatedData);
// Redirect atau return response
return redirect()->route('formalumni')->with('success', 'Data berhasil disimpan');
}
public function update(Request $request, $id)
{
try {
$dataAlumni = DataAlumni::findOrFail($id);
// Validasi data
$validatedData = $request->validate([
'nama' => 'required|string|max:255',
'nim' => 'required|string|max:50',
'angkatan' => 'required|exists:tahun_angkatan,id_angkatan',
'masa_tunggu' => 'nullable|integer',
'pekerjaan' => 'nullable|string',
'instansi' => 'nullable|string',
'link_linkedin' => 'nullable|string', // Changed from 'url' to 'string'
'Jenis_profesi' => 'required|string',
'lingkup_pekerjaan' => 'required|string',
'kualifikasi_bidang_kerja' => 'required|exists:kualifikasi_bidang,id_kualifikasi',
'jabatan' => 'required|exists:jabatan,id_kategori',
]);
// Deteksi perubahan data penting
$perluReview = (
$dataAlumni->pekerjaan !== $validatedData['pekerjaan'] ||
$dataAlumni->instansi !== $validatedData['instansi']
);
// Tambahkan flag perlu_review ke data yang akan diupdate
$validatedData['perlu_review'] = $perluReview;
// Update data alumni
$dataAlumni->update($validatedData);
// Redirect atau return response
return redirect()->route('formalumni')->with('success', 'Data berhasil diperbarui');
} catch (\Exception $e) {
Log::error('Error updating alumni data: ' . $e->getMessage());
return redirect()->back()->with('error', 'Terjadi kesalahan saat memperbarui data: ' . $e->getMessage())->withInput();
}
}
}