123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- <?php
-
- namespace App\Http\Controllers;
-
- use App\Models\Pelaporan;
- use Illuminate\Http\Request;
-
- class PelaporanController extends Controller
- {
- public function index(Request $request)
- {
- $user = $request->user(); // Ambil data pengguna dari request
- if ($user->role == 'admin') {
- // Jika pengguna adalah admin, hitung total berdasarkan tindakan_id
- $laporan = Pelaporan::with('tindakan','user')->get();
-
- } elseif ($user->role == 'user') {
- // Jika pengguna adalah pengguna biasa, hitung riwayat pelaporan milik pengguna tersebut
- $laporan = Pelaporan::where('user_id', $user->id)->get();
- // Menghitung total riwayat pelaporan yang dimiliki oleh pengguna
- $count = $laporan->count();
- }
- $pelaporan = Pelaporan::query();
- if ($user->role == 'user') {
- $pelaporan->where('user_id', $user->id); // Filter berdasarkan user_id jika pengguna adalah user
- }
- if ($request->has('search')) {
- $pelaporan->where('judul', 'LIKE', '%' . $request->search . '%');
- }
- $pelaporan = $pelaporan->get(); // atau paginate() tergantung kebutuhan Anda
-
- return view('users.pelaporan.index', compact('pelaporan','laporan'));
- }
-
-
- public function create()
- {
- $laporan = Pelaporan::with('tindakan','user')->get();
- return view('users.pelaporan.create', compact('laporan',));
- }
-
- public function store(Request $request)
- {
- $request->validate([
- 'judul' => 'required',
- 'keterangan' => 'required',
- 'tanggal' => 'required',
- 'lokasi' => 'required',
- 'status' => 'required',
- 'saran' => 'required',
- 'foto' => 'nullable|image|mimes:jpeg,png,jpg,gif',
- ],[
- 'judul.Required'=>'Judul Wajib Diisi',
- 'keterangan.Required'=>'Keterangan Wajib Diisi',
- 'tanggal.Required'=>'Tanggal Wajib Diisi',
- 'lokasi.Required'=>'Lokasi Wajib Diisi',
- 'status.Required'=>'Status Wajib Diisi',
- 'saran.Required' => 'Saran Wajib Diisi',
- 'foto.nullable'=>'Foto Tidak Boleh Kosong',
- 'foto.image'=>'Foto Harus Berupa Image ',
- 'foto.mimes'=>'Foto Harus JPEG,PNG,JPG,GIF',
- ]);
-
- $pelaporan = new Pelaporan();
- $pelaporan->judul = $request->input('judul');
- $pelaporan->keterangan = $request->input('keterangan');
- $pelaporan->tanggal = $request->input('tanggal');
- $pelaporan->lokasi = $request->input('lokasi');
- $pelaporan->saran = $request->input('saran');
- $pelaporan->status = $request->input('status');
- $pelaporan->user_id = auth()->id();
- if ($request->hasFile('foto')) {
- $fotos = time().'.'.$request->foto->extension();
- $request->foto->move(public_path('foto'), $fotos);
- $pelaporan->foto = $fotos;
- }
-
- $pelaporan->save();
-
- return redirect()->route('pelaporan.index')->with('success', 'Pelaporan berhasil disimpan.');
- }
-
-
- public function edit($id)
- {
- $laporan = Pelaporan::with('tindakan','user')->get();
- $pelaporans = Pelaporan::find($id);
- return view('users.pelaporan.update', compact('pelaporans', 'laporan'));
- }
-
- public function update(Request $request, $id)
- {
- $request->validate([
- 'judul' => 'required',
- 'keterangan' => 'required',
- 'tanggal' => 'required',
- 'lokasi' => 'required',
- 'status' => 'required',
- 'foto' => 'nullable|image|mimes:jpeg,png,jpg,gif',
- ],[
- 'judul.Required'=>'Judul Wajib Diisi',
- 'keterangan.Required'=>'Keterangan Wajib Diisi',
- 'tanggal.Required'=>'Tanggal Wajib Diisi',
- 'lokasi.Required'=>'Lokasi Wajib Diisi',
- 'status.Required'=>'Status Wajib Diisi',
- 'foto.nullable'=>'Foto Tidak Boleh Kosong',
- 'foto.image'=>'Foto Harus Berupa Image ',
- 'foto.mimes'=>'Foto Harus JPEG,PNG,JPG,GIF',
- ]);
-
- $pelaporan = Pelaporan::find($id);
- $pelaporan->update($request->all());
-
- if ($request->hasFile('foto')) {
- $fotoPath = $request->file('foto')->store('uploads');
- $pelaporan->foto = $fotoPath;
- $pelaporan->save();
- }
-
- return redirect()->route('pelaporan.index')->with('success', 'Pelaporan berhasil diperbarui.');
- }
-
- public function destroy($id)
- {
- $pelaporan = Pelaporan::find($id);
- $pelaporan->delete();
-
- return redirect()->route('pelaporan.index')->with('success', 'Pelaporan berhasil dihapus.');
- }
- }
|