MIF_E31222313/app/Http/Controllers/SubkriteriaController.php

103 lines
2.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Kriteria;
use App\Models\Subkriteria;
use App\Models\Crip;
use Barryvdh\DomPDF\Facade\Pdf;
class SubkriteriaController extends Controller
{
public function subkriteria()
{
$subkriterias = Subkriteria::with('kriteria.kurikulum')->get();
$kriterias = Kriteria::with('kurikulum')->get();
return view('admin.subkriteria', compact('subkriterias', 'kriterias'));
}
public function tambahsubkriteria(Request $request)
{
$request->validate([
'kriteria_id' => 'required|exists:kriterias,id',
'pertanyaan' => 'required|string',
]);
$pertanyaan = $request->input('pertanyaan');
// Cek apakah ada subkriteria dengan pertanyaan yang duplikat, tanpa memperhatikan kriteria
$duplikatPertanyaan = Subkriteria::where('pertanyaan', $pertanyaan)->exists();
if ($duplikatPertanyaan) {
toastr()->error('Subkriteria dengan pertanyaan tersebut sudah ada.');
return redirect()->back();
}
$subkriteria = new Subkriteria();
$subkriteria->kriteria_id = $request->kriteria_id;
$subkriteria->pertanyaan = $pertanyaan;
if ($subkriteria->save()) {
toastr()->success('Data subkriteria berhasil ditambahkan.');
} else {
toastr()->error('Gagal menambahkan data subkriteria.');
}
return redirect()->route('subkriteria');
}
public function updatesubkriteria(Request $request, $id)
{
$request->validate([
'kriteria_id' => 'required|exists:kriterias,id',
'pertanyaan' => 'required|string',
]);
$pertanyaan = $request->input('pertanyaan');
// Cek apakah ada pertanyaan yang duplikat di subkriteria lain (kecuali yang sedang diedit)
$duplikatPertanyaan = Subkriteria::where('pertanyaan', $pertanyaan)
->where('id', '!=', $id)
->exists();
if ($duplikatPertanyaan) {
toastr()->error('Subkriteria dengan pertanyaan tersebut sudah ada.');
return redirect()->back();
}
$subkriteria = Subkriteria::findOrFail($id);
$subkriteria->kriteria_id = $request->kriteria_id;
$subkriteria->pertanyaan = $pertanyaan;
if ($subkriteria->save()) {
toastr()->success('Data subkriteria berhasil diperbarui.');
} else {
toastr()->error('Gagal memperbarui data subkriteria.');
}
return redirect()->route('subkriteria')->with('reload', true);
}
public function hapussubkriteria($id)
{
$subkriteria = Subkriteria::findOrFail($id);
$subkriteria->delete();
toastr()->success('Data subkriteria berhasil dihapus.');
return redirect()->route('subkriteria');
}
public function downloadsubkriteria()
{
// Ambil data sekolah dari database
$subkriterias = Subkriteria::all();
$pdf = Pdf::loadView('admin.subkriteriapdf', compact('subkriterias'));
// Download file PDF
return $pdf->download('data_subkriteria.pdf');
}
}