Nessuna descrizione
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

RiwayatLaporanController.php 2.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Pelaporan;
  4. use App\Models\RiwayatLaporan;
  5. use App\Models\User;
  6. use Illuminate\Http\Request;
  7. class RiwayatLaporanController extends Controller
  8. {
  9. public function index(Request $request)
  10. {
  11. // Ambil data pengguna dari request
  12. $user = $request->user();
  13. if ($user->role == 'admin') {
  14. // Jika pengguna adalah admin, hitung total berdasarkan tindakan_id
  15. $laporan = Pelaporan::with('tindakan','user')->get();
  16. } elseif ($user->role == 'user') {
  17. // Jika pengguna adalah pengguna biasa, hitung riwayat pelaporan milik pengguna tersebut
  18. $laporan = Pelaporan::where('user_id', $user->id)->get();
  19. // Menghitung total riwayat pelaporan yang dimiliki oleh pengguna
  20. $count = $laporan->count();
  21. }
  22. // Inisialisasi query builder untuk riwayat pelaporan
  23. $riwayatPelaporan = Pelaporan::query();
  24. // Filter berdasarkan pencarian jika ada
  25. if ($request->has('search')) {
  26. $searchTerm = $request->search;
  27. $riwayatPelaporan->where('judul', 'LIKE', '%' . $searchTerm . '%');
  28. }
  29. if ($request->has('startDate') && $request->has('endDate')) {
  30. $startDate = $request->startDate;
  31. $endDate = $request->endDate;
  32. $riwayatPelaporan->whereBetween('tanggal', [$startDate, $endDate]);
  33. }
  34. // Filter berdasarkan peran pengguna
  35. if ($user->role == 'admin') {
  36. // Jika pengguna adalah admin, ambil semua riwayat pelaporan
  37. $riwayatPelaporan = $riwayatPelaporan->get();
  38. } elseif ($user->role == 'user') {
  39. // Jika pengguna adalah pengguna biasa, ambil riwayat pelaporan milik pengguna tersebut
  40. $riwayatPelaporan = $riwayatPelaporan->where('user_id', $user->id)->get();
  41. }
  42. // Kembalikan data sebagai response JSON
  43. return view('umum.riwayat.index', ['riwayatPelaporan' => $riwayatPelaporan], compact('laporan'));
  44. }
  45. public function cetak(Request $request){
  46. $user = $request->user();
  47. // Inisialisasi query builder untuk riwayat pelaporan
  48. $riwayatPelaporan = Pelaporan::query();
  49. // Filter berdasarkan peran pengguna
  50. if ($user->role == 'admin') {
  51. // Jika pengguna adalah admin, ambil semua riwayat pelaporan
  52. $riwayatPelaporan = $riwayatPelaporan->get();
  53. } elseif ($user->role == 'user') {
  54. // Jika pengguna adalah pengguna biasa, ambil riwayat pelaporan milik pengguna tersebut
  55. $riwayatPelaporan = $riwayatPelaporan->where('user_id', $user->id)->get();
  56. }
  57. return view('umum.riwayat.cetak', ['riwayatPelaporan' => $riwayatPelaporan]);
  58. }
  59. }