middleware(['auth', 'role:perawat']); } public function dashboard() { $pasienHariIni = Registrasi::whereDate('tanggal_registrasi', today()) ->where('status', '!=', 'selesai') ->with(['pasien', 'pegawai', 'ruang_pelayanan']) ->orderBy('nomor_antrian') ->get(); $statusPasien = Registrasi::whereDate('tanggal_registrasi', today()) ->groupBy('status') ->selectRaw('status, count(*) as total') ->get(); $tindakanList = Tindakan::all(); return view('perawat.dashboard.perawat', compact( 'pasienHariIni', 'tindakanList', 'statusPasien' )); } public function updateStatus(Request $request, Registrasi $registrasi) { $validated = $request->validate([ 'status' => 'required|in:menunggu,sedang_diproses,selesai', ]); $registrasi->update(['status' => $validated['status']]); return redirect()->back()->with('message', 'Status registrasi berhasil diperbarui'); } public function storeTindakan(Request $request) { $request->validate([ 'registrasi_id' => 'required|exists:registrasis,id', 'tindakan_id' => 'required|exists:tindakans,id', 'jumlah_tindakan' => 'required|integer|min:1', ]); $registrasi = Registrasi::find($request->registrasi_id); $tindakan = Tindakan::find($request->tindakan_id); $pegawai = $registrasi->pegawai_id; $jumlahTindakan = $request->jumlah_tindakan; $transaksi = Transaksi::create([ 'registrasi_id' => $registrasi->id, 'tindakan_id' => $tindakan->id, 'pegawai_id' => $pegawai, 'jumlah_tindakan' => $jumlahTindakan, 'total_tarif' => $tindakan->tarif_tindakan * $jumlahTindakan, 'tanggal_transaksi' => now(), 'metode_pembayaran' => 'cash', 'status_pembayaran' => 'belum lunas', ]); // Buat detail transaksi TransaksiDetail::create([ 'transaksi_id' => $transaksi->id, 'tindakan_id' => $tindakan->id, 'jumlah_tindakan' => $jumlahTindakan, 'tarif_satuan' => $tindakan->tarif_tindakan, 'subtotal' => $tindakan->tarif_tindakan * $jumlahTindakan, ]); return redirect()->back()->with('success', 'Tindakan berhasil ditambahkan.'); } }