MIF_E31210164/app/Http/Controllers/ObatpasienController.php

110 lines
3.7 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Pemeriksaan;
use App\Models\User;
use App\Models\Pasien;
use App\Models\Obat;
use App\Models\Resep;
class ObatpasienController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
$no = 1;
$dokter = User::where('role', 'dokter')
->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 = Resep::select('resepobat.id_periksa', 'pemeriksaan.no_periksa', 'pasien.nama_pasien', 'resepobat.pembelian as pembelian', 'pemeriksaan.status as statuspemeriksaan', 'resepobat.status as statusobat', 'pemeriksaan.tgl_kunjungan', 'pemeriksaan.waktu_kunjungan')
->join('pemeriksaan', 'resepobat.id_periksa', '=', 'pemeriksaan.id')
->join('pasien', 'pemeriksaan.pasien_id', '=', 'pasien.id')
->orderByDesc('pemeriksaan.tgl_kunjungan') // Urutkan berdasarkan tanggal kunjungan secara descending
->orderByDesc('pemeriksaan.waktu_kunjungan') // Urutkan berdasarkan waktu kunjungan secara descending
->groupBy('pemeriksaan.no_periksa', 'resepobat.id_periksa', 'pemeriksaan.pasien_id', 'pemeriksaan.no_periksa', 'pasien.nama_pasien', 'pembelian', 'pemeriksaan.status', 'resepobat.status', 'pemeriksaan.tgl_kunjungan', 'pemeriksaan.waktu_kunjungan')
->where('pembelian', '!=', 'sendiri')
->get();
return view('pages.obatpasien', 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)
{
// dd($request['pembelian']);
try{
foreach ($request['id_obat'] as $index => $id_obat) {
$aturanpakai = (string) $request['aturanpakai'][$index];
$deskripsi = $request['deskripsi'][$index];
// Simpan ke database sesuai kebutuhan Anda
Resep::create([
'id_periksa' => $request['id_periksa'],
'pembelian' => $request['pembelian'],
'status' => $request['status'],
'deskripsi' => (string) $deskripsi,
'aturanpakai' => (string) $aturanpakai,
'id_obat' => (string) $id_obat,
]);
}
// Pemeriksa::create($data);
return redirect()->route('obatpasien.index');
}catch(\Exception $e){
dd($e);
}
}
public function update(Request $request, $id)
{
try {
// Temukan resep berdasarkan id_periksa
$resep = Resep::where('id_periksa', $id)->firstOrFail();
// Lakukan pembaruan pada atribut yang diperlukan
$resep->update($request->all());
// Perbarui semua entri dengan id_periksa yang sama jika status adalah 'selesai'
if ($request->status === 'sudah diambil') {
Resep::where('id_periksa', $id)->update(['status' => 'sudah diambil']);
}
// Redirect dengan pesan sukses
return redirect()->route('obatpasien.index')->with('success', 'Resep updated successfully');
} catch (\Exception $e) {
// Tangkap pengecualian dan tampilkan pesan kesalahan
return redirect()->route('obatpasien.index')->with('error', 'Failed to update resep: ' . $e->getMessage());
}
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
}