103 lines
2.9 KiB
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');
|
|
}
|
|
|
|
}
|