sim_rs/app/Http/Controllers/DokterController.php
Muhammad Thoriq 7966b1f95d Set Project
2025-04-27 20:58:13 +07:00

201 lines
5.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Registrasi;
use App\Models\Tindakan;
use App\Models\Transaksi;
use App\Models\TransaksiDetail;
use Carbon\Carbon;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Yajra\DataTables\Facades\DataTables;
class DokterController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
$data['title'] = 'DOKTER';
return view('dokter.index', $data);
}
public function get_list_table(Request $request)
{
$registrasi = Registrasi::select([
'registrasis.id',
'registrasis.nomor_urut',
'registrasis.registrasi_tanggal',
'pasiens.pasien_name',
'pasiens.jenis_kelamin',
])
->leftJoin('pasiens', 'pasiens.id', '=', 'registrasis.pasien_id')
->where('registrasis.registrasi_tanggal', date('Y-m-d'))
->where('registrasis.status', 1);
if (session('role') != 1) {
$registrasi->where('registrasis.pegawai_id', session('pegawai_id'));
}
return DataTables::of($registrasi)
->addColumn('action', function ($row) {
return '<a href="' . url('/dokter/periksa/' . $row->id) . '" class="btn btn-sm btn-primary edit" data-id="' . $row->id . '">Periksa</a>';
})
->rawColumns(['action'])
->make(true);
}
/**
* Show the form for creating a new resource.
*/
public function periksa(string $id)
{
//
$registrasi = Registrasi::select([
'registrasis.id',
'registrasis.nomor_urut',
'registrasis.registrasi_tanggal',
'registrasis.pasien_id',
'pasiens.pasien_nik',
'pasiens.pasien_name',
'pasiens.tanggal_lahir',
'pasiens.jenis_kelamin',
'registrasis.asuransi_id',
'asuransis.asuransi_name',
'registrasis.asuransi_no',
'registrasis.pegawai_id',
'pegawais.pegawai_name',
'registrasis.ruang_pelayanan_id',
'ruang_pelayanans.ruang_pelayanan_name'
])
->leftJoin('pasiens', 'pasiens.id', '=', 'registrasis.pasien_id')
->leftJoin('asuransis', 'asuransis.id', '=', 'registrasis.asuransi_id')
->leftJoin('pegawais', 'pegawais.id', '=', 'registrasis.pegawai_id')
->leftJoin('ruang_pelayanans', 'ruang_pelayanans.id', '=', 'registrasis.ruang_pelayanan_id')
->where('registrasis.id', $id)
->first();
if($registrasi){
$data['title'] = 'PERIKSA FORM';
$data['registrasi'] = $registrasi;
$data['tindakan'] = Tindakan::all();
return view('dokter.periksa', $data);
} else {
abort(404);
}
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
$tindakan_id = $request->tindakan;
$pegawai_id = $request->pegawai_id;
$registrasi_id = $request->registrasi_id;
$tindakan_tambahan = $request->tindakan_tambahan;
$catatan = $request->catatan;
$registrasi = Registrasi::findorFail($registrasi_id);
if (!$registrasi) {
$data_return = [
'status' => false,
'data' => null,
'msg' => 'Data Not Found!'
];
return response()->json($data_return, 404);
}
try {
DB::beginTransaction();
$registrasi->update(['status' => 2]);
$get_total = Tindakan::select([DB::raw('SUM(tarif) as total_tarif')])->whereIn('id', $tindakan_id)->first();
$insert = Transaksi::create([
'registrasi_id' => $registrasi_id,
'catatan' => $catatan,
'pegawai_id' => $pegawai_id,
'tindakan_tarif_total' => $get_total->total_tarif ?? 0
]);
foreach ($tindakan_id as $value) {
$get_tindakan = Tindakan::findorFail($value);
TransaksiDetail::create([
'transaksi_id' => $insert->id,
'tindakan_id' => $value,
'tarif' => $get_tindakan->tarif ?? 0
]);
}
if($tindakan_tambahan == 1){
TransaksiDetail::create([
'transaksi_id' => $insert->id,
'tindakan_id' => -1,
'tarif' => 0
]);
}
DB::commit();
$data_return = [
'status' => true,
'data' => null,
'msg' => null
];
return response()->json($data_return, 200);
} catch (Exception $e) {
//throw $th;
DB::rollBack();
$data_return = [
'status' => false,
'data' => null,
'msg' => 'something wrong!!',
'msg_for_dev' => $e->getMessage()
];
return response()->json($data_return, 500);
}
}
/**
* 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)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}