96 lines
3.3 KiB
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();
|
|
}
|
|
}
|
|
|
|
}
|