115 lines
2.8 KiB
PHP
115 lines
2.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Crip;
|
|
use Illuminate\Http\Request;
|
|
use Barryvdh\DomPDF\Facade\Pdf;
|
|
|
|
class CripsController extends Controller
|
|
{
|
|
public function crips()
|
|
{
|
|
$crips = Crip::all();
|
|
return view('admin.crips', compact('crips'));
|
|
}
|
|
|
|
public function tambahcrips(Request $request)
|
|
{
|
|
$request->validate([
|
|
'nama' => 'required|string|unique:crips,nama',
|
|
'nilai' => 'required|integer|unique:crips,nilai',
|
|
]);
|
|
|
|
$nama = $request->input('nama');
|
|
$nilai = $request->input('nilai');
|
|
|
|
// Cek apakah ada crips dengan nama atau nilai yang duplikat
|
|
$duplikat = Crip::where('nama', $nama)->orWhere('nilai', $nilai)->exists();
|
|
|
|
if ($duplikat) {
|
|
toastr()->error('Nama atau nilai tersebut sudah ada.');
|
|
return redirect()->back();
|
|
}
|
|
|
|
$crip = new Crip();
|
|
$crip->nama = $nama;
|
|
$crip->nilai = $nilai;
|
|
|
|
if ($crip->save()) {
|
|
toastr()->success('Data crips berhasil ditambahkan.');
|
|
} else {
|
|
toastr()->error('Gagal menambahkan data crips.');
|
|
}
|
|
|
|
return redirect()->route('crips');
|
|
}
|
|
|
|
|
|
public function updatecrips(Request $request, $id)
|
|
{
|
|
// Validasi input
|
|
$request->validate([
|
|
'nama' => 'required|string|unique:crips,nama,' . $id,
|
|
'nilai' => 'required|integer|unique:crips,nilai,' . $id,
|
|
]);
|
|
|
|
// Cari data crips berdasarkan ID
|
|
$crip = Crip::find($id);
|
|
|
|
if (!$crip) {
|
|
toastr()->error('Data crips tidak ditemukan.');
|
|
return redirect()->route('crips');
|
|
}
|
|
|
|
// Ambil data dari request
|
|
$crip->nama = $request->input('nama');
|
|
$crip->nilai = $request->input('nilai');
|
|
|
|
// Cek apakah ada crips dengan nama atau nilai yang duplikat
|
|
$duplikat = Crip::where('nama', $crip->nama)
|
|
->orWhere('nilai', $crip->nilai)
|
|
->where('id', '!=', $id) // Pastikan tidak memeriksa data yang sedang diperbarui
|
|
->exists();
|
|
|
|
if ($duplikat) {
|
|
toastr()->error('Nama atau nilai tersebut sudah ada.');
|
|
return redirect()->back();
|
|
}
|
|
|
|
// Simpan perubahan
|
|
if ($crip->save()) {
|
|
toastr()->success('Data crips berhasil diperbarui.');
|
|
} else {
|
|
toastr()->error('Gagal memperbarui data crips.');
|
|
}
|
|
|
|
// Redirect ke halaman daftar crips
|
|
return redirect()->route('crips')->with('reload', true);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function hapuscrips($id)
|
|
{
|
|
$crip = Crip::findOrFail($id);
|
|
$crip->delete();
|
|
|
|
toastr()->success('Data crips berhasil dihapus.');
|
|
return redirect()->route('crips');
|
|
}
|
|
|
|
public function downloadcrips()
|
|
{
|
|
// Ambil data sekolah dari database
|
|
$crips = Crip::all();
|
|
$pdf = Pdf::loadView('admin.cripspdf', compact('crips'));
|
|
// Download file PDF
|
|
return $pdf->download('data_crips.pdf');
|
|
}
|
|
|
|
|
|
}
|
|
|