110 lines
3.0 KiB
PHP
110 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
use App\Models\Mapel;
|
|
use App\Models\Kurikulum;
|
|
use Barryvdh\DomPDF\Facade\Pdf;
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
class MapelController extends Controller
|
|
{
|
|
public function mapel()
|
|
{
|
|
$mapels = Mapel::with('kurikulum')->get();
|
|
$kurikulums = Kurikulum::all();
|
|
return view('admin.mapel', compact('mapels', 'kurikulums'));
|
|
}
|
|
|
|
|
|
public function tambahmapel(Request $request)
|
|
{
|
|
$request->validate([
|
|
'kurikulum_id' => 'required|exists:kurikulums,id',
|
|
'nama' => 'required|string',
|
|
'kategori' => 'required|string',
|
|
]);
|
|
|
|
$nama = $request->input('nama');
|
|
|
|
// Cek apakah ada mapel dengan nama yang duplikat, tanpa memperhatikan kategori dan kurikulum
|
|
$duplikatNama = Mapel::where('nama', $nama)
|
|
->exists();
|
|
|
|
if ($duplikatNama) {
|
|
toastr()->error('Mapel dengan nama tersebut sudah ada.');
|
|
return redirect()->back();
|
|
}
|
|
|
|
$mapel = new Mapel();
|
|
$mapel->kurikulum_id = $request->kurikulum_id;
|
|
$mapel->nama = $nama;
|
|
$mapel->kategori = $request->kategori;
|
|
|
|
if ($mapel->save()) {
|
|
toastr()->success('Data mata pelajaran berhasil ditambahkan.');
|
|
} else {
|
|
toastr()->error('Gagal menambahkan data mata pelajaran.');
|
|
}
|
|
|
|
return redirect()->route('mapel');
|
|
}
|
|
|
|
|
|
public function updatemapel(Request $request, $id)
|
|
{
|
|
$request->validate([
|
|
'kurikulum_id' => 'required|exists:kurikulums,id',
|
|
'nama' => 'required|string',
|
|
'kategori' => 'required|string',
|
|
]);
|
|
|
|
$mapel = Mapel::findOrFail($id);
|
|
|
|
// Ambil nilai dari request
|
|
$nama = $request->input('nama');
|
|
|
|
// Cek apakah ada mapel dengan nama yang duplikat, tanpa memperhatikan kategori dan kurikulum
|
|
$duplikatNama = Mapel::where('nama', $nama)
|
|
->where('id', '!=', $id)
|
|
->exists();
|
|
|
|
if ($duplikatNama) {
|
|
toastr()->error('Mata pelajaran dengan nama tersebut sudah ada.');
|
|
return redirect()->back();
|
|
}
|
|
|
|
$mapel->kurikulum_id = $request->kurikulum_id;
|
|
$mapel->nama = $nama;
|
|
$mapel->kategori = $request->kategori;
|
|
|
|
if ($mapel->save()) {
|
|
toastr()->success('Data mata pelajaran berhasil diperbarui.');
|
|
} else {
|
|
toastr()->error('Gagal memperbarui data mata pelajaran.');
|
|
}
|
|
|
|
return redirect()->route('mapel')->with('reload', true);
|
|
|
|
}
|
|
|
|
public function hapusmapel($id)
|
|
{
|
|
$mapel = Mapel::findOrFail($id);
|
|
$mapel->delete();
|
|
|
|
toastr()->success('Data mata pelajaran berhasil dihapus.');
|
|
return redirect()->route('mapel');
|
|
}
|
|
|
|
public function downloadmapel()
|
|
{
|
|
// Ambil data sekolah dari database
|
|
$mapels = Mapel::all();
|
|
$pdf = Pdf::loadView('admin.mapelpdf', compact('mapels'));
|
|
// Download file PDF
|
|
return $pdf->download('data_mapels.pdf');
|
|
}
|
|
|
|
}
|