MIF_E31222313/app/Http/Controllers/CripsController.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');
}
}