19_Bakti_SIMRS/backend/app/Http/Controllers/RuangPelayananController.php

160 lines
4.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Ms_RuangPelayanan;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class RuangPelayananController extends Controller
{
public function getRuangPelayanan()
{
try {
$data = Ms_RuangPelayanan::with('departemen')->where('statusenabled', true)->get();
return response()->json([
'message' => 'Data ruang pelayanan berhasil diambil',
'data' => $data
]);
} catch (\Exception $e) {
return response()->json([
'message' => 'Gagal ambil data ruang',
'error' => $e->getMessage()
], 500);
}
}
public function getDetailRuangPelayanan($id)
{
try {
$ruang = Ms_RuangPelayanan::with('departemen')->where('statusenabled', true)->findOrFail($id);
return response()->json([
'message' => 'Data ruang ditemukan',
'data' => $ruang
]);
} catch (\Exception $e) {
return response()->json([
'message' => 'Ruang tidak ditemukan',
'error' => $e->getMessage()
], 404);
}
}
public function tambahRuangPelayanan(Request $request)
{
DB::beginTransaction();
try {
$validated = $request->validate([
'NamaRuangPelayanan' => 'required|string|max:100',
'departemen_id' => 'required',
]);
$ruang = Ms_RuangPelayanan::create([
'NamaRuangPelayanan' => $validated['NamaRuangPelayanan'],
'departemen_id' => $validated['departemen_id'],
'statusenabled' => true,
]);
DB::commit();
return response()->json([
'message' => 'Ruang pelayanan berhasil ditambahkan',
'data' => $ruang
], 201);
} catch (\Exception $e) {
DB::rollBack();
return response()->json([
'message' => 'Gagal tambah ruang',
'error' => $e->getMessage()
], 500);
}
}
public function updateRuangPelayanan(Request $request, $id)
{
DB::beginTransaction();
try {
$validated = $request->validate([
'NamaRuangPelayanan' => 'required|string|max:100',
'departemen_id' => 'required',
]);
$ruang = Ms_RuangPelayanan::findOrFail($id);
$ruang->update([
'NamaRuangPelayanan' => $validated['NamaRuangPelayanan'],
'departemen_id' => $validated['departemen_id'],
]);
DB::commit();
return response()->json([
'message' => 'Ruang pelayanan berhasil diperbarui',
'data' => $ruang
]);
} catch (\Exception $e) {
DB::rollBack();
return response()->json([
'message' => 'Gagal update ruang',
'error' => $e->getMessage()
], 500);
}
}
public function hapusRuangPelayanan($id)
{
DB::beginTransaction();
try {
$ruang = Ms_RuangPelayanan::findOrFail($id);
$ruang->statusenabled = false;
$ruang->save();
DB::commit();
return response()->json([
'message' => 'Ruang pelayanan berhasil dinonaktifkan',
'data' => $ruang
]);
} catch (\Exception $e) {
DB::rollBack();
return response()->json([
'message' => 'Gagal hapus ruang',
'error' => $e->getMessage()
], 500);
}
}
public function getRuanganRegistrasi(Request $request)
{
$jenisRawat = $request->jenis;
$departemenId = [];
if ($jenisRawat === 'rawat_jalan') {
$departemenId = [1, 3];
} elseif ($jenisRawat === 'rawat_inap') {
$departemenId = [2];
} else {
return response()->json([
'message' => 'Jenis rawat tidak valid',
], 400);
}
$data = \App\Models\Ms_RuangPelayanan::where('statusenabled', true)
->whereIn('departemen_id', $departemenId)
->get();
return response()->json([
'message' => 'Data ruangan berhasil diambil',
'data' => $data,
]);
}
}