201 lines
5.6 KiB
PHP
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)
|
|
{
|
|
//
|
|
}
|
|
}
|