where('status', 'aktif')->get(); $pasien = Pasien::get(); $periksa = Pemeriksaan::with('pasien')->get(); $resep_obat = Obat::get(); // Mengambil data pemeriksaan dengan mengurutkan berdasarkan waktu pembuatan secara descending $kunjungan = Pemeriksaan::with('pasien')->orderBy('created_at', 'desc')->get(); // print_r($kunjungan[0]->pasien); die(); return view('pages.resepobat', compact('kunjungan', 'no', 'dokter', 'pasien', 'resep_obat', 'periksa')); } /** * Show the form for creating a new resource. */ public function create() { // } /** * Store a newly created resource in storage. */ public function store(Request $request) { // var_dump($request); die(); try { foreach ($request['id_obat'] as $index => $id_obat) { $aturanpakai = (string) $request['aturanpakai'][$index]; $deskripsi = $request['deskripsi'][$index]; $jumlah = $request['jumlah'][$index]; if($request['pembelian'] == 'sendiri') $status = 'sudah diambil'; else $status = $request['status']; // Simpan ke database resep Resep::create([ 'id_periksa' => $request['id_periksa'], 'pembelian' => $request['pembelian'], 'status' => $status, 'deskripsi' => (string) $deskripsi, 'jumlah' => (string) $jumlah, 'aturanpakai' => (string) $aturanpakai, 'id_obat' => (string) $id_obat, ]); // Kurangi stok obat di table obat jika pembelian bukan 'sendiri' if($request['pembelian'] != 'sendiri') { // Kurangi stok obat di table obat $obat = Obat::find($id_obat); // Cari obat berdasarkan id_obat if ($obat) { // Pastikan jumlah yang diinputkan tidak melebihi stok yang tersedia if ($obat->stok >= $jumlah) { // Kurangi stok obat sebanyak jumlah yang diinputkan $obat->stok -= $jumlah; // Simpan perubahan stok ke database $obat->save(); } else { // Handle jika jumlah yang diinputkan melebihi stok yang tersedia // Misalnya: throw new Exception("Stok obat tidak mencukupi untuk jumlah yang diminta"); } } else { // Handle jika obat tidak ditemukan (opsional) // Misalnya: throw new Exception("Obat dengan ID $id_obat tidak ditemukan"); } } } return redirect()->route('resepobat.index'); } catch (\Exception $e) { dd($e); } } /** * Display the specified resource. */ public function show(string $id) { // } /** * Show the form for editing the specified resource. */ public function edit(string $id) { // } public function update(Request $request, $id) { $user = Pemeriksaan::findOrFail($id); $user->update($request->all()); return redirect()->route('resepobat.index')->with('success', 'User updated successfully'); } /** * Remove the specified resource from storage. */ public function destroy($id) { $datas = Resep::where('id_periksa', $id)->get(); // Menggunakan where untuk mencari semua data berdasarkan ID periksa foreach ($datas as $data) { // Mengembalikan stok obat sebelum menghapus data resep $obat = Obat::find($data->id_obat); if ($obat) { $obat->stok += $data->jumlah; // Menambahkan kembali jumlah obat yang dihapus dari resep $obat->save(); } $data->delete(); // Menghapus data resep satu per satu } return redirect()->route('resepobat.index'); } }