role == 'bendahara-excellent') $jurusan = 'excellent'; else $jurusan = 'reguler'; $trans = Transaksi::with(['user', 'jenistagihan']) ->where('jurusan', $jurusan) ->where('status', '1') ->whereNotNull('tgl_pembayaran') ->latest() ->get(); $totaltransaksi = Transaksi::where('status', '1')->count(); $trans->map(function ($item) { $item->tgl_pembayaran_formatted = \Carbon\Carbon::parse($item->tgl_pembayaran)->format('F j, Y'); return $item; }); $tagihan = tagihan::get(); $tahun = TahunAjaran::where('status', 'Aktif')->get(); $siswa = User::where('role', 'siswa') ->where('jurusan', $jurusan) ->get(); if (request()->ajax()) { $query = Transaksi::with('user') ->where('tagihan_id', '1') ->where('jurusan', $jurusan); return DataTables::of($query) ->addColumn('action', function ($item) { $editButton = ' '; $deleteForm = '
' . method_field('delete') . csrf_field() . '
'; $lunasButton = ''; if ($item->status != 2) { $lunasButton = '
' . method_field('PUT') . csrf_field() . '
'; } return '
' . $lunasButton . '
'; }) ->addColumn('no', function ($item) { static $counter = 1; return $counter++; }) ->addColumn('status', function ($item) { switch ($item->status) { case 0: return 'Menunggu Pembayaran'; break; case 1: return 'Pending'; break; case 2: return 'Sukses'; break; default: return 'Undefined'; } }) ->addColumn('bukti_transaksi', function ($item) { if ($item->bukti_transaksi) { // Jika ada data bukti transaksi, tampilkan tautan dan gambar return ' Bukti Transaksi '; } else { // Jika tidak ada data bukti transaksi, tampilkan tanda strip (-) return '-'; } }) ->rawColumns(['status', 'bukti_transaksi', 'tahun', 'action']) ->make(true); } return view('pages.data-pembayaran-spp', compact('siswa', 'tagihan', 'tahun', 'trans', 'totaltransaksi')); } /** * Show the form for creating a new resource. */ public function create() { // } /** * Store a newly created resource in storage. */ public function store(Request $request) { // dd($request['tahunajar']); try { if ($request->has('kelas')) { // Jika request memiliki parameter 'kelas', ambil pengguna (user) berdasarkan kelas $users = User::where('kelas', $request['kelas'])->get(); // Iterasi setiap pengguna (user) dalam kelas tertentu foreach ($users as $user) { foreach ($request['keterangan'] as $index => $keterangan) { $nominal = (string) $request['total'][$index]; // Siapkan data transaksi untuk ditambahkan ke tabel 'transaksi' $data = [ 'user_id' => $user->id, 'tagihan_id' => $request['tagihan_id'], 'keterangan' => (string) $keterangan, 'jenis_transaksi' => $request['jenis_transaksi'], 'jurusan' => $request['jurusan'], 'total' => $nominal, // Misalnya, total pembayaran SPP 'date_awal' => $request['date_awal'], // Misalnya, total pembayaran SPP 'date_akhir' => $request['date_akhir'], // Misalnya, total pembayaran SPP 'tahunajar' => $request['tahunajar'], // Misalnya, total pembayaran SPP 'status' => '0', // Status "Belum Dibayar" ]; // Tambahkan data transaksi ke dalam tabel 'transaksi' Transaksi::create($data); } } } else { // Jika tidak ada parameter 'kelas', tambahkan data transaksi berdasarkan request foreach ($request['keterangan'] as $index => $keterangan) { $nominal = (string) $request['total'][$index]; // Simpan ke database sesuai kebutuhan Anda Transaksi::create([ 'user_id' => $request['user_id'], 'tagihan_id' => $request['tagihan_id'], 'jurusan' => $request['jurusan'], 'jenis_transaksi' => $request['jenis_transaksi'], 'status' => $request['status'], 'date_awal' => $request['date_awal'], 'date_akhir' => $request['date_akhir'], 'tahunajar' => $request['tahunajar'], 'keterangan' => (string) $keterangan, 'total' => $nominal, ]); } } return redirect()->route('data-tagihan-spp.index')->with('success', 'Data berhasil ditambah.'); } catch (\Exception $e) { dd($e); return redirect()->route('data-tagihan-spp.index')->with('error', 'Data gagal ditambah.'); } } /** * Display the specified resource. */ public function show(string $id) { // } /** * Show the form for editing the specified resource. */ public function edit(string $id) { // } /** * Update the specified resource in storage. */ public function update(Request $request, string $id) { // Temukan transaksi berdasarkan ID atau tampilkan error jika tidak ditemukan $item = Transaksi::findOrFail($id); // Ambil data yang dikirimkan dalam request // Periksa apakah ada file yang diunggah if ($request->hasFile('bukti_transaksi')) { // Jika ada file yang diunggah, simpan file baru dan gunakan path yang baru $data['bukti_transaksi'] = $request->file('bukti_transaksi')->store('assets/bukti_transaksi', 'public'); } else { // Jika tidak ada file yang diunggah, gunakan foto lama (path yang sudah ada) $data['bukti_transaksi'] = $item->bukti_transaksi; } $data = $request->all(); // Lakukan pembaruan data transaksi dengan data yang baru $item->update($data); return redirect()->route('data-tagihan-spp.index')->with('success', 'Data berhasil diperbarui.'); } /** * Remove the specified resource from storage. */ public function destroy(string $id) { $data = Transaksi::findOrFail($id); $data->delete(); return redirect()->route('data-tagihan-spp.index'); } }